Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/lru-memoizer/test/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
var memoizer = require('./..'); var assert = require('chai').assert; describe('lru-memoizer', function () { var loadTimes = 0, memoized; beforeEach(function () { loadTimes = 0; memoized = memoizer({ load: function (a, b, callback) { loadTimes++; return setTimeout(function () { if (a === 0) { return callback(new Error('a cant be 0')); } callback(null, a+b); }, 10); }, hash: function (a, b) { return a + '-' + b; }, max: 10 }); }); it('should cache the result of an async function', function (done) { memoized(1,2, function (err, result) { assert.isNull(err); assert.strictEqual(result, 3); assert.strictEqual(loadTimes, 1); memoized(1,2, function (err, result) { assert.isNull(err); assert.strictEqual(result, 3); assert.strictEqual(loadTimes, 1); done(); }); }); }); it('should use the hash function for keys', function (done) { memoized(1, 2, function () { memoized(2,3, function () { assert.includeMembers(memoized.keys(), ['1-2', '2-3']); done(); }); }); }); it('should not cache errored funcs', function (done) { memoized(0, 2, function (err) { assert.isNotNull(err); assert.notInclude(memoized.keys(), ['0-2']); done(); }); }); it('should expose the hash function', function() { assert.equal(memoized.hash(0, 2), '0-2'); }); it('should expose the load function', function(done) { memoized.load(1, 2, (err, result) => { assert.equal(result, 3); done(); }); }); it('should expose the max prop', function() { assert.equal(memoized.max, 10); }); it('should allow to del a key', function(done) { memoized(1,2, () => { assert.strictEqual(loadTimes, 1); memoized.del(1,2); memoized(1,2, (err, result) => { assert.isNull(err); assert.strictEqual(result, 3); assert.strictEqual(loadTimes, 2); done(); }); }); }); });