diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/.npmrc b/dev-packages/e2e-tests/test-applications/nextjs-15/.npmrc index 070f80f05092..a3160f4de175 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/.npmrc +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/.npmrc @@ -1,2 +1,4 @@ @sentry:registry=http://127.0.0.1:4873 @sentry-internal:registry=http://127.0.0.1:4873 +public-hoist-pattern[]=*import-in-the-middle* +public-hoist-pattern[]=*require-in-the-middle* 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 19acabbba0c4..8216f06f7be6 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/package.json @@ -7,10 +7,12 @@ "clean": "npx rimraf node_modules pnpm-lock.yaml", "test:prod": "TEST_ENV=production playwright test", "test:dev": "TEST_ENV=development playwright test", + "test:dev-turbo": "TEST_ENV=dev-turbopack playwright test", "test:build": "pnpm install && pnpm build", "test:build-canary": "pnpm install && pnpm add next@canary && pnpm add react@beta && pnpm add react-dom@beta && pnpm build", "//": "15.0.0-canary.194 is the canary release attached to Next.js RC 1. We need to use the canary version instead of the RC because PPR will not work without. The specific react version is also attached to RC 1.", "test:build-latest": "pnpm install && pnpm add next@15.0.0-canary.194 && pnpm add react@19.0.0-rc-cd22717c-20241013 && pnpm add react-dom@19.0.0-rc-cd22717c-20241013 && pnpm build", + "test:build-turbo": "pnpm install && pnpm add next@15.4.2-canary.1 && next build --turbopack", "test:assert": "pnpm test:prod && pnpm test:dev" }, "dependencies": { @@ -19,7 +21,7 @@ "@types/react": "18.0.26", "@types/react-dom": "18.0.9", "ai": "^3.0.0", - "next": "15.3.0-canary.33", + "next": "15.4.2-canary.1", "react": "beta", "react-dom": "beta", "typescript": "~5.0.0", @@ -41,6 +43,11 @@ { "build-command": "test:build-latest", "label": "nextjs-15 (latest)" + }, + { + "build-command": "test:build-turbo", + "assert-command": "pnpm test:prod && pnpm test:dev-turbo", + "label": "nextjs-15 (turbo)" } ] } diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.mjs index c675d003853a..f2aa01e3e3c8 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.mjs +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.mjs @@ -5,8 +5,24 @@ if (!testEnv) { throw new Error('No test env defined'); } +const getStartCommand = () => { + if (testEnv === 'dev-turbopack') { + return 'pnpm next dev -p 3030 --turbopack'; + } + + if (testEnv === 'development') { + return 'pnpm next dev -p 3030'; + } + + if (testEnv === 'production') { + return 'pnpm next start -p 3030'; + } + + throw new Error(`Unknown test env: ${testEnv}`); +}; + const config = getPlaywrightConfig({ - startCommand: testEnv === 'development' ? 'pnpm next dev -p 3030' : 'pnpm next start -p 3030', + startCommand: getStartCommand(), port: 3030, }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/prefetch-spans.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/prefetch-spans.test.ts index b59a45f31f8b..550f6726e789 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/tests/prefetch-spans.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/tests/prefetch-spans.test.ts @@ -2,7 +2,10 @@ import { expect, test } from '@playwright/test'; import { waitForTransaction } from '@sentry-internal/test-utils'; test('Prefetch client spans should have a http.request.prefetch attribute', async ({ page }) => { - test.skip(process.env.TEST_ENV === 'development', "Prefetch requests don't have the prefetch header in dev mode"); + test.skip( + process.env.TEST_ENV === 'development' || process.env.TEST_ENV === 'dev-turbopack', + "Prefetch requests don't have the prefetch header in dev mode", + ); const pageloadTransactionPromise = waitForTransaction('nextjs-15', async transactionEvent => { return transactionEvent?.transaction === '/prefetching'; diff --git a/dev-packages/e2e-tests/test-applications/nextjs-turbo/package.json b/dev-packages/e2e-tests/test-applications/nextjs-turbo/package.json index 9102de60706b..e4f02f7438f3 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-turbo/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-turbo/package.json @@ -9,17 +9,17 @@ "test:dev": "TEST_ENV=development playwright test", "test:build": "pnpm install && pnpm build", "test:build-canary": "pnpm install && pnpm add next@canary && pnpm add react@canary && pnpm add react-dom@canary && pnpm build", - "test:build-latest": "pnpm install && pnpm add next@latest && pnpm add react@rc && pnpm add react-dom@rc && pnpm build", + "test:build-latest": "pnpm install && pnpm add next@latest && pnpm build", "test:assert": "pnpm test:prod && pnpm test:dev" }, "dependencies": { "@sentry/nextjs": "latest || *", "@types/node": "^18.19.1", - "@types/react": "18.0.26", - "@types/react-dom": "18.0.9", + "@types/react": "^19", + "@types/react-dom": "^19", "next": "^15.3.5", - "react": "rc", - "react-dom": "rc", + "react": "^19", + "react-dom": "^19", "typescript": "~5.0.0" }, "devDependencies": {