Skip to content

Commit 6d6cb21

Browse files
committed
Skip flaky test on Safari.
1 parent de54bff commit 6d6cb21

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

packages/firestore/test/unit/util/async_queue.test.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ import { IndexedDbTransactionError } from '../../../src/local/simple_db';
2727

2828
use(chaiAsPromised);
2929

30+
function isSafari(): boolean {
31+
return (
32+
navigator.userAgent.includes('Safari') &&
33+
!navigator.userAgent.includes('Chrome')
34+
);
35+
}
36+
3037
describe('AsyncQueue', () => {
3138
// We reuse these TimerIds for generic testing.
3239
const timerId1 = TimerId.ListenStreamConnectionBackoff;
@@ -137,14 +144,21 @@ describe('AsyncQueue', () => {
137144
});
138145
});
139146

140-
it('can schedule ops in the future', async () => {
147+
// Flaky on Safari.
148+
// eslint-disable-next-line no-restricted-properties
149+
(isSafari() ? it.skip : it)('can schedule ops in the future', async () => {
150+
if (
151+
navigator.userAgent.includes('Safari') &&
152+
!navigator.userAgent.includes('Chrome')
153+
) {
154+
return;
155+
}
141156
const queue = new AsyncQueue();
142157
const completedSteps: number[] = [];
143158
const doStep = (n: number): Promise<number> =>
144159
defer(() => completedSteps.push(n));
145160
queue.enqueueAndForget(() => doStep(1));
146-
// Flaky on Safari, increasing delay to 1000ms to try to increase reliability.
147-
const last = queue.enqueueAfterDelay(timerId1, 1000, () => doStep(4));
161+
const last = queue.enqueueAfterDelay(timerId1, 5, () => doStep(4));
148162
// eslint-disable-next-line @typescript-eslint/no-floating-promises
149163
queue.enqueueAfterDelay(timerId2, 1, () => doStep(3));
150164
queue.enqueueAndForget(() => doStep(2));

0 commit comments

Comments
 (0)