UNPKG

connect-vtexid

Version:

VTEX ID Authentication middleware for Connect

143 lines (93 loc) 3.55 kB
### Module dependencies. ### rewire = require 'rewire' httpErrorResponse = rewire '../libs/http-errors' fsMock = require './mocks/fs.mock' httpErrorResponse.__set__ 'fs', fsMock describe 'Lib', -> describe '#httpErrorResponse()', -> it 'should exist as a public function', (done) -> httpErrorResponse.should.be.a.Function done() it 'should throw an error if res was not passed as parameter', (done) -> httpErrorResponse.bind(null).should.throw '"res" parameter is required' done() it 'should throw an error if statusCode was not passed as parameter', (done) -> res = {} httpErrorResponse.bind(null, res).should.throw '"statusCode" parameter is required' done() it 'should return a function', (done) -> res = {} statusCode = 404 notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse.should.be.a.Function done() describe 'Response function', -> # Silences console.warns for testing console.warn = -> it 'should throw an error if body was not passed as parameter', (done) -> res = {} statusCode = 404 notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse.bind(null).should.throw '"body" parameter is required' done() it 'should throw an error if cookie was not passed as parameter', (done) -> res = {} statusCode = 404 body = '' notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse.bind(null, body).should.throw '"cookie" parameter is required' done() it 'should change response status code', (done) -> res = statusCode: 0 write: -> end: -> statusCode = 404 notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse res, statusCode res.statusCode.should.be.equal 404 done() it 'shoul output the error page in the response object', (done) -> res = statusCode: 0 end: -> write: (page) -> page.should.be.a.String page.should.be.equal 'html-mock' done() statusCode = 404 notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse res, statusCode it 'should send response', (done) -> res = statusCode: 0 write: -> end: -> done() statusCode = 404 notFoundErrorResponse = httpErrorResponse res, statusCode notFoundErrorResponse res, statusCode it 'should render page from custom path if passed as parameter', (done) -> res = statusCode: 0 end: -> write: (page) -> page.should.be.a.String page.should.be.equal 'custom-path' done() statusCode = 404 customPath = 'custom/path.html' notFoundErrorResponse = httpErrorResponse res, statusCode, customPath notFoundErrorResponse res, statusCode it 'should send a fallback error if no page was found', (done) -> res = end: -> write: (page) -> page.should.be.a.String page.should.be.equal 'Error 403: Unauthorized access for auth cookie 1' done() statusCode = 403 notFoundErrorResponse = httpErrorResponse res, statusCode, 'FORCE_ERROR' notFoundErrorResponse res, 1