File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -503,6 +503,27 @@ describe('OAuth Token Refresh', () => {
503503 } )
504504 } )
505505
506+ it . concurrent . each ( [ 0 , - 1 , '0' , '-1' ] ) (
507+ 'should fall back when token expiry is not positive: %s' ,
508+ async ( expiresIn ) => {
509+ const mockFetch = vi . fn ( ) . mockResolvedValue (
510+ Response . json ( {
511+ access_token : 'new_access_token' ,
512+ expires_in : expiresIn ,
513+ } )
514+ )
515+
516+ const result = await withMockFetch ( mockFetch , ( ) =>
517+ refreshOAuthToken ( 'google' , 'old_refresh_token' )
518+ )
519+
520+ expect ( result ) . toMatchObject ( {
521+ ok : true ,
522+ expiresIn : 3600 ,
523+ } )
524+ }
525+ )
526+
506527 it . concurrent ( 'should handle providers that return new refresh tokens' , async ( ) => {
507528 const refreshToken = 'old_refresh_token'
508529 const newRefreshToken = 'new_refresh_token'
Original file line number Diff line number Diff line change @@ -1891,7 +1891,8 @@ export async function refreshOAuthToken(
18911891 : typeof expiresInCandidate === 'string' && expiresInCandidate . trim ( )
18921892 ? Number ( expiresInCandidate )
18931893 : Number . NaN
1894- const expiresIn = Number . isFinite ( parsedExpiresIn ) ? parsedExpiresIn : 3600
1894+ const expiresIn =
1895+ Number . isFinite ( parsedExpiresIn ) && parsedExpiresIn > 0 ? parsedExpiresIn : 3600
18951896
18961897 if ( ! accessToken ) {
18971898 logger . warn ( 'No access token found in refresh response' , {
You can’t perform that action at this time.
0 commit comments