From 9d45e42dc0298ea8241132142d3100358fe99dc4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 20 Nov 2021 07:45:41 +0100 Subject: Adding upstream version 1.2.0. Signed-off-by: Daniel Baumann --- tests/memoize.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/memoize.js (limited to 'tests/memoize.js') diff --git a/tests/memoize.js b/tests/memoize.js new file mode 100644 index 0000000..98f3678 --- /dev/null +++ b/tests/memoize.js @@ -0,0 +1,72 @@ +import { memoize } from '..'; +import { expect } from 'chai'; + +/*global describe,it*/ + +describe('memoize()', () => { + it('should memoize when used as a simple decorator', next => { + let c = { + @memoize + foo(key) { + c[key] = (c[key] || 0) + 1; + } + }; + + expect(c).not.to.have.property('a'); + c.foo('a'); + expect(c).to.have.property('a', 1); + c.foo('a'); + c.foo('a'); + expect(c).to.have.property('a', 1); + + next(); + }); + + it('should memoize when used as a function', next => { + let c = memoize( key => { + m[key] = (m[key] || 0) + 1; + }), + m = {}; + + expect(m).not.to.have.property('a'); + c('a'); + expect(m).to.have.property('a', 1); + c('a'); + c('a'); + expect(m).to.have.property('a', 1); + + next(); + }); + + it('should memoize when called without arguments', next => { + let c = memoize( key => { + m[key] = (m[key] || 0) + 1; + }), + m = {}; + + expect(m).not.to.have.property('undefined'); + c(); + expect(m).to.have.property('undefined', 1); + c(); + c(); + expect(m).to.have.property('undefined', 1); + + next(); + }); + + it('should memoize when called with an empty string', next => { + let c = memoize( key => { + m[key] = (m[key] || 0) + 1; + }), + m = {}; + + expect(m).not.to.have.property(''); + c(''); + expect(m).to.have.property('', 1); + c(''); + c(''); + expect(m).to.have.property('', 1); + + next(); + }); +}); -- cgit v1.2.3