@quarks/quarks-iam
Version:
A modern authorization server built to authenticate your users and protect your APIs
92 lines (52 loc) • 1.68 kB
text/coffeescript
chai = require 'chai'
sinon = require 'sinon'
sinonChai = require 'sinon-chai'
expect = chai.expect
chai.use sinonChai
chai.should()
{enforceReferrer} = require '../../../oidc'
InvalidRequestError = require '../../../errors/InvalidRequestError'
settings = require '../../../boot/settings'
describe 'Enforce Referrer', ->
{req,res,next,issuer} = {}
pathname = [ '/signin', '/signup' ]
before ->
issuer = settings.issuer
settings.issuer = 'https://connect.example.com'
enforceReferrer = enforceReferrer pathname
after ->
settings.issuer = issuer
describe 'with valid referrer', ->
before ->
referrer = 'https://connect.example.com/signin?client_id=1a2b3c4d5e6f7089'
req =
get: (name) ->
if name == 'referrer'
return referrer
else
return undefined
res = {}
next = sinon.spy()
enforceReferrer req, res, next
it 'should continue', ->
next.should.have.been.called
it 'should not provide an error', ->
next.should.not.have.been.calledWith sinon.match.defined
describe 'with invalid referrer', ->
before ->
referrer = 'http://viruses.r.us/phishing_for_n00bs'
req =
get: (name) ->
if name == 'referrer'
return referrer
else
return undefined
res = {}
next = sinon.spy()
enforceReferrer req, res, next
it 'should continue', ->
next.should.have.been.called
it 'should provide an InvalidRequestError', ->
next.should.have.been.calledWith(
sinon.match.instanceOf(InvalidRequestError)
)