connect-vtexid
Version:
VTEX ID Authentication middleware for Connect
67 lines (42 loc) • 1.56 kB
text/coffeescript
Module dependencies.
redirect = require '../libs/redirect'
describe 'Lib', ->
describe '#redirect()', (done) ->
res =
headers: {}
setHeader: (header, url) ->
this.headers[header] = url
end: ->
it 'should exist as a public function', (done) ->
redirect.should.be.a.Function
done()
it 'should throw an error if no res parameter was passed', (done) ->
redirect.bind(null).should.throw '"res" parameter is required'
done()
it 'should throw an error if no redirectUrl parameter was passed', (done) ->
redirect.bind(null, {}).should.throw '"redirectUrl" parameter is required'
done()
it 'should set status code to 302', (done) ->
redirectUrl = '/admin/checkout'
redirect res, redirectUrl
res.statusCode.should.be.equal 302
done()
it 'should set Location header to redirect url', (done) ->
redirectUrl = '/admin/checkout'
redirect res, redirectUrl
res.headers['Location'].should.be.equal '/admin/checkout'
done()
it 'should call res.end()', (done) ->
res.end = ->
done()
redirectUrl = '/admin/checkout'
redirect res, redirectUrl
it 'should pass a querystring "previousUrl" if one was passed as parameter', (done) ->
redirectUrl = '/admin/logout'
previousUrl = '/admin/checkout'
res.end = ->
res.headers['Location'].should.be.equal '/admin/logout?previousUrl=/admin/checkout'
done()
redirect res, redirectUrl, previousUrl