@@ -20,19 +20,30 @@ import { firebase, FirebaseApp } from '@firebase/app-compat';
2020import * as appCheckExp from '@firebase/app-check-exp' ;
2121import { stub , match , SinonStub } from 'sinon' ;
2222import * as sinonChai from 'sinon-chai' ;
23- import { CustomProvider , ReCaptchaV3Provider } from '@firebase/app-check-exp' ;
24- import { AppCheckTokenResult } from '../../../packages/app-check-types' ;
25- import { PartialObserver } from '../../../packages/util/dist' ;
23+ import {
24+ AppCheck ,
25+ CustomProvider ,
26+ ReCaptchaV3Provider
27+ } from '@firebase/app-check-exp' ;
28+ import { AppCheckTokenResult } from '@firebase/app-check-types' ;
29+ import { PartialObserver } from '@firebase/util' ;
30+ import { AppCheckError } from './errors' ;
2631
2732use ( sinonChai ) ;
2833
2934function createTestService ( app : FirebaseApp ) : AppCheckService {
30- return new AppCheckService (
31- app ,
32- appCheckExp . initializeAppCheck ( app , {
33- provider : new ReCaptchaV3Provider ( 'fake-site-key' )
34- } )
35- ) ;
35+ return new AppCheckService ( app ) ;
36+ }
37+
38+ function createActivatedTestService ( app : FirebaseApp ) : AppCheckService {
39+ const service = new AppCheckService ( app ) ;
40+ const initializeAppCheckStub = stub (
41+ appCheckExp ,
42+ 'initializeAppCheck'
43+ ) . returns ( { } as AppCheck ) ;
44+ service . activate ( 'a-site-key' ) ;
45+ initializeAppCheckStub . restore ( ) ;
46+ return service ;
3647}
3748
3849describe ( 'Firebase App Check > Service' , ( ) => {
@@ -57,7 +68,7 @@ describe('Firebase App Check > Service', () => {
5768 'ReCaptchaV3Provider' ,
5869 ( ) => {
5970 const initializeAppCheckStub = stub ( appCheckExp , 'initializeAppCheck' ) ;
60- service = new AppCheckService ( app , { } as appCheckExp . AppCheck ) ;
71+ service = new AppCheckService ( app ) ;
6172 service . activate ( 'my_site_key' ) ;
6273 expect ( initializeAppCheckStub ) . to . be . calledWith ( app , {
6374 provider : match . instanceOf ( ReCaptchaV3Provider ) ,
@@ -72,7 +83,7 @@ describe('Firebase App Check > Service', () => {
7283 ' a CustomProvider' ,
7384 ( ) => {
7485 const initializeAppCheckStub = stub ( appCheckExp , 'initializeAppCheck' ) ;
75- service = new AppCheckService ( app , { } as appCheckExp . AppCheck ) ;
86+ service = new AppCheckService ( app ) ;
7687 const customGetTokenStub = stub ( ) ;
7788 service . activate ( {
7889 getToken : customGetTokenStub
@@ -97,7 +108,7 @@ describe('Firebase App Check > Service', () => {
97108 appCheckExp ,
98109 'setTokenAutoRefreshEnabled'
99110 ) ;
100- service = createTestService ( app ) ;
111+ service = createActivatedTestService ( app ) ;
101112 service . setTokenAutoRefreshEnabled ( true ) ;
102113 expect ( setTokenAutoRefreshEnabledStub ) . to . be . calledWith (
103114 service . _delegate ,
@@ -107,7 +118,7 @@ describe('Firebase App Check > Service', () => {
107118 } ) ;
108119
109120 it ( 'getToken() calls modular getToken()' , async ( ) => {
110- service = createTestService ( app ) ;
121+ service = createActivatedTestService ( app ) ;
111122 const getTokenStub = stub ( appCheckExp , 'getToken' ) ;
112123 await service . getToken ( true ) ;
113124 expect ( getTokenStub ) . to . be . calledWith ( service . _delegate , true ) ;
@@ -116,7 +127,7 @@ describe('Firebase App Check > Service', () => {
116127
117128 it ( 'onTokenChanged() calls modular onTokenChanged() with observer' , ( ) => {
118129 const onTokenChangedStub = stub ( appCheckExp , 'onTokenChanged' ) ;
119- service = createTestService ( app ) ;
130+ service = createActivatedTestService ( app ) ;
120131 const observer : PartialObserver < AppCheckTokenResult > = {
121132 next : stub ( ) ,
122133 error : stub ( )
@@ -128,7 +139,7 @@ describe('Firebase App Check > Service', () => {
128139
129140 it ( 'onTokenChanged() calls modular onTokenChanged() with next/error fns' , ( ) => {
130141 const onTokenChangedStub = stub ( appCheckExp , 'onTokenChanged' ) ;
131- service = createTestService ( app ) ;
142+ service = createActivatedTestService ( app ) ;
132143 const nextFn = stub ( ) ;
133144 const errorFn = stub ( ) ;
134145 service . onTokenChanged ( nextFn , errorFn ) ;
@@ -139,4 +150,25 @@ describe('Firebase App Check > Service', () => {
139150 ) ;
140151 onTokenChangedStub . restore ( ) ;
141152 } ) ;
153+
154+ it ( 'setTokenAutoRefreshEnabled() throws if activate() has not been called' , async ( ) => {
155+ service = createTestService ( app ) ;
156+ expect ( ( ) => service . setTokenAutoRefreshEnabled ( true ) ) . to . throw (
157+ AppCheckError . USE_BEFORE_ACTIVATION
158+ ) ;
159+ } ) ;
160+
161+ it ( 'getToken() throws if activate() has not been called' , async ( ) => {
162+ service = createTestService ( app ) ;
163+ expect ( ( ) => service . getToken ( true ) ) . to . throw (
164+ AppCheckError . USE_BEFORE_ACTIVATION
165+ ) ;
166+ } ) ;
167+
168+ it ( 'onTokenChanged() throws if activate() has not been called' , async ( ) => {
169+ service = createTestService ( app ) ;
170+ expect ( ( ) => service . onTokenChanged ( ( ) => { } ) ) . to . throw (
171+ AppCheckError . USE_BEFORE_ACTIVATION
172+ ) ;
173+ } ) ;
142174} ) ;
0 commit comments