-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Copy pathapp-dir-pageloads.test.ts
50 lines (45 loc) · 1.62 KB
/
app-dir-pageloads.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { expect, test } from '@playwright/test';
import { waitForTransaction } from '@sentry-internal/test-utils';
test('should create a pageload transaction when the `app` directory is used', async ({ page }) => {
const transactionPromise = waitForTransaction('nextjs-13', async transactionEvent => {
return (
transactionEvent.transaction === '/pageload-transaction' && transactionEvent.contexts?.trace?.op === 'pageload'
);
});
await page.goto(`/pageload-transaction`);
const transaction = await transactionPromise;
expect(transaction).toMatchObject({
breadcrumbs: expect.arrayContaining([
{
category: 'navigation',
data: { from: '/pageload-transaction', to: '/pageload-transaction' },
timestamp: expect.any(Number),
},
]),
contexts: {
react: { version: expect.any(String) },
trace: {
data: {
'sentry.op': 'pageload',
'sentry.origin': 'auto.pageload.nextjs.app_router_instrumentation',
'sentry.source': 'url',
},
op: 'pageload',
origin: 'auto.pageload.nextjs.app_router_instrumentation',
span_id: expect.stringMatching(/[a-f0-9]{16}/),
trace_id: expect.stringMatching(/[a-f0-9]{32}/),
},
},
environment: 'qa',
request: {
headers: expect.any(Object),
url: expect.stringMatching(/\/pageload-transaction$/),
},
start_timestamp: expect.any(Number),
timestamp: expect.any(Number),
transaction: '/pageload-transaction',
transaction_info: { source: 'url' },
type: 'transaction',
});
expect(transaction.tags?.turbopack).toBeUndefined();
});