@@ -28,6 +28,7 @@ import {
2828 getFakeApp ,
2929 getFakeCustomTokenProvider ,
3030 getFakePlatformLoggingProvider ,
31+ getFakeGreCAPTCHA ,
3132 removegreCAPTCHAScriptsOnPage
3233} from '../test/util' ;
3334import { clearState , getState } from './state' ;
@@ -37,8 +38,12 @@ import * as internalApi from './internal-api';
3738import * as client from './client' ;
3839import * as storage from './storage' ;
3940import * as logger from './logger' ;
41+ import * as util from './util' ;
4042
4143describe ( 'api' , ( ) => {
44+ beforeEach ( ( ) => {
45+ stub ( util , 'getRecaptcha' ) . returns ( getFakeGreCAPTCHA ( ) ) ;
46+ } ) ;
4247 describe ( 'activate()' , ( ) => {
4348 let app : FirebaseApp ;
4449
@@ -126,25 +131,29 @@ describe('api', () => {
126131 } ) ;
127132 } ) ;
128133 describe ( 'onTokenChanged()' , ( ) => {
134+ const fakePlatformLoggingProvider = getFakePlatformLoggingProvider ( ) ;
135+ const fakeRecaptchaToken = 'fake-recaptcha-token' ;
136+ const fakeRecaptchaAppCheckToken = {
137+ token : 'fake-recaptcha-app-check-token' ,
138+ expireTimeMillis : Date . now ( ) + 60000 ,
139+ issuedAtTimeMillis : 0
140+ } ;
141+
142+ beforeEach ( ( ) => {
143+ stub ( storage , 'readTokenFromStorage' ) . resolves ( undefined ) ;
144+ stub ( storage , 'writeTokenToStorage' ) ;
145+ } ) ;
129146 afterEach ( ( ) => {
130147 clearState ( ) ;
131148 removegreCAPTCHAScriptsOnPage ( ) ;
132149 } ) ;
133150 it ( 'Listeners work when using top-level parameters pattern' , async ( ) => {
134- const app = getFakeApp ( { automaticDataCollectionEnabled : true } ) ;
135- activate ( app , FAKE_SITE_KEY , true ) ;
136- const fakePlatformLoggingProvider = getFakePlatformLoggingProvider ( ) ;
137- const fakeRecaptchaToken = 'fake-recaptcha-token' ;
138- const fakeRecaptchaAppCheckToken = {
139- token : 'fake-recaptcha-app-check-token' ,
140- expireTimeMillis : 123 ,
141- issuedAtTimeMillis : 0
142- } ;
151+ const app = getFakeApp ( ) ;
152+ activate ( app , FAKE_SITE_KEY , false ) ;
143153 stub ( reCAPTCHA , 'getToken' ) . returns ( Promise . resolve ( fakeRecaptchaToken ) ) ;
144154 stub ( client , 'exchangeToken' ) . returns (
145155 Promise . resolve ( fakeRecaptchaAppCheckToken )
146156 ) ;
147- stub ( storage , 'writeTokenToStorage' ) . returns ( Promise . resolve ( undefined ) ) ;
148157
149158 const listener1 = ( ) : void => {
150159 throw new Error ( ) ;
@@ -183,20 +192,12 @@ describe('api', () => {
183192 } ) ;
184193
185194 it ( 'Listeners work when using Observer pattern' , async ( ) => {
186- const app = getFakeApp ( { automaticDataCollectionEnabled : true } ) ;
187- activate ( app , FAKE_SITE_KEY , true ) ;
188- const fakePlatformLoggingProvider = getFakePlatformLoggingProvider ( ) ;
189- const fakeRecaptchaToken = 'fake-recaptcha-token' ;
190- const fakeRecaptchaAppCheckToken = {
191- token : 'fake-recaptcha-app-check-token' ,
192- expireTimeMillis : 123 ,
193- issuedAtTimeMillis : 0
194- } ;
195+ const app = getFakeApp ( ) ;
196+ activate ( app , FAKE_SITE_KEY , false ) ;
195197 stub ( reCAPTCHA , 'getToken' ) . returns ( Promise . resolve ( fakeRecaptchaToken ) ) ;
196198 stub ( client , 'exchangeToken' ) . returns (
197199 Promise . resolve ( fakeRecaptchaAppCheckToken )
198200 ) ;
199- stub ( storage , 'writeTokenToStorage' ) . returns ( Promise . resolve ( undefined ) ) ;
200201
201202 const listener1 = ( ) : void => {
202203 throw new Error ( ) ;
@@ -238,11 +239,8 @@ describe('api', () => {
238239 stub ( logger . logger , 'error' ) ;
239240 const app = getFakeApp ( ) ;
240241 activate ( app , FAKE_SITE_KEY , false ) ;
241- const fakePlatformLoggingProvider = getFakePlatformLoggingProvider ( ) ;
242- const fakeRecaptchaToken = 'fake-recaptcha-token' ;
243242 stub ( reCAPTCHA , 'getToken' ) . returns ( Promise . resolve ( fakeRecaptchaToken ) ) ;
244243 stub ( client , 'exchangeToken' ) . rejects ( 'exchange error' ) ;
245- stub ( storage , 'writeTokenToStorage' ) . returns ( Promise . resolve ( undefined ) ) ;
246244
247245 const listener1 = spy ( ) ;
248246
0 commit comments