!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/sync/node_modules/lru-memoizer/test/   drwxr-xr-x
Free 13.31 GB of 57.97 GB (22.96%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     lru-memoizer.queumaxage.test.js (2.82 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
var memoizer = require('./..');
var assert = require('chai').assert;

describe('lru-memoizer (queueMaxAge)', function () {
  var loadTimes = 0, memoized;

  beforeEach(function () {
    loadTimes = 0;
  });

  function observer() {
    const listeners = [];
    return {
      listen(listener) {
        listeners.push(listener);
      },
      trigger() {
        listeners.forEach(listener => listener());
      }
    }
  }

  it('should create a new queue once expired', function (done) {
    memoized = memoizer({
      load: function (a, b, onResolve, callback) {
        loadTimes++;
        onResolve(() => callback(null, a + b));
      },
      queueMaxAge: 10,
      hash: function (a, b) {
        return a + '-' + b;
      }
    });

    const observer1 = observer();
    const observer2 = observer();
    const observer3 = observer();
    const resolved = [];

    memoized(1, 2, observer1.listen, function (err, result) {
      assert.isNull(err);
      assert.strictEqual(result, 3);
      resolved.push('A');
    });

    assert.strictEqual(loadTimes, 1);

    memoized(1, 2, assert.fail, function (err, result) {
      assert.isNull(err);
      assert.strictEqual(result, 3);
      resolved.push('B');
    });

    assert.strictEqual(loadTimes, 1);

    setTimeout(() => {
      // previous queue expired, this calls will be added to a new queue.
      memoized(1, 2, observer2.listen, function (err, result) {
        assert.isNull(err);
        assert.strictEqual(result, 3);
        resolved.push('C');
      });

      memoized(1, 2, assert.fail, function (err, result) {
        assert.isNull(err);
        assert.strictEqual(result, 3);
        resolved.push('D');
      });

      // only one new invocation to load
      assert.strictEqual(loadTimes, 2);

      setTimeout(() => {
        // second queue expired, this calls will be added to a third queue.
        memoized(1, 2, observer3.listen, function (err, result) {
          assert.isNull(err);
          assert.strictEqual(result, 3);
          resolved.push('E');
        });

        memoized(1, 2, assert.fail.listen, function (err, result) {
          assert.isNull(err);
          assert.strictEqual(result, 3);
          resolved.push('F');
        });

        assert.strictEqual(loadTimes, 3);

        observer1.trigger();
        setImmediate(() => {
          // first queue was resolved
          assert.deepEqual(['A', 'B'], resolved);

          observer3.trigger();
          setImmediate(() => {
            // third queue was resolved
            assert.deepEqual(['A', 'B', 'E', 'F'], resolved);

            observer2.trigger();
            setImmediate(() => {
              // second queue was resolved
              assert.deepEqual(['A', 'B', 'E', 'F', 'C', 'D'], resolved);
              done();
            });
          });
        });
      }, 100);
    }, 100);
  });
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.036 ]--