Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/dceprojects.corals.io/node_modules/pend/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/dceprojects.corals.io/node_modules/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);
}

Spamworldpro Mini