@@ -144,8 +144,35 @@ describe('core/user/token_manager', () => {
144
144
} ) ;
145
145
} ) ;
146
146
147
- it ( 'returns non null if the refresh token is missing' , async ( ) => {
148
- expect ( await stsTokenManager . getToken ( auth ) ) . to . not . be . null ;
147
+ it ( 'returns non-null if the refresh token is missing but token still valid' , async ( ) => {
148
+ Object . assign ( stsTokenManager , {
149
+ accessToken : 'access-token' ,
150
+ expirationTime : now + 100_000
151
+ } ) ;
152
+ const tokens = await stsTokenManager . getToken ( auth , false ) ;
153
+ expect ( tokens ) . to . eql ( 'new-access-token' ) ;
154
+ } ) ;
155
+
156
+ it ( 'throws an error if the refresh token is missing and force refresh is true' , async ( ) => {
157
+ Object . assign ( stsTokenManager , {
158
+ accessToken : 'access-token' ,
159
+ expirationTime : now + 100_000
160
+ } ) ;
161
+ await expect ( stsTokenManager . getToken ( auth , true ) ) . to . be . rejectedWith (
162
+ FirebaseError ,
163
+ "Firebase: The user's credential is no longer valid. The user must sign in again. (auth/user-token-expired)"
164
+ ) ;
165
+ } ) ;
166
+
167
+ it ( 'throws an error if the refresh token is missing and token is no longer valid' , async ( ) => {
168
+ Object . assign ( stsTokenManager , {
169
+ accessToken : 'old-access-token' ,
170
+ expirationTime : now - 1
171
+ } ) ;
172
+ await expect ( stsTokenManager . getToken ( auth ) ) . to . be . rejectedWith (
173
+ FirebaseError ,
174
+ "Firebase: The user's credential is no longer valid. The user must sign in again. (auth/user-token-expired)"
175
+ ) ;
149
176
} ) ;
150
177
151
178
it ( 'throws an error if expired but refresh token is missing' , async ( ) => {
0 commit comments