diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 9dcbd43e5547..42c1594ebc5b 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -18,6 +18,7 @@ env: ${{ github.workspace }}/node_modules ${{ github.workspace }}/packages/*/node_modules ${{ github.workspace }}/dev-packages/*/node_modules + ${{ github.workspace }}/packages/utils/build permissions: contents: read diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/package.json b/dev-packages/e2e-tests/test-applications/nextjs-15/package.json index 4c3f56b0aa0c..265ee010b8d5 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/package.json @@ -8,7 +8,7 @@ "test:prod": "TEST_ENV=production __NEXT_EXPERIMENTAL_INSTRUMENTATION=1 playwright test", "test:dev": "TEST_ENV=development __NEXT_EXPERIMENTAL_INSTRUMENTATION=1 playwright test", "test:build": "pnpm install && npx playwright install && pnpm build", - "test:build-canary": "pnpm install && pnpm add next@rc && pnpm add react@beta && pnpm add react-dom@beta && npx playwright install && pnpm build", + "test:build-canary": "pnpm install && pnpm add next@canary && pnpm add react@beta && pnpm add react-dom@beta && npx playwright install && pnpm build", "test:build-latest": "pnpm install && pnpm add next@rc && pnpm add react@beta && pnpm add react-dom@beta && npx playwright install && pnpm build", "test:assert": "pnpm test:prod && pnpm test:dev" }, diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/nested-rsc-error.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/nested-rsc-error.test.ts index 223da5b245e9..863e5de111a2 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/nested-rsc-error.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/nested-rsc-error.test.ts @@ -1,9 +1,20 @@ import { expect, test } from '@playwright/test'; import { waitForError, waitForTransaction } from '@sentry-internal/test-utils'; +const packageJson = require('../package.json'); + test('Should capture errors from nested server components when `Sentry.captureRequestError` is added to the `onRequestError` hook', async ({ page, }) => { + const [, minor, patch, canary] = packageJson.dependencies.next.split('.'); + + test.skip( + minor === '0' && + patch.startsWith('0-') && + ((patch.includes('canary') && Number(canary) < 63) || patch.includes('rc')), + 'Next.js version does not expose these errors', + ); + const errorEventPromise = waitForError('nextjs-15', errorEvent => { return !!errorEvent?.exception?.values?.some(value => value.value === 'I am technically uncatchable'); }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/streaming-rsc-error.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/streaming-rsc-error.test.ts index b50e9688861e..0a20e97be74a 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/streaming-rsc-error.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/streaming-rsc-error.test.ts @@ -1,9 +1,20 @@ import { expect, test } from '@playwright/test'; import { waitForError, waitForTransaction } from '@sentry-internal/test-utils'; +const packageJson = require('../package.json'); + test('Should capture errors for crashing streaming promises in server components when `Sentry.captureRequestError` is added to the `onRequestError` hook', async ({ page, }) => { + const [, minor, patch, canary] = packageJson.dependencies.next.split('.'); + + test.skip( + minor === '0' && + patch.startsWith('0-') && + ((patch.includes('canary') && Number(canary) < 63) || patch.includes('rc')), + 'Next.js version does not expose these errors', + ); + const errorEventPromise = waitForError('nextjs-15', errorEvent => { return !!errorEvent?.exception?.values?.some(value => value.value === 'I am a data streaming error'); });