-
Notifications
You must be signed in to change notification settings - Fork 868
/
Copy pathtest_mode.js
84 lines (66 loc) · 2.49 KB
/
test_mode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
var kue = require('../'),
_ = require('lodash'),
queue = kue.createQueue();
describe('Test Mode', function() {
context('when enabled', function() {
before(function() {
queue.testMode.enter();
});
afterEach(function() {
queue.testMode.clear();
});
it('adds jobs to an array in memory', function() {
queue.createJob('myJob', { foo: 'bar' }).save();
var jobs = queue.testMode.jobs;
expect(jobs.length).to.equal(1);
var job = _.last(jobs);
expect(job.type).to.equal('myJob');
expect(job.data).to.eql({ foo: 'bar' });
});
it('adds jobs to an array in memory and processes them when processQueue is true', function(done) {
queue.testMode.exit();
queue.testMode.enter(true);
queue.createJob('test-testMode-process', { foo: 'bar' }).save();
var jobs = queue.testMode.jobs;
expect(jobs.length).to.equal(1);
var job = _.last(jobs);
expect(job.type).to.equal('test-testMode-process');
expect(job.data).to.eql({ foo: 'bar' });
job.on('complete', function() {
queue.testMode.exit();
queue.testMode.enter();
done();
});
queue.process('test-testMode-process', function(job, jdone) {
job.data.should.be.eql({ foo: 'bar' });
jdone();
});
});
describe('#clear', function() {
it('resets the list of jobs', function() {
queue.createJob('myJob', { foo: 'bar' }).save();
queue.testMode.clear();
var jobs = queue.testMode.jobs;
expect(jobs.length).to.equal(0);
});
});
});
context('when disabled', function() {
before(function() {
// Simulate entering and exiting test mode to ensure
// state is restored correctly.
queue.testMode.enter();
queue.testMode.exit();
});
it('processes jobs regularly', function(done) {
queue.createJob('myJob', { foo: 'bar' }).save();
var jobs = queue.testMode.jobs;
expect(jobs.length).to.equal(0);
queue.process('myJob', function (job, jdone) {
expect(job.data).to.eql({ foo: 'bar' });
jdone();
done();
});
});
});
});