@@ -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