@@ -30,11 +30,7 @@ import { browserLocalPersistence } from '../persistence/browser';
30
30
import { inMemoryPersistence } from '../persistence/in_memory' ;
31
31
import { PersistenceUserManager } from '../persistence/persistence_user_manager' ;
32
32
import { ClientPlatform , getClientVersion } from '../util/version' ;
33
- import {
34
- DEFAULT_API_HOST ,
35
- DEFAULT_API_SCHEME ,
36
- initializeAuth
37
- } from './auth_impl' ;
33
+ import { DEFAULT_API_HOST , DEFAULT_API_SCHEME , initializeAuth } from './auth_impl' ;
38
34
39
35
use ( sinonChai ) ;
40
36
@@ -155,70 +151,71 @@ describe('AuthImpl', () => {
155
151
156
152
describe ( 'user logs in/out, tokens refresh' , ( ) => {
157
153
let user : User ;
158
- let callback : sinon . SinonSpy ;
154
+ let authStateCallback : sinon . SinonSpy ;
155
+ let idTokenCallback : sinon . SinonSpy ;
159
156
160
157
beforeEach ( ( ) => {
161
158
user = testUser ( 'uid' ) ;
162
- callback = sinon . spy ( ) ;
159
+ authStateCallback = sinon . spy ( ) ;
160
+ idTokenCallback = sinon . spy ( ) ;
163
161
} ) ;
164
162
165
- it ( 'onAuthStateChange triggers on log in' , async ( ) => {
166
- auth . onAuthStateChanged ( callback ) ;
167
- await auth . updateCurrentUser ( null ) ;
168
- callback . resetHistory ( ) ;
169
- await auth . updateCurrentUser ( user ) ;
170
- expect ( callback ) . to . have . been . calledWith ( user ) ;
171
- } ) ;
172
-
173
- it ( 'onAuthStateChange triggers on log out' , async ( ) => {
174
- auth . onAuthStateChanged ( callback ) ;
175
- await auth . updateCurrentUser ( user ) ;
176
- callback . resetHistory ( ) ;
177
- await auth . updateCurrentUser ( null ) ;
178
- expect ( callback ) . to . have . been . calledWith ( null ) ;
179
- } ) ;
180
-
181
- it ( 'onIdTokenChange triggers on log in' , async ( ) => {
182
- auth . onIdTokenChange ( callback ) ;
183
- await auth . updateCurrentUser ( null ) ;
184
- callback . resetHistory ( ) ;
185
- await auth . updateCurrentUser ( user ) ;
186
- expect ( callback ) . to . have . been . calledWith ( user ) ;
187
- } ) ;
163
+ context ( 'initially currentUser is null' , ( ) => {
164
+ beforeEach ( async ( ) => {
165
+ auth . onAuthStateChanged ( authStateCallback ) ;
166
+ auth . onIdTokenChange ( idTokenCallback ) ;
167
+ await auth . updateCurrentUser ( null ) ;
168
+ authStateCallback . resetHistory ( ) ;
169
+ idTokenCallback . resetHistory ( ) ;
170
+ } ) ;
188
171
189
- it ( 'onIdTokenChange triggers on log out' , async ( ) => {
190
- auth . onIdTokenChange ( callback ) ;
191
- await auth . updateCurrentUser ( user ) ;
192
- callback . resetHistory ( ) ;
193
- await auth . updateCurrentUser ( null ) ;
194
- expect ( callback ) . to . have . been . calledWith ( null ) ;
195
- } ) ;
172
+ it ( 'onAuthStateChange triggers on log in' , async ( ) => {
173
+ await auth . updateCurrentUser ( user ) ;
174
+ expect ( authStateCallback ) . to . have . been . calledWith ( user ) ;
175
+ } ) ;
196
176
197
- it ( 'onAuthStateChange does not trigger for user props change' , async ( ) => {
198
- auth . onAuthStateChanged ( callback ) ;
199
- await auth . updateCurrentUser ( user ) ;
200
- callback . resetHistory ( ) ;
201
- user . refreshToken = 'hey look I changed' ;
202
- await auth . updateCurrentUser ( user ) ;
203
- expect ( callback ) . not . to . have . been . called ;
177
+ it ( 'onIdTokenChange triggers on log in' , async ( ) => {
178
+ await auth . updateCurrentUser ( user ) ;
179
+ expect ( idTokenCallback ) . to . have . been . calledWith ( user ) ;
180
+ } ) ;
204
181
} ) ;
205
182
206
- it ( 'onIdTokenChange triggers for user props change' , async ( ) => {
207
- auth . onIdTokenChange ( callback ) ;
208
- await auth . updateCurrentUser ( user ) ;
209
- callback . resetHistory ( ) ;
210
- user . refreshToken = 'hey look I changed' ;
211
- await auth . updateCurrentUser ( user ) ;
212
- expect ( callback ) . to . have . been . calledWith ( user ) ;
213
- } ) ;
183
+ context ( 'initially currentUser is user' , ( ) => {
184
+ beforeEach ( async ( ) => {
185
+ auth . onAuthStateChanged ( authStateCallback ) ;
186
+ auth . onIdTokenChange ( idTokenCallback ) ;
187
+ await auth . updateCurrentUser ( user ) ;
188
+ authStateCallback . resetHistory ( ) ;
189
+ idTokenCallback . resetHistory ( ) ;
190
+ } ) ;
214
191
215
- it ( 'onAuthStateChange triggers if uid changes' , async ( ) => {
216
- auth . onAuthStateChanged ( callback ) ;
217
- await auth . updateCurrentUser ( user ) ;
218
- callback . resetHistory ( ) ;
219
- const newUser = testUser ( 'different-uid' ) ;
220
- await auth . updateCurrentUser ( newUser ) ;
221
- expect ( callback ) . to . have . been . calledWith ( newUser ) ;
192
+ it ( 'onAuthStateChange triggers on log out' , async ( ) => {
193
+ await auth . updateCurrentUser ( null ) ;
194
+ expect ( authStateCallback ) . to . have . been . calledWith ( null ) ;
195
+ } ) ;
196
+
197
+ it ( 'onIdTokenChange triggers on log out' , async ( ) => {
198
+ await auth . updateCurrentUser ( null ) ;
199
+ expect ( idTokenCallback ) . to . have . been . calledWith ( null ) ;
200
+ } ) ;
201
+
202
+ it ( 'onAuthStateChange does not trigger for user props change' , async ( ) => {
203
+ user . refreshToken = 'hey look I changed' ;
204
+ await auth . updateCurrentUser ( user ) ;
205
+ expect ( authStateCallback ) . not . to . have . been . called ;
206
+ } ) ;
207
+
208
+ it ( 'onIdTokenChange triggers for user props change' , async ( ) => {
209
+ user . refreshToken = 'hey look I changed' ;
210
+ await auth . updateCurrentUser ( user ) ;
211
+ expect ( idTokenCallback ) . to . have . been . calledWith ( user ) ;
212
+ } ) ;
213
+
214
+ it ( 'onAuthStateChange triggers if uid changes' , async ( ) => {
215
+ const newUser = testUser ( 'different-uid' ) ;
216
+ await auth . updateCurrentUser ( newUser ) ;
217
+ expect ( authStateCallback ) . to . have . been . calledWith ( newUser ) ;
218
+ } ) ;
222
219
} ) ;
223
220
224
221
it ( 'onAuthStateChange works for multiple listeners' , async ( ) => {
0 commit comments