1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- var memoizer = require('./..');
- var assert = require('chai').assert;
- describe('lru-memoizer sync', function () {
- var loadTimes = 0, memoized;
- beforeEach(function () {
- loadTimes = 0;
- memoized = memoizer.sync({
- load: function (a, b) {
- loadTimes++;
- if (a === 0) {
- throw new Error('a cant be 0');
- }
- return a + b;
- },
- hash: function (a, b) {
- return a + '-' + b;
- },
- max: 10
- });
- });
- it('should cache the result of an async function', function () {
- var result = memoized(1, 2);
- assert.equal(result, 3);
- assert.equal(loadTimes, 1);
- var result2 = memoized(1,2);
- assert.equal(result2, 3);
- assert.equal(loadTimes, 1);
- });
- it('shuld use the hash function for keys', function () {
- memoized(1, 2);
- memoized(2, 3);
- assert.includeMembers(memoized.keys(), ['1-2', '2-3']);
- });
- it('should not cache errored funcs', function () {
- try {
- memoized(0, 2);
- } catch(err) {}
- assert.notInclude(memoized.keys(), ['0-2']);
- });
- });
|