Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package-lock.json
node_modules/
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
language: node_js
node_js:
- "node"
- "7"
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/dafky2000/TimedQ.js.svg?branch=testfix-1)](https://travis-ci.org/dafky2000/TimedQ.js)

# TimedQ.js

Javascript timed processing queue (and queue manager). Useful as a non render blocking processing queue in the browser.
Expand Down
3 changes: 3 additions & 0 deletions TimedQ.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
* Above and including this line must remain unchanged.
*
*/

exports.TimedQ = TimedQ;

function TimedQ(options = {}) {
this.options = {
runtime: options.runtime || 40,
Expand Down
14 changes: 14 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "timedq",
"version": "0.0.1",
"description": "TimedQ: Javascript timed processing queue (and queue manager)",
"scripts": {
"test": "node test/all.js"
},
"devDependencies": {
"test": "^0.6.0"
},
"dependencies": {
"require": "^2.4.20"
}
}
47 changes: 47 additions & 0 deletions test/all.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
const TimedQ = require('../TimedQ.js').TimedQ;

const test_size = 1000000;
const test_size_repeat = 10;

function dummyData() {
const data = [];
for(let x = 0; x < test_size; ++x) {
data.push(['test'+x]);
}

let newdata = [];
for(let x = 0; x < test_size_repeat; ++x) {
newdata = newdata.concat(data);
}

return newdata;
}

// using assert passed to the test function that just logs failures
exports['test that logs all failures'] = function(assert, done) {
const Q = new TimedQ();
// Q.stop(); // Stop the queue since it is automatically started

const f = function(input) { return 'f1' + input; };
const f2 = function(input) { return 'f2' + input; };

const dummydata = dummyData();
Q.enqueue(f, dummydata);
Q.enqueue(f2, dummydata);

assert.equal(Q.queues_array[0].items.length, dummydata.length, 'Initial queue #1 length');
assert.equal(Q.queues_array[1].items.length, dummydata.length, 'Initial queue #2 length');

(function wait_for_done() {
const left = Q.queues_array[0].items.length + Q.queues_array[1].items.length;
console.log(left);

if(left) {
setTimeout(wait_for_done, 1000);
} else {
done();
}
})();
};

if (module == require.main) require('test').run(exports);