@@ -48,7 +48,8 @@ import {
48
48
ListenerType
49
49
} from './state' ;
50
50
import { Deferred } from '@firebase/util' ;
51
- import { AppCheckTokenResult } from '../../app-check-interop-types' ;
51
+ import { ReCAPTCHAProvider } from './providers' ;
52
+ import { AppCheckTokenResult } from '../../app-check-types' ;
52
53
53
54
const fakePlatformLoggingProvider = getFakePlatformLoggingProvider ( ) ;
54
55
@@ -89,7 +90,7 @@ describe('internal api', () => {
89
90
const customTokenProvider = getFakeCustomTokenProvider ( ) ;
90
91
const customProviderSpy = spy ( customTokenProvider , 'getToken' ) ;
91
92
92
- activate ( app , customTokenProvider ) ;
93
+ activate ( app , customTokenProvider , fakePlatformLoggingProvider ) ;
93
94
const token = await getToken ( app , fakePlatformLoggingProvider ) ;
94
95
95
96
expect ( customProviderSpy ) . to . be . called ;
@@ -98,8 +99,12 @@ describe('internal api', () => {
98
99
} ) ;
99
100
} ) ;
100
101
101
- it ( 'uses reCAPTCHA token to exchange for AppCheck token if no customTokenProvider is provided' , async ( ) => {
102
- activate ( app , FAKE_SITE_KEY ) ;
102
+ it ( 'uses reCAPTCHA token to exchange for AppCheck token if ReCAPTCHAProvider is provided' , async ( ) => {
103
+ activate (
104
+ app ,
105
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
106
+ fakePlatformLoggingProvider
107
+ ) ;
103
108
104
109
const reCAPTCHASpy = stub ( reCAPTCHA , 'getToken' ) . resolves (
105
110
fakeRecaptchaToken
@@ -121,7 +126,11 @@ describe('internal api', () => {
121
126
122
127
it ( 'resolves with a dummy token and an error if failed to get a token' , async ( ) => {
123
128
const errorStub = stub ( console , 'error' ) ;
124
- activate ( app , FAKE_SITE_KEY , true ) ;
129
+ activate (
130
+ app ,
131
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
132
+ fakePlatformLoggingProvider
133
+ ) ;
125
134
126
135
const reCAPTCHASpy = stub ( reCAPTCHA , 'getToken' ) . resolves (
127
136
fakeRecaptchaToken
@@ -144,7 +153,11 @@ describe('internal api', () => {
144
153
} ) ;
145
154
146
155
it ( 'notifies listeners using cached token' , async ( ) => {
147
- activate ( app , FAKE_SITE_KEY , false ) ;
156
+ activate (
157
+ app ,
158
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
159
+ fakePlatformLoggingProvider
160
+ ) ;
148
161
storageReadStub . resolves ( fakeCachedAppCheckToken ) ;
149
162
150
163
const listener1 = spy ( ) ;
@@ -173,7 +186,11 @@ describe('internal api', () => {
173
186
} ) ;
174
187
175
188
it ( 'notifies listeners using new token' , async ( ) => {
176
- activate ( app , FAKE_SITE_KEY , false ) ;
189
+ activate (
190
+ app ,
191
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
192
+ fakePlatformLoggingProvider
193
+ ) ;
177
194
178
195
stub ( reCAPTCHA , 'getToken' ) . resolves ( fakeRecaptchaToken ) ;
179
196
stub ( client , 'exchangeToken' ) . resolves ( fakeRecaptchaAppCheckToken ) ;
@@ -205,7 +222,11 @@ describe('internal api', () => {
205
222
206
223
it ( 'calls 3P error handler if there is an error getting a token' , async ( ) => {
207
224
stub ( logger . logger , 'error' ) ;
208
- activate ( app , FAKE_SITE_KEY , false ) ;
225
+ activate (
226
+ app ,
227
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
228
+ fakePlatformLoggingProvider
229
+ ) ;
209
230
stub ( reCAPTCHA , 'getToken' ) . resolves ( fakeRecaptchaToken ) ;
210
231
stub ( client , 'exchangeToken' ) . rejects ( 'exchange error' ) ;
211
232
const listener1 = spy ( ) ;
@@ -227,7 +248,11 @@ describe('internal api', () => {
227
248
} ) ;
228
249
229
250
it ( 'ignores listeners that throw' , async ( ) => {
230
- activate ( app , FAKE_SITE_KEY , false ) ;
251
+ activate (
252
+ app ,
253
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
254
+ fakePlatformLoggingProvider
255
+ ) ;
231
256
stub ( reCAPTCHA , 'getToken' ) . resolves ( fakeRecaptchaToken ) ;
232
257
stub ( client , 'exchangeToken' ) . resolves ( fakeRecaptchaAppCheckToken ) ;
233
258
const listener1 = stub ( ) . throws ( new Error ( ) ) ;
@@ -257,7 +282,11 @@ describe('internal api', () => {
257
282
} ) ;
258
283
259
284
it ( 'loads persisted token to memory and returns it' , async ( ) => {
260
- activate ( app , FAKE_SITE_KEY ) ;
285
+ activate (
286
+ app ,
287
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
288
+ fakePlatformLoggingProvider
289
+ ) ;
261
290
262
291
storageReadStub . resolves ( fakeCachedAppCheckToken ) ;
263
292
@@ -273,7 +302,11 @@ describe('internal api', () => {
273
302
} ) ;
274
303
275
304
it ( 'persists token to storage' , async ( ) => {
276
- activate ( app , FAKE_SITE_KEY , false ) ;
305
+ activate (
306
+ app ,
307
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
308
+ fakePlatformLoggingProvider
309
+ ) ;
277
310
278
311
stub ( reCAPTCHA , 'getToken' ) . resolves ( fakeRecaptchaToken ) ;
279
312
stub ( client , 'exchangeToken' ) . resolves ( fakeRecaptchaAppCheckToken ) ;
@@ -286,7 +319,11 @@ describe('internal api', () => {
286
319
} ) ;
287
320
288
321
it ( 'returns the valid token in memory without making network request' , async ( ) => {
289
- activate ( app , FAKE_SITE_KEY ) ;
322
+ activate (
323
+ app ,
324
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
325
+ fakePlatformLoggingProvider
326
+ ) ;
290
327
setState ( app , { ...getState ( app ) , token : fakeRecaptchaAppCheckToken } ) ;
291
328
292
329
const clientStub = stub ( client , 'exchangeToken' ) ;
@@ -298,7 +335,11 @@ describe('internal api', () => {
298
335
} ) ;
299
336
300
337
it ( 'force to get new token when forceRefresh is true' , async ( ) => {
301
- activate ( app , FAKE_SITE_KEY ) ;
338
+ activate (
339
+ app ,
340
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
341
+ fakePlatformLoggingProvider
342
+ ) ;
302
343
setState ( app , { ...getState ( app ) , token : fakeRecaptchaAppCheckToken } ) ;
303
344
304
345
stub ( reCAPTCHA , 'getToken' ) . resolves ( fakeRecaptchaToken ) ;
@@ -320,7 +361,11 @@ describe('internal api', () => {
320
361
debugState . enabled = true ;
321
362
debugState . token = new Deferred ( ) ;
322
363
debugState . token . resolve ( 'my-debug-token' ) ;
323
- activate ( app , FAKE_SITE_KEY ) ;
364
+ activate (
365
+ app ,
366
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
367
+ fakePlatformLoggingProvider
368
+ ) ;
324
369
325
370
const token = await getToken ( app , fakePlatformLoggingProvider ) ;
326
371
expect ( exchangeTokenStub . args [ 0 ] [ 0 ] . body [ 'debug_token' ] ) . to . equal (
@@ -397,7 +442,11 @@ describe('internal api', () => {
397
442
} ) ;
398
443
399
444
it ( 'notifies the listener with the valid token in storage' , done => {
400
- activate ( app , FAKE_SITE_KEY ) ;
445
+ activate (
446
+ app ,
447
+ new ReCAPTCHAProvider ( FAKE_SITE_KEY ) ,
448
+ fakePlatformLoggingProvider
449
+ ) ;
401
450
storageReadStub . resolves ( {
402
451
token : `fake-cached-app-check-token` ,
403
452
expireTimeMillis : Date . now ( ) + 60000 ,
0 commit comments