UNPKG

1.56 kBtext/coffeescriptView Raw
1###
2Module dependencies.
3###
4redirect = require '../libs/redirect'
5
6describe 'Lib', ->
7
8 describe '#redirect()', (done) ->
9
10 res =
11 headers: {}
12 setHeader: (header, url) ->
13 this.headers[header] = url
14 end: ->
15
16 it 'should exist as a public function', (done) ->
17 redirect.should.be.a.Function
18 done()
19
20 it 'should throw an error if no res parameter was passed', (done) ->
21
22 redirect.bind(null).should.throw '"res" parameter is required'
23 done()
24
25 it 'should throw an error if no redirectUrl parameter was passed', (done) ->
26
27 redirect.bind(null, {}).should.throw '"redirectUrl" parameter is required'
28 done()
29
30 it 'should set status code to 302', (done) ->
31
32 redirectUrl = '/admin/checkout'
33
34 redirect res, redirectUrl
35 res.statusCode.should.be.equal 302
36 done()
37
38 it 'should set Location header to redirect url', (done) ->
39
40 redirectUrl = '/admin/checkout'
41
42 redirect res, redirectUrl
43 res.headers['Location'].should.be.equal '/admin/checkout'
44
45 done()
46
47 it 'should call res.end()', (done) ->
48
49 res.end = ->
50 done()
51
52 redirectUrl = '/admin/checkout'
53
54 redirect res, redirectUrl
55
56 it 'should pass a querystring "previousUrl" if one was passed as parameter', (done) ->
57
58 redirectUrl = '/admin/logout'
59 previousUrl = '/admin/checkout'
60
61 res.end = ->
62 res.headers['Location'].should.be.equal '/admin/logout?previousUrl=/admin/checkout'
63 done()
64
65 redirect res, redirectUrl, previousUrl
66