Skip to content

Commit f26ebcc

Browse files
author
Luca Forstner
authored
test(integration-tests): Unflake some tests (#7076)
1 parent a09eeab commit f26ebcc

File tree

3 files changed

+22
-13
lines changed
  • packages/integration-tests/suites/tracing

3 files changed

+22
-13
lines changed
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
document.getElementById('go-background').addEventListener('click', () => {
2-
Object.defineProperty(document, 'hidden', { value: true, writable: true });
3-
const ev = document.createEvent('Event');
4-
ev.initEvent('visibilitychange');
5-
document.dispatchEvent(ev);
2+
setTimeout(() => {
3+
Object.defineProperty(document, 'hidden', { value: true, writable: true });
4+
const ev = document.createEvent('Event');
5+
ev.initEvent('visibilitychange');
6+
document.dispatchEvent(ev);
7+
}, 250);
68
});

packages/integration-tests/suites/tracing/browsertracing/backgroundtab-pageload/test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ sentryTest('should finish pageload transaction when the page goes background', a
99

1010
await page.goto(url);
1111

12-
void page.click('#go-background');
12+
const pageloadTransactionPromise = getFirstSentryEnvelopeRequest<Event>(page);
1313

14-
const pageloadTransaction = await getFirstSentryEnvelopeRequest<Event>(page);
14+
await page.click('#go-background');
15+
16+
const pageloadTransaction = await pageloadTransactionPromise;
1517

1618
expect(pageloadTransaction.contexts?.trace?.op).toBe('pageload');
1719
expect(pageloadTransaction.contexts?.trace?.status).toBe('cancelled');

packages/integration-tests/suites/tracing/metrics/web-vitals-cls/test.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ sentryTest('should capture a "GOOD" CLS vital with its source(s).', async ({ get
1818

1919
expect(eventData.measurements).toBeDefined();
2020
expect(eventData.measurements?.cls?.value).toBeDefined();
21-
expect(eventData.measurements?.cls?.value).toBeCloseTo(0.05);
21+
22+
// Flakey value dependent on timings -> we check for a range
23+
expect(eventData.measurements?.cls?.value).toBeGreaterThan(0.03);
24+
expect(eventData.measurements?.cls?.value).toBeLessThan(0.07);
25+
2226
expect(eventData.tags?.['cls.source.1']).toBe('body > div#content > p#partial');
2327
});
2428

@@ -28,7 +32,11 @@ sentryTest('should capture a "MEH" CLS vital with its source(s).', async ({ getL
2832

2933
expect(eventData.measurements).toBeDefined();
3034
expect(eventData.measurements?.cls?.value).toBeDefined();
31-
expect(eventData.measurements?.cls?.value).toBeCloseTo(0.21);
35+
36+
// Flakey value dependent on timings -> we check for a range
37+
expect(eventData.measurements?.cls?.value).toBeGreaterThan(0.18);
38+
expect(eventData.measurements?.cls?.value).toBeLessThan(0.23);
39+
3240
expect(eventData.tags?.['cls.source.1']).toBe('body > div#content > p');
3341
});
3442

@@ -38,11 +46,8 @@ sentryTest('should capture a "POOR" CLS vital with its source(s).', async ({ get
3846

3947
expect(eventData.measurements).toBeDefined();
4048
expect(eventData.measurements?.cls?.value).toBeDefined();
41-
// This test in particular seems to be flaky, such that the received value is frequently within 0.006 rather than the
42-
// 0.005 that `toBeCloseTo()` requires. While it's true that each test is retried twice if it fails, in the flaky
43-
// cases all three attempts always seem to come up with the exact same slightly-too-far-away number. Rather than ramp
44-
// down `toBeCloseTo()`'s precision (which would make it accept anything between 0.30 and 0.40), we can just do the
45-
// check manually.
49+
50+
// Flakey value dependent on timings -> we check for a range
4651
expect(eventData.measurements?.cls?.value).toBeGreaterThan(0.34);
4752
expect(eventData.measurements?.cls?.value).toBeLessThan(0.36);
4853
expect(eventData.tags?.['cls.source.1']).toBe('body > div#content > p');

0 commit comments

Comments
 (0)