UNPKG

@quarks/quarks-iam

Version:

A modern authorization server built to authenticate your users and protect your APIs

138 lines (80 loc) 3.41 kB
chai = require 'chai' chai.should() {validateTokenParams} = require '../../../oidc' req = (params) -> body: params res = {} err = null describe 'Validate Token Parameters', -> describe 'all requests', -> describe 'with missing grant_type', -> before (done) -> params = {} validateTokenParams req(params), res, (error) -> err = error done() it 'should provide an AuthorizationError', -> err.name.should.equal 'AuthorizationError' it 'should provide an error code', -> err.error.should.equal 'invalid_request' it 'should provide an error description', -> err.error_description.should.equal 'Missing grant type' it 'should provide a status code', -> err.statusCode.should.equal 400 describe 'with unsupported grant_type', -> before (done) -> params = { grant_type: 'unsupported' } validateTokenParams req(params), res, (error) -> err = error done() it 'should provide an AuthorizationError', -> err.name.should.equal 'AuthorizationError' it 'should provide an error code', -> err.error.should.equal 'unsupported_grant_type' it 'should provide an error description', -> err.error_description.should.equal 'Unsupported grant type' it 'should provide a status code', -> err.statusCode.should.equal 400 describe 'authorization code grant', -> describe 'with missing authorization code', -> before (done) -> params = { grant_type: 'authorization_code' } validateTokenParams req(params), res, (error) -> err = error done() it 'should provide an AuthorizationError', -> err.name.should.equal 'AuthorizationError' it 'should provide an error code', -> err.error.should.equal 'invalid_request' it 'should provide an error description', -> err.error_description.should.equal 'Missing authorization code' it 'should provide a status code', -> err.statusCode.should.equal 400 describe 'with missing redirect_uri', -> before (done) -> params = { grant_type: 'authorization_code', code: 'bogus' } validateTokenParams req(params), res, (error) -> err = error done() it 'should provide an AuthorizationError', -> err.name.should.equal 'AuthorizationError' it 'should provide an error code', -> err.error.should.equal 'invalid_request' it 'should provide an error description', -> err.error_description.should.equal 'Missing redirect uri' it 'should provide a status code', -> err.statusCode.should.equal 400 describe 'refresh token grant', -> describe 'with missing refresh token', -> before (done) -> params = { grant_type: 'refresh_token' } validateTokenParams req(params), res, (error) -> err = error done() it 'should provide an AuthorizationError', -> err.name.should.equal 'AuthorizationError' it 'should provide an error code', -> err.error.should.equal 'invalid_request' it 'should provide an error description', -> err.error_description.should.equal 'Missing refresh token' it 'should provide a status code', -> err.statusCode.should.equal 400