Skip to content

Commit 26120fb

Browse files
committed
Added tests
1 parent 665af28 commit 26120fb

File tree

2 files changed

+62
-5
lines changed

2 files changed

+62
-5
lines changed

src/handlers/TokenRequest.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,7 @@ class TokenRequest extends BaseRequest {
522522
}
523523
return provider.backend.get('refresh', refreshToken).then((refreshTokenInfo) => {
524524
if (!refreshTokenInfo) {
525+
console.log('in here')
525526
return request.badRequest({
526527
error: 'invalid_grant',
527528
error_description: 'Refresh token not found'

test/handlers/TokenRequestSpec.js

Lines changed: 61 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,11 +1360,6 @@ describe('TokenRequest', () => {
13601360
})
13611361
})
13621362

1363-
/**
1364-
* Include Refresh Token
1365-
*/
1366-
describe('includeRefreshToken', () => {})
1367-
13681363
/**
13691364
* Include ID Token
13701365
*/
@@ -1396,6 +1391,67 @@ describe('TokenRequest', () => {
13961391
})
13971392
})
13981393

1394+
describe('verifyRefreshToken', () => {
1395+
it('should be okay with an existing token', () => {
1396+
const params = {
1397+
grant_type: 'refresh_token',
1398+
refresh_token: 'some_token',
1399+
client_id: 'uuid',
1400+
client_secret: 's3cr3t'
1401+
}
1402+
const req = {
1403+
method: 'POST',
1404+
body: params
1405+
}
1406+
const res = {}
1407+
const provider = {
1408+
host: {},
1409+
grant_types_supported: ['refresh_token'],
1410+
backend: {
1411+
get: async () => { Promise.resolve({"header":{},"payload":{"sub":"https://jackson.localhost:8443/profile/card#me"}}) }
1412+
}
1413+
}
1414+
const request = new TokenRequest(req, res, provider)
1415+
request.authenticateClient(request)
1416+
request.verifyRefreshToken(request).then(() => {
1417+
expect(request.subject._id).to.equal("https://jackson.localhost:8443/profile/card#me")
1418+
})
1419+
});
1420+
1421+
it('should fail without a refresh token', () => {
1422+
sinon.stub(TokenRequest.prototype, 'badRequest')
1423+
const params = {
1424+
grant_type: 'refresh_token',
1425+
client_id: 'uuid',
1426+
client_secret: 's3cr3t'
1427+
}
1428+
const req = {
1429+
method: 'POST',
1430+
body: params
1431+
}
1432+
const res = {
1433+
json: sinon.stub(),
1434+
set: sinon.stub(),
1435+
status: sinon.stub(),
1436+
}
1437+
const provider = {
1438+
host: {},
1439+
grant_types_supported: ['refresh_token'],
1440+
backend: {
1441+
get: async () => {}
1442+
}
1443+
}
1444+
const request = new TokenRequest(req, res, provider)
1445+
request.authenticateClient(request)
1446+
request.verifyRefreshToken(request)
1447+
request.badRequest.should.have.been.calledWith({
1448+
error: 'invalid_grant',
1449+
error_description: 'Invalid refresh token'
1450+
})
1451+
TokenRequest.prototype.badRequest.restore()
1452+
});
1453+
});
1454+
13991455
/**
14001456
* Include Session State
14011457
* TODO: should this be on the base class?

0 commit comments

Comments
 (0)