multi-account-post-schedule.../node_modules/then-queue/test/index.js

67 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-07-07 19:03:04 +02:00
'use strict';
var assert = require('assert')
var test = require('testit')
var Queue = require('../')
test('queue', function () {
var q = new Queue();
var length = 0;
var results = [];
q.on('length-changed', function (l) {
assert(q.length === l)
assert(length !== l)
length = l
})
assert(q.length === 0);
q.push(1);
assert(q.length === 1);
assert(length === 1);
q.push(2);
assert(q.length === 2);
assert(length === 2);
q.push(3);
assert(q.length === 3);
assert(length === 3);
return q.pop().then(function (n) {
assert(n === 1);
assert(q.length === 2);
assert(length === 2);
return q.pop();
}).then(function (n) {
assert(n === 2);
assert(q.length === 1);
assert(length === 1);
return q.pop();
}).then(function (n) {
assert(n === 3);
assert(q.length === 0);
assert(length === 0);
results.push(q.pop());
assert(q.length === -1);
assert(length === -1);
results.push(q.pop());
assert(q.length === -2);
assert(length === -2);
results.push(q.pop());
assert(q.length === -3);
assert(length === -3);
q.push(1);
assert(q.length === -2);
return results.shift();
}).then(function (n) {
assert(n === 1);
q.push(2);
assert(q.length === -1);
assert(length === -1);
return results.shift();
}).then(function (n) {
assert(n === 2);
q.push(3);
assert(q.length === 0);
assert(length === 0);
return results.shift();
}).then(function (n) {
assert(n === 3);
});
});