diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/.gitignore b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/.gitignore deleted file mode 100644 index ebb991370034..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -/test-results/ -/playwright-report/ -/playwright/.cache/ - -!*.d.ts - -# react router -.react-router diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/app.css b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/app.css deleted file mode 100644 index 78af9b44216c..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/app.css +++ /dev/null @@ -1,16 +0,0 @@ -@import 'tailwindcss'; - -@theme { - --font-sans: - 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', - 'Noto Color Emoji'; -} - -html, -body { - @apply bg-white dark:bg-gray-950; - - @media (prefers-color-scheme: dark) { - color-scheme: dark; - } -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/entry.client.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/entry.client.tsx deleted file mode 100644 index f9e8c5139d22..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/entry.client.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import * as Sentry from '@sentry/react-router'; -import { StrictMode, startTransition } from 'react'; -import { hydrateRoot } from 'react-dom/client'; -import { HydratedRouter } from 'react-router/dom'; - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - // todo: get this from env - dsn: 'https://username@domain/123', - integrations: [Sentry.reactRouterTracingIntegration()], - tracesSampleRate: 1.0, - tunnel: `http://localhost:3031/`, // proxy server - tracePropagationTargets: [/^\//], -}); - -startTransition(() => { - hydrateRoot( - document, - - - , - ); -}); diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/root.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/root.tsx deleted file mode 100644 index 2a3279aed365..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/root.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { isRouteErrorResponse, Links, Meta, Outlet, Scripts, ScrollRestoration } from 'react-router'; - -import type { Route } from './+types/root'; -import './app.css'; - -export function Layout({ children }: { children: React.ReactNode }) { - return ( - - - - - - - - - {children} - - - - - ); -} - -export default function App() { - return ; -} - -export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { - let message = 'Oops!'; - let details = 'An unexpected error occurred.'; - let stack: string | undefined; - - if (isRouteErrorResponse(error)) { - message = error.status === 404 ? '404' : 'Error'; - details = error.status === 404 ? 'The requested page could not be found.' : error.statusText || details; - } else if (error && error instanceof Error) { - details = error.message; - stack = error.stack; - } - - return ( -
-

{message}

-

{details}

- {stack && ( -
-          {stack}
-        
- )} -
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes.ts deleted file mode 100644 index 58db8b4299b9..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { type RouteConfig, index, prefix, route } from '@react-router/dev/routes'; - -export default [ - index('routes/home.tsx'), - ...prefix('errors', [ - route('client', 'routes/errors/client.tsx'), - route('client/:client-param', 'routes/errors/client-param.tsx'), - route('client-loader', 'routes/errors/client-loader.tsx'), - route('client-action', 'routes/errors/client-action.tsx'), - ]), - ...prefix('performance', [ - index('routes/performance/index.tsx'), - route('with/:param', 'routes/performance/dynamic-param.tsx'), - ]), -] satisfies RouteConfig; diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-action.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-action.tsx deleted file mode 100644 index d3b2d08eef2e..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-action.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { Form } from 'react-router'; - -export function clientAction() { - throw new Error('Madonna mia! Che casino nella Client Action!'); -} - -export default function ClientActionErrorPage() { - return ( -
-

Client Error Action Page

-
- -
-
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-loader.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-loader.tsx deleted file mode 100644 index aa7af71bbe80..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-loader.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import type { Route } from './+types/client-loader'; - -export function clientLoader() { - throw new Error('¡Madre mía del client loader!'); -} - -export default function ClientLoaderErrorPage({ loaderData }: Route.ComponentProps) { - const { data } = loaderData ?? { data: 'sad' }; - return ( -
-

Client Loader Error Page

-
{data}
-
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-param.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-param.tsx deleted file mode 100644 index a2e423391f03..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client-param.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import type { Route } from './+types/client-param'; - -export default function ClientErrorParamPage({ params }: Route.ComponentProps) { - return ( -
-

Client Error Param Page

- -
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client.tsx deleted file mode 100644 index 190074a5ef09..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/errors/client.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export default function ClientErrorPage() { - return ( -
-

Client Error Page

- -
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/home.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/home.tsx deleted file mode 100644 index 1a0ad8bba051..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/home.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import type { Route } from './+types/home'; -import { Link } from 'react-router'; - -export function meta({}: Route.MetaArgs) { - return [{ title: 'New React Router App' }, { name: 'description', content: 'Welcome to React Router!' }]; -} - -export default function Home() { - return ( -
-

Hello,This is an SPA React Router app

-
-
-
-

Performance Pages, click pages to get redirected

-
    -
  • - Performance page -
  • -
  • - Static Page -
  • -
  • - Dynamic Parameter Page -
  • -
-
-
-
-

Error Pages, click button to trigger error

-
    -
  • - Client Error -
  • -
  • - Client Action Error -
  • -
  • - Client Loader Error -
  • -
  • - Client Parameter Error -
  • -
-
-
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/dynamic-param.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/dynamic-param.tsx deleted file mode 100644 index 39cf7bd5dbf6..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/dynamic-param.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import type { Route } from './+types/dynamic-param'; - -export default function DynamicParamPage({ params }: Route.ComponentProps) { - const { param } = params; - - return ( -
-

Dynamic Parameter Page

-

The parameter value is: {param}

-
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/index.tsx b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/index.tsx deleted file mode 100644 index a59395455ddd..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/app/routes/performance/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Link } from 'react-router'; - -export default function PerformancePage() { - return ( -
-

Performance Page

- -
- ); -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/package.json b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/package.json deleted file mode 100644 index 2c78f5adb154..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "react-router-7-framework-spa-node-20-18", - "private": true, - "version": "0.1.0", - "type": "module", - "scripts": { - "build": "react-router build", - "dev": "react-router dev", - "start": "vite preview", - "preview": "vite preview", - "typecheck": "react-router typegen && tsc", - "clean": "pnpx rimraf node_modules pnpm-lock.yaml", - "test:build": "pnpm install && pnpm build", - "test:ts": "pnpm typecheck", - "test:prod": "playwright test", - "test:dev": "TEST_ENV=development playwright test", - "test:assert": "pnpm test:ts &&pnpm test:prod" - }, - "dependencies": { - "@sentry/react-router": "file:../../packed/sentry-react-router-packed.tgz", - "@react-router/node": "7.13.0", - "@react-router/serve": "7.13.0", - "isbot": "^5.1.27", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-router": "7.13.0" - }, - "devDependencies": { - "@playwright/test": "~1.56.0", - "@react-router/dev": "7.13.0", - "@sentry-internal/test-utils": "link:../../../test-utils", - "@tailwindcss/vite": "^4.1.4", - "@types/node": "^20", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "tailwindcss": "^4.1.4", - "typescript": "^5.8.3", - "vite": "^6.4.2", - "vite-tsconfig-paths": "^5.1.4" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "volta": { - "extends": "../../package.json", - "node": "20.18.2" - }, - "pnpm": { - "overrides": { - "p-map": "^4.0.0" - } - } -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/playwright.config.mjs deleted file mode 100644 index 17513b44887a..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/playwright.config.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import { getPlaywrightConfig } from '@sentry-internal/test-utils'; - -const config = getPlaywrightConfig({ - startCommand: 'pnpm start', - port: 4173, -}); - -export default config; diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/public/favicon.ico b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/public/favicon.ico deleted file mode 100644 index 5dbdfcddcb14..000000000000 Binary files a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/public/favicon.ico and /dev/null differ diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/react-router.config.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/react-router.config.ts deleted file mode 100644 index 61161a60cfc5..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/react-router.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Config } from '@react-router/dev/config'; - -export default { - ssr: false, -} satisfies Config; diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/start-event-proxy.mjs deleted file mode 100644 index ce02c081eb72..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/start-event-proxy.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import { startEventProxyServer } from '@sentry-internal/test-utils'; - -startEventProxyServer({ - port: 3031, - proxyServerName: 'react-router-7-framework-spa-node-20-18', -}); diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/constants.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/constants.ts deleted file mode 100644 index b350a4383293..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const APP_NAME = 'react-router-7-framework-spa-node-20-18'; diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/errors/errors.client.test.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/errors/errors.client.test.ts deleted file mode 100644 index c1a7de46f1b6..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/errors/errors.client.test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { waitForError } from '@sentry-internal/test-utils'; -import { APP_NAME } from '../constants'; - -test.describe('client-side errors', () => { - const errorMessage = '¡Madre mía!'; - test('captures error thrown on click', async ({ page }) => { - const errorPromise = waitForError(APP_NAME, async errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === errorMessage; - }); - - await page.goto(`/errors/client`); - await page.locator('#throw-on-click').click(); - - const error = await errorPromise; - - expect(error).toMatchObject({ - exception: { - values: [ - { - type: 'Error', - value: errorMessage, - mechanism: { - handled: false, - }, - }, - ], - }, - transaction: '/errors/client', - request: { - url: expect.stringContaining('errors/client'), - headers: expect.any(Object), - }, - level: 'error', - platform: 'javascript', - environment: 'qa', - sdk: { - integrations: expect.any(Array), - name: 'sentry.javascript.react-router', - version: expect.any(String), - }, - tags: { runtime: 'browser' }, - contexts: { - trace: { - span_id: expect.any(String), - trace_id: expect.any(String), - }, - }, - breadcrumbs: [ - { - category: 'ui.click', - message: 'body > div > button#throw-on-click', - }, - ], - }); - }); - - test('captures error thrown on click from a parameterized route', async ({ page }) => { - const errorMessage = '¡Madre mía de churros!'; - const errorPromise = waitForError(APP_NAME, async errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === errorMessage; - }); - - await page.goto('/errors/client/churros'); - await page.locator('#throw-on-click').click(); - - const error = await errorPromise; - - expect(error).toMatchObject({ - exception: { - values: [ - { - type: 'Error', - value: '¡Madre mía de churros!', - mechanism: { - handled: false, - }, - }, - ], - }, - // todo: should be '/errors/client/:client-param' - transaction: '/errors/client/churros', - }); - }); - - test('captures error thrown in a clientLoader', async ({ page }) => { - const errorMessage = '¡Madre mía del client loader!'; - const errorPromise = waitForError(APP_NAME, async errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === errorMessage; - }); - - await page.goto('/errors/client-loader'); - - const error = await errorPromise; - - expect(error).toMatchObject({ - exception: { - values: [ - { - type: 'Error', - value: errorMessage, - mechanism: { - handled: false, - type: 'auto.function.react_router.on_error', - }, - }, - ], - }, - transaction: '/errors/client-loader', - }); - }); - - test('captures error thrown in a clientAction', async ({ page }) => { - const errorMessage = 'Madonna mia! Che casino nella Client Action!'; - const errorPromise = waitForError(APP_NAME, async errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === errorMessage; - }); - - await page.goto('/errors/client-action'); - await page.locator('#submit').click(); - - const error = await errorPromise; - - expect(error).toMatchObject({ - exception: { - values: [ - { - type: 'Error', - value: errorMessage, - mechanism: { - handled: false, - type: 'auto.function.react_router.on_error', - }, - }, - ], - }, - transaction: '/errors/client-action', - }); - }); -}); diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/navigation.client.test.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/navigation.client.test.ts deleted file mode 100644 index 5c1b7c493e67..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/navigation.client.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { waitForTransaction } from '@sentry-internal/test-utils'; -import { APP_NAME } from '../constants'; - -test.describe('client - navigation performance', () => { - test('should update navigation transaction for dynamic routes', async ({ page }) => { - const txPromise = waitForTransaction(APP_NAME, async transactionEvent => { - return ( - transactionEvent.transaction === '/performance/with/:param' && - transactionEvent.contexts?.trace?.op === 'navigation' - ); - }); - - const pageloadTxPromise = waitForTransaction(APP_NAME, async transactionEvent => { - return transactionEvent.transaction === '/performance' && transactionEvent.contexts?.trace?.op === 'pageload'; - }); - - await page.goto(`/performance`); // pageload - await pageloadTxPromise; - await page.getByRole('link', { name: 'With Param Page' }).click(); // navigation - - const transaction = await txPromise; - - expect(transaction).toMatchObject({ - contexts: { - trace: { - span_id: expect.any(String), - trace_id: expect.any(String), - data: { - 'sentry.origin': 'auto.navigation.react_router', - 'sentry.op': 'navigation', - 'sentry.source': 'route', - 'url.template': '/performance/with/:param', - 'url.path': '/performance/with/sentry', - 'url.full': expect.stringMatching(/^https?:\/\/localhost:\d+\/performance\/with\/sentry$/), - }, - op: 'navigation', - origin: 'auto.navigation.react_router', - }, - }, - spans: expect.any(Array), - start_timestamp: expect.any(Number), - timestamp: expect.any(Number), - transaction: '/performance/with/:param', - type: 'transaction', - transaction_info: { source: 'route' }, - platform: 'javascript', - request: { - url: expect.stringContaining('/performance/with/sentry'), - headers: expect.any(Object), - }, - event_id: expect.any(String), - environment: 'qa', - sdk: { - integrations: expect.arrayContaining([expect.any(String)]), - name: 'sentry.javascript.react-router', - version: expect.any(String), - packages: [ - { name: 'npm:@sentry/react-router', version: expect.any(String) }, - { name: 'npm:@sentry/browser', version: expect.any(String) }, - ], - }, - tags: { runtime: 'browser' }, - }); - }); -}); diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/pageload.client.test.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/pageload.client.test.ts deleted file mode 100644 index 9598d8dbe17e..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tests/performance/pageload.client.test.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { waitForTransaction } from '@sentry-internal/test-utils'; -import { APP_NAME } from '../constants'; - -test.describe('client - pageload performance', () => { - test('should send pageload transaction', async ({ page }) => { - const txPromise = waitForTransaction(APP_NAME, async transactionEvent => { - return transactionEvent.transaction === '/performance' && transactionEvent.contexts?.trace?.op === 'pageload'; - }); - - await page.goto(`/performance`); - await page.getByRole('heading', { name: 'Performance Page' }).waitFor(); - - const transaction = await txPromise; - - expect(transaction).toMatchObject({ - contexts: { - trace: { - span_id: expect.any(String), - trace_id: expect.any(String), - data: { - 'sentry.origin': 'auto.pageload.react_router', - 'sentry.op': 'pageload', - 'sentry.source': 'route', - 'url.template': '/performance', - 'url.path': '/performance', - 'url.full': expect.stringMatching(/^https?:\/\/localhost:\d+\/performance$/), - }, - op: 'pageload', - origin: 'auto.pageload.react_router', - }, - }, - spans: expect.any(Array), - start_timestamp: expect.any(Number), - timestamp: expect.any(Number), - transaction: '/performance', - type: 'transaction', - transaction_info: { source: 'route' }, - measurements: expect.any(Object), - platform: 'javascript', - request: { - url: expect.stringContaining('/performance'), - headers: expect.any(Object), - }, - event_id: expect.any(String), - environment: 'qa', - sdk: { - integrations: expect.arrayContaining([expect.any(String)]), - name: 'sentry.javascript.react-router', - version: expect.any(String), - packages: [ - { name: 'npm:@sentry/react-router', version: expect.any(String) }, - { name: 'npm:@sentry/browser', version: expect.any(String) }, - ], - }, - tags: { runtime: 'browser' }, - }); - }); - - test('should update pageload transaction for dynamic routes', async ({ page }) => { - const txPromise = waitForTransaction(APP_NAME, async transactionEvent => { - return ( - transactionEvent.transaction === '/performance/with/:param' && - transactionEvent.contexts?.trace?.op === 'pageload' - ); - }); - - await page.goto(`/performance/with/sentry`); - await page.getByRole('heading', { name: 'Dynamic Parameter Page' }).waitFor(); - - const transaction = await txPromise; - - expect(transaction).toMatchObject({ - contexts: { - trace: { - span_id: expect.any(String), - trace_id: expect.any(String), - data: { - 'sentry.origin': 'auto.pageload.react_router', - 'sentry.op': 'pageload', - 'sentry.source': 'route', - 'url.template': '/performance/with/:param', - 'url.path': '/performance/with/sentry', - 'url.full': expect.stringMatching(/^https?:\/\/localhost:\d+\/performance\/with\/sentry$/), - }, - op: 'pageload', - origin: 'auto.pageload.react_router', - }, - }, - spans: expect.any(Array), - start_timestamp: expect.any(Number), - timestamp: expect.any(Number), - transaction: '/performance/with/:param', - type: 'transaction', - transaction_info: { source: 'route' }, - measurements: expect.any(Object), - platform: 'javascript', - request: { - url: expect.stringContaining('/performance/with/sentry'), - headers: expect.any(Object), - }, - event_id: expect.any(String), - environment: 'qa', - sdk: { - integrations: expect.arrayContaining([expect.any(String)]), - name: 'sentry.javascript.react-router', - version: expect.any(String), - packages: [ - { name: 'npm:@sentry/react-router', version: expect.any(String) }, - { name: 'npm:@sentry/browser', version: expect.any(String) }, - ], - }, - tags: { runtime: 'browser' }, - }); - }); -}); diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tsconfig.json b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tsconfig.json deleted file mode 100644 index a6b90b7c81f3..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "include": ["**/*", "**/.server/**/*", "**/.client/**/*", ".react-router/types/**/*"], - "compilerOptions": { - "lib": ["DOM", "DOM.Iterable", "ES2022"], - "types": ["node", "vite/client"], - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "bundler", - "jsx": "react-jsx", - "rootDirs": [".", "./.react-router/types"], - "baseUrl": ".", - "paths": { - "~/*": ["./app/*"] - }, - "esModuleInterop": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true - } -} diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/vite.config.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/vite.config.ts deleted file mode 100644 index 68ba30d69397..000000000000 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa-node-20-18/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { reactRouter } from '@react-router/dev/vite'; -import { defineConfig } from 'vite'; - -export default defineConfig({ - plugins: [reactRouter()], -}); diff --git a/scripts/report-ci-failures.mjs b/scripts/report-ci-failures.mjs index e87a38b7a824..58278b4b5a8f 100644 --- a/scripts/report-ci-failures.mjs +++ b/scripts/report-ci-failures.mjs @@ -29,7 +29,7 @@ import { readFileSync } from 'node:fs'; * "aws-serverless-layer (Node 22) Test" -> "aws-serverless-layer Test" * "Playwright bundle_tracing_replay Tests" -> "Playwright Tests" * "Playwright esm (1/4) Tests" -> "Playwright Tests" - * "E2E react-router-7-framework-spa-node-20-18 Test" -> "E2E react-router-7-framework-spa Test" + * "E2E some-app-node-20-18 Test" -> "E2E some-app Test" */ function normalizeJobName(name) { return name