|
16 | 16 | */
|
17 | 17 | import '../test/setup';
|
18 | 18 | import { expect } from 'chai';
|
19 |
| -import { stub, spy } from 'sinon'; |
| 19 | +import { stub, spy, SinonStub } from 'sinon'; |
20 | 20 | import {
|
21 | 21 | activate,
|
22 | 22 | setTokenAutoRefreshEnabled,
|
@@ -126,25 +126,35 @@ describe('api', () => {
|
126 | 126 | });
|
127 | 127 | });
|
128 | 128 | describe('onTokenChanged()', () => {
|
| 129 | + let storageReadStub: SinonStub; |
| 130 | + let storageWriteStub: SinonStub; |
| 131 | + const fakePlatformLoggingProvider = getFakePlatformLoggingProvider(); |
| 132 | + const fakeRecaptchaToken = 'fake-recaptcha-token'; |
| 133 | + const fakeRecaptchaAppCheckToken = { |
| 134 | + token: 'fake-recaptcha-app-check-token', |
| 135 | + expireTimeMillis: Date.now() + 60000, |
| 136 | + issuedAtTimeMillis: 0 |
| 137 | + }; |
| 138 | + |
| 139 | + beforeEach(() => { |
| 140 | + storageReadStub = stub(storage, 'readTokenFromStorage').resolves( |
| 141 | + undefined |
| 142 | + ); |
| 143 | + storageWriteStub = stub(storage, 'writeTokenToStorage'); |
| 144 | + }); |
129 | 145 | afterEach(() => {
|
| 146 | + storageReadStub.restore(); |
| 147 | + storageWriteStub.restore(); |
130 | 148 | clearState();
|
131 | 149 | removegreCAPTCHAScriptsOnPage();
|
132 | 150 | });
|
133 | 151 | 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 |
| - }; |
| 152 | + const app = getFakeApp(); |
| 153 | + activate(app, FAKE_SITE_KEY, false); |
143 | 154 | stub(reCAPTCHA, 'getToken').returns(Promise.resolve(fakeRecaptchaToken));
|
144 | 155 | stub(client, 'exchangeToken').returns(
|
145 | 156 | Promise.resolve(fakeRecaptchaAppCheckToken)
|
146 | 157 | );
|
147 |
| - stub(storage, 'writeTokenToStorage').returns(Promise.resolve(undefined)); |
148 | 158 |
|
149 | 159 | const listener1 = (): void => {
|
150 | 160 | throw new Error();
|
@@ -183,20 +193,12 @@ describe('api', () => {
|
183 | 193 | });
|
184 | 194 |
|
185 | 195 | 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 |
| - }; |
| 196 | + const app = getFakeApp(); |
| 197 | + activate(app, FAKE_SITE_KEY, false); |
195 | 198 | stub(reCAPTCHA, 'getToken').returns(Promise.resolve(fakeRecaptchaToken));
|
196 | 199 | stub(client, 'exchangeToken').returns(
|
197 | 200 | Promise.resolve(fakeRecaptchaAppCheckToken)
|
198 | 201 | );
|
199 |
| - stub(storage, 'writeTokenToStorage').returns(Promise.resolve(undefined)); |
200 | 202 |
|
201 | 203 | const listener1 = (): void => {
|
202 | 204 | throw new Error();
|
@@ -238,11 +240,8 @@ describe('api', () => {
|
238 | 240 | stub(logger.logger, 'error');
|
239 | 241 | const app = getFakeApp();
|
240 | 242 | activate(app, FAKE_SITE_KEY, false);
|
241 |
| - const fakePlatformLoggingProvider = getFakePlatformLoggingProvider(); |
242 |
| - const fakeRecaptchaToken = 'fake-recaptcha-token'; |
243 | 243 | stub(reCAPTCHA, 'getToken').returns(Promise.resolve(fakeRecaptchaToken));
|
244 | 244 | stub(client, 'exchangeToken').rejects('exchange error');
|
245 |
| - stub(storage, 'writeTokenToStorage').returns(Promise.resolve(undefined)); |
246 | 245 |
|
247 | 246 | const listener1 = spy();
|
248 | 247 |
|
|
0 commit comments