-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.ls
96 lines (86 loc) · 1.99 KB
/
test.ls
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
require! {
'karma-sinon-expect'.expect
handle: './index.js'
'concat-stream'
σ: highland
'peat'.Header
'peat'.Status
}
export 'Oban':
'calls handler with the request': ->
handle do
handler = expect.sinon.stub!.returns σ []
request = {}
concat-stream ->
expect handler .to.be.called-with request
'pipes string chunks to body': (done)->
handle do
-> σ <[ hello world ]>
{}
concat-stream (body)->
expect body .to.be \helloworld
done!
'sets status to Status chunks': (done)->
handle do
-> σ [Status 153]
{}
res = concat-stream (body)->
expect res .to.have.property \statusCode 153
done!
'sets headers to Header chunks': (done)->
res = concat-stream (body)->
expect res.set-header .to.be.called-with \X-Test \foo
done!
res.set-header = expect.sinon.stub!
handle do
-> σ [Header \X-Test \foo]
{}
res
'pipes buffer chunks to body': (done)->
handle do
-> σ [
new Buffer 'hello'
new Buffer 'world'
]
{}
concat-stream (body)->
expect body.to-string! .to.be \helloworld
done!
'handles async streams': (done)->
handle do
-> σ (push)->
set-timeout (-> push null \hello), 5
set-timeout (-> push null \world), 10
set-timeout (-> push global.nil ), 15
{}
concat-stream (body)->
expect body .to.be \helloworld
done!
'sends error stack for stream errors': (done)->
e = new Error 'lol'
handle do
-> σ (push)->
push e
push global.nil
{}
concat-stream (body)->
expect body .to.be e.stack
done!
'sets status code to 500 for stream errors': (done)->
e = new Error 'lol'
handle do
-> σ (push)->
push e
push global.nil
{}
res = concat-stream (body)->
expect res .to.have.property \statusCode 500
done!
'handle-with-error allows setting custom error handler': (done)->
handle.handle-with-error do
-> σ ['error']
-> σ (push)-> push new Error; push global.nil
{}
concat-stream (body)->
expect body .to.be 'error'
done!