Skip to content

Commit acfe824

Browse files
committed
Fix silently broken auth tests
1 parent 8f7be4e commit acfe824

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

packages-exp/auth-exp/src/platform_browser/messagechannel/sender.test.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ import {
2929
_Status,
3030
_TimeoutDuration
3131
} from '.';
32-
import { delay } from '../../../test/helpers/delay';
3332
import { FakeServiceWorker } from '../../../test/helpers/fake_service_worker';
3433
import { stubTimeouts, TimerMap } from '../../../test/helpers/timeout_stub';
3534
import { Sender } from './sender';
3635

3736
use(sinonChai);
3837
use(chaiAsPromised);
3938

39+
const oldSetTimeout = setTimeout;
40+
4041
describe('platform_browser/messagechannel/sender', () => {
4142
describe('_send', () => {
4243
let sender: Sender;
@@ -88,7 +89,7 @@ describe('platform_browser/messagechannel/sender', () => {
8889

8990
it('should timeout if it doesnt see an ACK', async () => {
9091
serviceWorker.addEventListener('message', (_event: Event) => {
91-
delay(() => {
92+
Promise.resolve().then(() => {
9293
pendingTimeouts[_TimeoutDuration.ACK]();
9394
});
9495
});
@@ -109,7 +110,7 @@ describe('platform_browser/messagechannel/sender', () => {
109110
}
110111
];
111112
serviceWorker.addEventListener('message', (event: Event) => {
112-
delay(() => {
113+
Promise.resolve().then(() => {
113114
pendingTimeouts[_TimeoutDuration.ACK]();
114115
});
115116
const messageEvent = event as MessageEvent<
@@ -138,6 +139,9 @@ describe('platform_browser/messagechannel/sender', () => {
138139

139140
it('it should timeout if it gets an ACK but not a DONE', async () => {
140141
serviceWorker.addEventListener('message', (event: Event) => {
142+
oldSetTimeout(() => {
143+
pendingTimeouts[_TimeoutDuration.COMPLETION]();
144+
}, 5);
141145
const messageEvent = event as MessageEvent<
142146
SenderMessageEvent<PingRequest>
143147
>;
@@ -147,9 +151,6 @@ describe('platform_browser/messagechannel/sender', () => {
147151
eventType: messageEvent.data.eventType,
148152
response: null
149153
} as ReceiverMessageEvent<_PingResponse>);
150-
delay(() => {
151-
pendingTimeouts[_TimeoutDuration.COMPLETION]();
152-
});
153154
});
154155
await expect(
155156
sender._send<_PingResponse, PingRequest>(

packages-exp/auth-exp/src/platform_browser/popup_redirect.test.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ import {
4141
PopupRedirectResolver
4242
} from '../model/popup_redirect';
4343
import * as authWindow from './auth_window';
44+
import * as mockFetch from '../../test/helpers/mock_fetch';
4445
import * as gapiLoader from './iframe/gapi';
4546
import { browserPopupRedirectResolver } from './popup_redirect';
47+
import { mockEndpoint } from '../../test/helpers/api/helper';
48+
import { Endpoint } from '../api';
4649

4750
use(chaiAsPromised);
4851
use(sinonChai);
@@ -54,6 +57,7 @@ describe('platform_browser/popup_redirect', () => {
5457
let iframeSendStub: sinon.SinonStub;
5558

5659
beforeEach(async () => {
60+
mockFetch.setUp();
5761
auth = await testAuth();
5862
resolver = new (browserPopupRedirectResolver as SingletonInstantiator<
5963
PopupRedirectResolver
@@ -74,10 +78,18 @@ describe('platform_browser/popup_redirect', () => {
7478
})
7579
} as unknown) as gapi.iframes.Context)
7680
);
81+
82+
authWindow._window().gapi = {
83+
iframes: {
84+
CROSS_ORIGIN_IFRAMES_FILTER: 'cross-origin-iframes-filter',
85+
}
86+
} as unknown as typeof gapi;
7787
});
7888

7989
afterEach(() => {
8090
sinon.restore();
91+
mockFetch.tearDown();
92+
delete authWindow._window().gapi;
8193
});
8294

8395
context('#_openPopup', () => {
@@ -114,11 +126,13 @@ describe('platform_browser/popup_redirect', () => {
114126
});
115127

116128
it('throws an error if authDomain is unspecified', async () => {
117-
delete auth.config.authDomain;
118-
await resolver._initialize(auth);
129+
await resolver._initialize(auth);
130+
131+
mockEndpoint(Endpoint.GET_PROJECT_CONFIG, {
132+
authorizedDomains: []
133+
});
119134

120-
await expect(
121-
resolver._openPopup(auth, provider, event)
135+
expect(resolver._openPopup(auth, provider, event)
122136
).to.be.rejectedWith(FirebaseError, 'auth/auth-domain-config-required');
123137
});
124138

@@ -312,7 +326,7 @@ describe('platform_browser/popup_redirect', () => {
312326
expect(args[1]).to.eql({
313327
type: 'webStorageSupport'
314328
});
315-
expect(args[3]).to.eq(gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
329+
expect(args[3]).to.eq('cross-origin-iframes-filter');
316330
});
317331

318332
it('passes through true value from the response to the callback', done => {

packages-exp/auth-exp/src/platform_browser/strategies/phone.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,13 +418,15 @@ describe('platform_browser/strategies/phone', () => {
418418
let reloadMock: fetch.Route;
419419
let signInMock: fetch.Route;
420420
let credential: PhoneAuthCredential;
421+
let idToken: string;
421422

422423
beforeEach(() => {
424+
idToken = makeJWT({exp: '200', iat: '100'})
423425
reloadMock = mockEndpoint(Endpoint.GET_ACCOUNT_INFO, {
424426
users: [{ uid: 'uid' }]
425427
});
426428
signInMock = mockEndpoint(Endpoint.SIGN_IN_WITH_PHONE_NUMBER, {
427-
idToken: 'new-access-token',
429+
idToken,
428430
refreshToken: 'refresh-token'
429431
});
430432
credential = PhoneAuthCredential._fromVerification(
@@ -447,7 +449,7 @@ describe('platform_browser/strategies/phone', () => {
447449
it('should update the access token', async () => {
448450
await updatePhoneNumber(user, credential);
449451
const idToken = await user.getIdToken();
450-
expect(idToken).to.eq('new-access-token');
452+
expect(idToken).to.eq(idToken);
451453
});
452454

453455
it('should reload the user', async () => {

0 commit comments

Comments
 (0)