lru-memoizer.clone.test.js 937 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const memoizer = require('./..');
  2. const assert = require('chai').assert;
  3. describe('lru-memoizer (clone)', () => {
  4. let loadTimes = 0, memoized;
  5. beforeEach(() => {
  6. loadTimes = 0;
  7. memoized = memoizer({
  8. load: (key, callback) => {
  9. loadTimes++;
  10. callback(null, { foo: key, buffer: Buffer.from('1234') });
  11. },
  12. hash: (key) => {
  13. return key;
  14. },
  15. clone: true
  16. });
  17. });
  18. it('should return a clone every time with the same cached structure', (done) => {
  19. memoized('bar', (err, r1) => {
  20. assert.isNull(err);
  21. assert.strictEqual(loadTimes, 1);
  22. assert.equal(r1.foo, 'bar');
  23. r1.foo = 'bax';
  24. memoized('bar', (err, r2) => {
  25. assert.isNull(err);
  26. assert.strictEqual(loadTimes, 1);
  27. assert.equal(r2.foo, 'bar');
  28. assert.notStrictEqual(r1, r2);
  29. assert.notEqual(r1, r2);
  30. done();
  31. });
  32. });
  33. });
  34. });