Skip to content

Commit 8b07998

Browse files
authored
test(e2e): Update nextjs-app-dir E2E tests to avoid sending to Sentry (#12403)
Part of #11910 This removes the tests in nextjs-app-dir where we still polled Sentry.
1 parent 34455c9 commit 8b07998

16 files changed

+142
-131
lines changed

dev-packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ import { startEventProxyServer } from '@sentry-internal/test-utils';
22

33
startEventProxyServer({
44
port: 3031,
5-
proxyServerName: 'nextjs-13-app-dir',
5+
proxyServerName: 'nextjs-app-dir',
66
});

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/async-context-edge.test.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ import { expect, test } from '@playwright/test';
22
import { waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Should allow for async context isolation in the edge SDK', async ({ request }) => {
5-
// test.skip(process.env.TEST_ENV === 'development', "Doesn't work in dev mode.");
6-
7-
const edgerouteTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
5+
const edgerouteTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
86
return transactionEvent?.transaction === 'GET /api/async-context-edge-endpoint';
97
});
108

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/client-app-routing-instrumentation.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { waitForTransaction } from '@sentry-internal/test-utils';
44
test('Creates a pageload transaction for app router routes', async ({ page }) => {
55
const randomRoute = String(Math.random());
66

7-
const clientPageloadTransactionPromise = waitForTransaction('nextjs-13-app-dir', transactionEvent => {
7+
const clientPageloadTransactionPromise = waitForTransaction('nextjs-app-dir', transactionEvent => {
88
return (
99
transactionEvent?.transaction === `/server-component/parameter/${randomRoute}` &&
1010
transactionEvent.contexts?.trace?.op === 'pageload'
@@ -19,7 +19,7 @@ test('Creates a pageload transaction for app router routes', async ({ page }) =>
1919
test('Creates a navigation transaction for app router routes', async ({ page }) => {
2020
const randomRoute = String(Math.random());
2121

22-
const clientPageloadTransactionPromise = waitForTransaction('nextjs-13-app-dir', transactionEvent => {
22+
const clientPageloadTransactionPromise = waitForTransaction('nextjs-app-dir', transactionEvent => {
2323
return (
2424
transactionEvent?.transaction === `/server-component/parameter/${randomRoute}` &&
2525
transactionEvent.contexts?.trace?.op === 'pageload'
@@ -30,14 +30,14 @@ test('Creates a navigation transaction for app router routes', async ({ page })
3030
await clientPageloadTransactionPromise;
3131
await page.getByText('Page (/server-component/parameter/[parameter])').isVisible();
3232

33-
const clientNavigationTransactionPromise = waitForTransaction('nextjs-13-app-dir', transactionEvent => {
33+
const clientNavigationTransactionPromise = waitForTransaction('nextjs-app-dir', transactionEvent => {
3434
return (
3535
transactionEvent?.transaction === '/server-component/parameter/foo/bar/baz' &&
3636
transactionEvent.contexts?.trace?.op === 'navigation'
3737
);
3838
});
3939

40-
const serverComponentTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
40+
const serverComponentTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
4141
return (
4242
transactionEvent?.transaction === 'Page Server Component (/server-component/parameter/[...parameters])' &&
4343
(await clientNavigationTransactionPromise).contexts?.trace?.trace_id ===
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { expect, test } from '@playwright/test';
2+
import { waitForError } from '@sentry-internal/test-utils';
3+
4+
test('Sends a client-side exception to Sentry', async ({ page }) => {
5+
await page.goto('/');
6+
7+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
8+
return errorEvent?.exception?.values?.[0]?.value === 'Click Error';
9+
});
10+
11+
await page.getByText('Throw error').click();
12+
13+
const errorEvent = await errorEventPromise;
14+
15+
expect(errorEvent.exception?.values).toHaveLength(1);
16+
expect(errorEvent.exception?.values?.[0]?.value).toBe('Click Error');
17+
18+
expect(errorEvent.request).toEqual({
19+
headers: expect.any(Object),
20+
url: 'http://localhost:3030/',
21+
});
22+
23+
expect(errorEvent.transaction).toEqual('/');
24+
25+
expect(errorEvent.contexts?.trace).toEqual({
26+
trace_id: expect.any(String),
27+
span_id: expect.any(String),
28+
});
29+
});

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/connected-servercomponent-trace.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { waitForTransaction } from '@sentry-internal/test-utils';
44
test('Will capture a connected trace for all server components and generation functions when visiting a page', async ({
55
page,
66
}) => {
7-
const someConnectedEvent = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
7+
const someConnectedEvent = waitForTransaction('nextjs-app-dir', async transactionEvent => {
88
return (
99
transactionEvent?.transaction === 'Layout Server Component (/(nested-layout)/nested-layout)' ||
1010
transactionEvent?.transaction === 'Layout Server Component (/(nested-layout))' ||
@@ -13,28 +13,28 @@ test('Will capture a connected trace for all server components and generation fu
1313
);
1414
});
1515

16-
const layout1Transaction = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
16+
const layout1Transaction = waitForTransaction('nextjs-app-dir', async transactionEvent => {
1717
return (
1818
transactionEvent?.transaction === 'Layout Server Component (/(nested-layout)/nested-layout)' &&
1919
(await someConnectedEvent).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id
2020
);
2121
});
2222

23-
const layout2Transaction = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
23+
const layout2Transaction = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2424
return (
2525
transactionEvent?.transaction === 'Layout Server Component (/(nested-layout))' &&
2626
(await someConnectedEvent).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id
2727
);
2828
});
2929

30-
const pageTransaction = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
30+
const pageTransaction = waitForTransaction('nextjs-app-dir', async transactionEvent => {
3131
return (
3232
transactionEvent?.transaction === 'Page Server Component (/(nested-layout)/nested-layout)' &&
3333
(await someConnectedEvent).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id
3434
);
3535
});
3636

37-
const generateMetadataTransaction = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
37+
const generateMetadataTransaction = waitForTransaction('nextjs-app-dir', async transactionEvent => {
3838
return (
3939
transactionEvent?.transaction === 'Page.generateMetadata (/(nested-layout)/nested-layout)' &&
4040
(await someConnectedEvent).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/devErrorSymbolification.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ test.describe('dev mode error symbolification', () => {
1010
test('should have symbolicated dev errors', async ({ page }) => {
1111
await page.goto('/');
1212

13-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
13+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
1414
return errorEvent?.exception?.values?.[0]?.value === 'Click Error';
1515
});
1616

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/edge-route.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test';
22
import { waitForError, waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Should create a transaction for edge routes', async ({ request }) => {
5-
const edgerouteTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
5+
const edgerouteTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
66
return (
77
transactionEvent?.transaction === 'GET /api/edge-endpoint' && transactionEvent?.contexts?.trace?.status === 'ok'
88
);
@@ -24,7 +24,7 @@ test('Should create a transaction for edge routes', async ({ request }) => {
2424
});
2525

2626
test('Should create a transaction with error status for faulty edge routes', async ({ request }) => {
27-
const edgerouteTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
27+
const edgerouteTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2828
return (
2929
transactionEvent?.transaction === 'GET /api/error-edge-endpoint' &&
3030
transactionEvent?.contexts?.trace?.status === 'internal_error'
@@ -47,7 +47,7 @@ test('Should create a transaction with error status for faulty edge routes', asy
4747
});
4848

4949
test('Should record exceptions for faulty edge routes', async ({ request }) => {
50-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
50+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
5151
return errorEvent?.exception?.values?.[0]?.value === 'Edge Route Error';
5252
});
5353

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/edge.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test';
22
import { waitForError, waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Should record exceptions for faulty edge server components', async ({ page }) => {
5-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
5+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
66
return errorEvent?.exception?.values?.[0]?.value === 'Edge Server Component Error';
77
});
88

@@ -20,7 +20,7 @@ test('Should record exceptions for faulty edge server components', async ({ page
2020
});
2121

2222
test('Should record transaction for edge server components', async ({ page }) => {
23-
const serverComponentTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
23+
const serverComponentTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2424
return transactionEvent?.transaction === 'Page Server Component (/edge-server-components)';
2525
});
2626

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/middleware.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test';
22
import { waitForError, waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Should create a transaction for middleware', async ({ request }) => {
5-
const middlewareTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
5+
const middlewareTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
66
return transactionEvent?.transaction === 'middleware' && transactionEvent?.contexts?.trace?.status === 'ok';
77
});
88

@@ -21,7 +21,7 @@ test('Should create a transaction for middleware', async ({ request }) => {
2121
});
2222

2323
test('Should create a transaction with error status for faulty middleware', async ({ request }) => {
24-
const middlewareTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
24+
const middlewareTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2525
return (
2626
transactionEvent?.transaction === 'middleware' && transactionEvent?.contexts?.trace?.status === 'internal_error'
2727
);
@@ -39,7 +39,7 @@ test('Should create a transaction with error status for faulty middleware', asyn
3939
});
4040

4141
test('Records exceptions happening in middleware', async ({ request }) => {
42-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
42+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
4343
return errorEvent?.exception?.values?.[0]?.value === 'Middleware Error';
4444
});
4545

@@ -56,7 +56,7 @@ test('Records exceptions happening in middleware', async ({ request }) => {
5656
});
5757

5858
test('Should trace outgoing fetch requests inside middleware and create breadcrumbs for it', async ({ request }) => {
59-
const middlewareTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
59+
const middlewareTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
6060
return (
6161
transactionEvent?.transaction === 'middleware' &&
6262
!!transactionEvent.spans?.find(span => span.op === 'http.client')

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/pages-ssr-errors.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { expect, test } from '@playwright/test';
22
import { waitForError, waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Will capture error for SSR rendering error with a connected trace (Class Component)', async ({ page }) => {
5-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
5+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
66
return errorEvent?.exception?.values?.[0]?.value === 'Pages SSR Error Class';
77
});
88

9-
const serverComponentTransaction = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
9+
const serverComponentTransaction = waitForTransaction('nextjs-app-dir', async transactionEvent => {
1010
return (
1111
transactionEvent?.transaction === '/pages-router/ssr-error-class' &&
1212
(await errorEventPromise).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id
@@ -20,11 +20,11 @@ test('Will capture error for SSR rendering error with a connected trace (Class C
2020
});
2121

2222
test('Will capture error for SSR rendering error with a connected trace (Functional Component)', async ({ page }) => {
23-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
23+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
2424
return errorEvent?.exception?.values?.[0]?.value === 'Pages SSR Error FC';
2525
});
2626

27-
const ssrTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
27+
const ssrTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2828
return (
2929
transactionEvent?.transaction === '/pages-router/ssr-error-fc' &&
3030
(await errorEventPromise).contexts?.trace?.trace_id === transactionEvent.contexts?.trace?.trace_id

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/request-instrumentation.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { waitForTransaction } from '@sentry-internal/test-utils';
55
// Sometimes the request span was included in the handler span, more often it wasn't. I have no idea why. Maybe one day we will
66
// figure it out. Today is not that day.
77
test.skip('Should send a transaction with a http span', async ({ request }) => {
8-
const transactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
8+
const transactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
99
return transactionEvent?.transaction === 'GET /api/request-instrumentation';
1010
});
1111

dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/route-handlers.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test';
22
import { waitForError, waitForTransaction } from '@sentry-internal/test-utils';
33

44
test('Should create a transaction for route handlers', async ({ request }) => {
5-
const routehandlerTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
5+
const routehandlerTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
66
return transactionEvent?.transaction === 'GET /route-handlers/[param]';
77
});
88

@@ -19,7 +19,7 @@ test('Should create a transaction for route handlers', async ({ request }) => {
1919
test('Should create a transaction for route handlers and correctly set span status depending on http status', async ({
2020
request,
2121
}) => {
22-
const routehandlerTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
22+
const routehandlerTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
2323
return transactionEvent?.transaction === 'POST /route-handlers/[param]';
2424
});
2525

@@ -33,11 +33,11 @@ test('Should create a transaction for route handlers and correctly set span stat
3333
});
3434

3535
test('Should record exceptions and transactions for faulty route handlers', async ({ request }) => {
36-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
36+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
3737
return errorEvent?.exception?.values?.[0]?.value === 'route-handler-error';
3838
});
3939

40-
const routehandlerTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
40+
const routehandlerTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
4141
return transactionEvent?.transaction === 'PUT /route-handlers/[param]/error';
4242
});
4343

@@ -65,7 +65,7 @@ test('Should record exceptions and transactions for faulty route handlers', asyn
6565

6666
test.describe('Edge runtime', () => {
6767
test('should create a transaction for route handlers', async ({ request }) => {
68-
const routehandlerTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
68+
const routehandlerTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
6969
return transactionEvent?.transaction === 'PATCH /route-handlers/[param]/edge';
7070
});
7171

@@ -79,11 +79,11 @@ test.describe('Edge runtime', () => {
7979
});
8080

8181
test('should record exceptions and transactions for faulty route handlers', async ({ request }) => {
82-
const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => {
82+
const errorEventPromise = waitForError('nextjs-app-dir', errorEvent => {
8383
return errorEvent?.exception?.values?.[0]?.value === 'route-handler-edge-error';
8484
});
8585

86-
const routehandlerTransactionPromise = waitForTransaction('nextjs-13-app-dir', async transactionEvent => {
86+
const routehandlerTransactionPromise = waitForTransaction('nextjs-app-dir', async transactionEvent => {
8787
return transactionEvent?.transaction === 'DELETE /route-handlers/[param]/edge';
8888
});
8989

0 commit comments

Comments
 (0)