forked from Automattic/kue
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.coffee
More file actions
executable file
·98 lines (81 loc) · 2.59 KB
/
Copy pathtest.coffee
File metadata and controls
executable file
·98 lines (81 loc) · 2.59 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
kue = require '../'
describe 'Kue', ->
jobs = null
Job = null
beforeEach (done) ->
jobs = kue.createQueue()
Job = kue.Job
jobs.promote 1
done()
afterEach (done) ->
onShutdown = (err) ->
jobs = null
done()
jobs.shutdown onShutdown, 500
describe 'job-producer', ->
it 'should save jobs having new id', (done) ->
job_data =
title: 'Test Email Job'
to: 'tj@learnboost.com'
job = jobs.create('email-to-be-saved', job_data)
jobs.process 'email-to-be-saved', (job, done)->
done()
job.save (err) ->
job.id.should.be.an.instanceOf(Number)
done err
it 'should receive job complete event', (done) ->
jobs.process 'email-to-be-completed', (job, done)->
done()
job_data =
title: 'Test Email Job'
to: 'tj@learnboost.com'
jobs.create('email-to-be-completed', job_data)
.on 'complete', ->
done()
.save()
it 'should receive job result in complete event', (done) ->
jobs.process 'email-with-results', (job, done)->
done( null, {finalResult:123} )
job_data =
title: 'Test Email Job With Results'
to: 'tj@learnboost.com'
jobs.create('email-with-results', job_data)
.on 'complete', (result)->
result.finalResult.should.be.equal 123
done()
.save()
it 'should receive job progress event', (done) ->
jobs.process 'email-to-be-progressed', (job, done)->
job.progress 1, 2
done()
job_data =
title: 'Test Email Job'
to: 'tj@learnboost.com'
jobs.create('email-to-be-progressed', job_data)
.on 'progress', (progress)->
progress.should.be.equal 50
done()
.save()
it 'should receive job failed event', (done) ->
jobs.process 'email-to-be-failed', (job, done)->
done 'error'
job_data =
title: 'Test Email Job'
to: 'tj@learnboost.com'
jobs.create('email-to-be-failed', job_data)
.on 'failed', ->
done()
.save()
describe 'Kue Management', ->
totalJobs = {}
removeJobById = (id, type, done)->
Job.remove id, (err) ->
done() if not --totalJobs[type]
it.skip 'should be able to remove completed jobs', (done) ->
jobs.complete (err, ids) ->
totalJobs.complete = ids.length
removeJobById id, 'complete', done for id in ids
it.skip 'should be able to remove failed jobs', (done) ->
jobs.failed (err, ids) ->
totalJobs.failed = ids.length
removeJobById id, 'failed', done for id in ids