NineSec Team Shell
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  ]

Current File : /home/zikryat/public_html/node_modules/lru-memoizer/test/lru-memoizer.sync.clone.test.js
const memoizer = require('./..');
const assert = require('chai').assert;

describe('lru-memoizer sync (clone)', () => {

  describe('call', () => {
    let loadTimes = 0, memoized;

    beforeEach(() => {
      loadTimes = 0;

      memoized = memoizer.sync({
        load: (key) => {
          loadTimes++;
          return { foo: key , buffer: Buffer.from('1234') };
        },
        hash: (key) => {
          return key;
        },
        clone: true
      });
    });

    it('should return a clone every time with the same cached structure', () => {
      const r1 = memoized('bar');
      assert.strictEqual(loadTimes, 1);
      assert.equal(r1.foo, 'bar');
      r1.foo = 'bax';

      const r2 = memoized('bar');
      assert.strictEqual(loadTimes, 1);
      assert.equal(r2.foo, 'bar');
      assert.notStrictEqual(r1, r2);
      assert.notEqual(r1, r2);
    });
  });

  describe('Promise', () => {
    let loadTimes = 0, memoized;

    beforeEach(() => {
      loadTimes = 0;

      memoized = memoizer.sync({
        load: (key) => {
          loadTimes++;
          return Promise.resolve({ foo: key, buffer: Buffer.from('1234') });
        },
        hash: (key) => {
          return key;
        },
        clone: true
      });
    });

    it('should return a clone every time with the same cached structure', (done) => {
      memoized('bar').then(r1 => {
        assert.strictEqual(loadTimes, 1);
        assert.equal(r1.foo, 'bar');
        r1.foo = 'bax';

        memoized('bar').then(r2 => {
          assert.strictEqual(loadTimes, 1);
          assert.equal(r2.foo, 'bar');
          assert.notStrictEqual(r1, r2);
          assert.notEqual(r1, r2);

          done();
        });
      })
      .catch(done);
    });
  });

});


NineSec Team - 2022