Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.
This commit is contained in:
137
Scripts/node_modules/pend/test.js
generated
vendored
Normal file
137
Scripts/node_modules/pend/test.js
generated
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user