Skip to content

Commit 38caaad

Browse files
authored
Fix (silently) broken Auth-exp tests (#4378)
* Fix silently broken auth tests * Fix test issues * Formatting * PR feedback
1 parent 6b15a40 commit 38caaad

File tree

3 files changed

+24
-17
lines changed

3 files changed

+24
-17
lines changed

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

Lines changed: 9 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,8 @@ 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+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
93+
Promise.resolve().then(() => {
9294
pendingTimeouts[_TimeoutDuration.ACK]();
9395
});
9496
});
@@ -109,7 +111,8 @@ describe('platform_browser/messagechannel/sender', () => {
109111
}
110112
];
111113
serviceWorker.addEventListener('message', (event: Event) => {
112-
delay(() => {
114+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
115+
Promise.resolve().then(() => {
113116
pendingTimeouts[_TimeoutDuration.ACK]();
114117
});
115118
const messageEvent = event as MessageEvent<
@@ -138,6 +141,9 @@ describe('platform_browser/messagechannel/sender', () => {
138141

139142
it('it should timeout if it gets an ACK but not a DONE', async () => {
140143
serviceWorker.addEventListener('message', (event: Event) => {
144+
oldSetTimeout(() => {
145+
pendingTimeouts[_TimeoutDuration.COMPLETION]();
146+
}, 5);
141147
const messageEvent = event as MessageEvent<
142148
SenderMessageEvent<PingRequest>
143149
>;
@@ -147,9 +153,6 @@ describe('platform_browser/messagechannel/sender', () => {
147153
eventType: messageEvent.data.eventType,
148154
response: null
149155
} as ReceiverMessageEvent<_PingResponse>);
150-
delay(() => {
151-
pendingTimeouts[_TimeoutDuration.COMPLETION]();
152-
});
153156
});
154157
await expect(
155158
sender._send<_PingResponse, PingRequest>(

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,7 @@ describe('platform_browser/popup_redirect', () => {
5555

5656
beforeEach(async () => {
5757
auth = await testAuth();
58-
resolver = new (browserPopupRedirectResolver as SingletonInstantiator<
59-
PopupRedirectResolver
60-
>)();
58+
resolver = new (browserPopupRedirectResolver as SingletonInstantiator<PopupRedirectResolver>)();
6159

6260
sinon.stub(validateOrigin, '_validateOrigin').returns(Promise.resolve());
6361
iframeSendStub = sinon.stub();
@@ -74,6 +72,12 @@ describe('platform_browser/popup_redirect', () => {
7472
})
7573
} as unknown) as gapi.iframes.Context)
7674
);
75+
76+
sinon.stub(authWindow._window(), 'gapi').value({
77+
iframes: {
78+
CROSS_ORIGIN_IFRAMES_FILTER: 'cross-origin-iframes-filter'
79+
}
80+
});
7781
});
7882

7983
afterEach(() => {
@@ -113,13 +117,11 @@ describe('platform_browser/popup_redirect', () => {
113117
);
114118
});
115119

116-
it('throws an error if authDomain is unspecified', async () => {
117-
delete auth.config.authDomain;
120+
it('validates the origin', async () => {
118121
await resolver._initialize(auth);
119122

120-
await expect(
121-
resolver._openPopup(auth, provider, event)
122-
).to.be.rejectedWith(FirebaseError, 'auth/auth-domain-config-required');
123+
await resolver._openPopup(auth, provider, event);
124+
expect(validateOrigin._validateOrigin).to.have.been.calledWith(auth);
123125
});
124126

125127
it('throws an error if apiKey is unspecified', async () => {
@@ -312,7 +314,7 @@ describe('platform_browser/popup_redirect', () => {
312314
expect(args[1]).to.eql({
313315
type: 'webStorageSupport'
314316
});
315-
expect(args[3]).to.eq(gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
317+
expect(args[3]).to.eq('cross-origin-iframes-filter');
316318
});
317319

318320
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)