@@ -416,6 +416,40 @@ describe('Service', () => {
416
416
assert . equal ( storedToken . refresh_token , 'bar' ) ;
417
417
assert . equal ( storedToken . refreshTokenExpiresAt , NOW_SECONDS + 360 ) ;
418
418
} ) ;
419
+
420
+ it ( 'should retain refresh expiry' , ( ) => {
421
+ const NOW_SECONDS = OAuth2 . getTimeInSeconds_ ( new Date ( ) ) ;
422
+ const ONE_HOUR_AGO_SECONDS = NOW_SECONDS - 360 ;
423
+ var token = {
424
+ granted_time : ONE_HOUR_AGO_SECONDS ,
425
+ expires_in : 100 ,
426
+ refresh_token : 'bar' ,
427
+ refresh_token_expires_in : 720
428
+ } ;
429
+ var properties = new MockProperties ( {
430
+ 'oauth2.test' : JSON . stringify ( token )
431
+ } ) ;
432
+
433
+ mocks . UrlFetchApp . resultFunction = ( ) => {
434
+ return JSON . stringify ( {
435
+ access_token : 'token'
436
+ } ) ;
437
+ } ;
438
+
439
+ OAuth2 . createService ( 'test' )
440
+ . setClientId ( 'abc' )
441
+ . setClientSecret ( 'def' )
442
+ . setTokenUrl ( 'http://www.example.com' )
443
+ . setPropertyStore ( properties )
444
+ . setLock ( new MockLock ( ) )
445
+ . refresh ( ) ;
446
+
447
+ var storedToken = JSON . parse ( properties . getProperty ( 'oauth2.test' ) ) ;
448
+ assert . equal ( storedToken . access_token , 'token' ) ;
449
+ assert . equal ( storedToken . refresh_token , 'bar' ) ;
450
+ assert . equal ( storedToken . granted_time , NOW_SECONDS ) ;
451
+ assert . equal ( storedToken . refresh_token_expires_in , 360 ) ;
452
+ } ) ;
419
453
} ) ;
420
454
421
455
describe ( '#exchangeGrant_()' , ( ) => {
0 commit comments