1 | var assert = require('assert');
|
2 | var helper = require('./lib/helper');
|
3 | var Queue = require('../lib/queue');
|
4 |
|
5 | describe('Stats', function() {
|
6 | afterEach(helper.destroyQueues);
|
7 |
|
8 | it('should get stat', function (done) {
|
9 | var completed = 0;
|
10 | var elapsedTotals = 0;
|
11 | var q = new Queue(function (wait, cb) {
|
12 | setTimeout(function () {
|
13 | cb()
|
14 | }, wait)
|
15 | })
|
16 | q.on('task_finish', function (id, result, stat) {
|
17 | completed++;
|
18 | elapsedTotals += stat.elapsed;
|
19 | })
|
20 | q.on('drain', function () {
|
21 | var stats = q.getStats();
|
22 | assert.ok(stats.peak);
|
23 | assert.equal(3, stats.total);
|
24 | assert.equal(elapsedTotals/3, stats.average);
|
25 | done();
|
26 | })
|
27 | q.push(1);
|
28 | q.push(1);
|
29 | q.push(1);
|
30 | this.q = q;
|
31 | })
|
32 |
|
33 | it('should reset stat', function (done) {
|
34 | var queued = 0;
|
35 | var elapsedTotal = 0;
|
36 | var q = new Queue(function (wait, cb) {
|
37 | setTimeout(function () {
|
38 | cb()
|
39 | }, wait)
|
40 | }, { id: function (n, cb) { cb(null, n) } })
|
41 | q.push(1, function () {
|
42 | q.push(1, function () {
|
43 | q.resetStats();
|
44 | q.on('task_finish', function (id, result, stat) {
|
45 | if (id !== '2') return;
|
46 | assert.ok(stat.elapsed > 0);
|
47 | var stats = q.getStats();
|
48 | assert.equal(1, stats.peak);
|
49 | assert.equal(1, stats.total);
|
50 | assert.equal(stats.average, stat.elapsed);
|
51 | done();
|
52 | })
|
53 | q.push(2);
|
54 | });
|
55 | });
|
56 | this.q = q;
|
57 | })
|
58 |
|
59 |
|
60 | })
|