Skip to content

Commit 28b78da

Browse files
authored
test(tracing): Add FID tests. (#4415)
1 parent 656017a commit 28b78da

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<title></title>
6+
<script src="{{htmlWebpackPlugin.options.initialization}}"></script>
7+
</head>
8+
<body>
9+
<button id="fid-btn" onclick="console.log('foo')">BTN</button>
10+
</body>
11+
</html>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import { getSentryTransactionRequest } from '../../../../utils/helpers';
5+
6+
sentryTest('should capture a FID vital.', async ({ browserName, getLocalTestPath, page }) => {
7+
// FID measurement is not generated on webkit
8+
if (browserName === 'webkit') {
9+
sentryTest.skip();
10+
}
11+
12+
const url = await getLocalTestPath({ testDir: __dirname });
13+
14+
page.goto(url);
15+
// To trigger FID
16+
page.click('#fid-btn');
17+
18+
const eventData = await getSentryTransactionRequest(page);
19+
20+
expect(eventData.measurements).toBeDefined();
21+
expect(eventData.measurements?.fid?.value).toBeDefined();
22+
expect(eventData.measurements?.['mark.fid']?.value).toBeDefined();
23+
24+
const fidSpan = eventData.spans?.filter(({ description }) => description === 'first input delay')[0];
25+
26+
expect(fidSpan).toBeDefined();
27+
expect(fidSpan?.op).toBe('web.vitals');
28+
expect(fidSpan?.parentSpanId).toBe(eventData.contexts?.trace_span_id);
29+
});

0 commit comments

Comments
 (0)