From 40bc10c18f84f2c1a917f20c03be37a27a4ef48c Mon Sep 17 00:00:00 2001 From: Andrei Borza Date: Mon, 3 Jun 2024 13:19:23 +0200 Subject: [PATCH 1/4] feat(solidjs): Add e2e tests --- .github/workflows/build.yml | 1 + .../test-applications/solidjs/.gitignore | 29 +++++ .../test-applications/solidjs/.npmrc | 2 + .../test-applications/solidjs/README.md | 40 +++++++ .../test-applications/solidjs/index.html | 15 +++ .../test-applications/solidjs/package.json | 32 ++++++ .../solidjs/playwright.config.mjs | 8 ++ .../solidjs/postcss.config.js | 6 ++ .../solidjs/src/errors/404.tsx | 8 ++ .../test-applications/solidjs/src/index.css | 3 + .../test-applications/solidjs/src/index.tsx | 21 ++++ .../solidjs/src/pageroot.tsx | 23 ++++ .../solidjs/src/pages/home.tsx | 39 +++++++ .../solidjs/src/pages/user.tsx | 6 ++ .../test-applications/solidjs/src/routes.ts | 18 ++++ .../solidjs/start-event-proxy.mjs | 6 ++ .../solidjs/tailwind.config.ts | 11 ++ .../solidjs/tests/errors.test.ts | 28 +++++ .../solidjs/tests/performance.test.ts | 102 ++++++++++++++++++ .../test-applications/solidjs/tsconfig.json | 14 +++ .../test-applications/solidjs/vite.config.ts | 10 ++ 21 files changed, 422 insertions(+) create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/.gitignore create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/.npmrc create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/README.md create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/index.html create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/package.json create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/playwright.config.mjs create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/postcss.config.js create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/errors/404.tsx create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/index.css create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/index.tsx create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/pageroot.tsx create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/pages/home.tsx create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/pages/user.tsx create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/src/routes.ts create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/start-event-proxy.mjs create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/tailwind.config.ts create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/tests/errors.test.ts create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/tsconfig.json create mode 100644 dev-packages/e2e-tests/test-applications/solidjs/vite.config.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2180ddbf3b9b..79f2ad9e595e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1014,6 +1014,7 @@ jobs: 'react-router-6-use-routes', 'react-router-5', 'react-router-6', + 'solidjs', 'svelte-5', 'sveltekit', 'sveltekit-2', diff --git a/dev-packages/e2e-tests/test-applications/solidjs/.gitignore b/dev-packages/e2e-tests/test-applications/solidjs/.gitignore new file mode 100644 index 000000000000..84634c973eeb --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/.gitignore @@ -0,0 +1,29 @@ +# 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 diff --git a/dev-packages/e2e-tests/test-applications/solidjs/.npmrc b/dev-packages/e2e-tests/test-applications/solidjs/.npmrc new file mode 100644 index 000000000000..070f80f05092 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/.npmrc @@ -0,0 +1,2 @@ +@sentry:registry=http://127.0.0.1:4873 +@sentry-internal:registry=http://127.0.0.1:4873 diff --git a/dev-packages/e2e-tests/test-applications/solidjs/README.md b/dev-packages/e2e-tests/test-applications/solidjs/README.md new file mode 100644 index 000000000000..81e5eb6c2d40 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/README.md @@ -0,0 +1,40 @@ +## Usage + +Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`. + +This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely +be removed once you clone a template. + +```bash +$ npm install # or pnpm install or yarn install +``` + +## Exploring the template + +This template's goal is to showcase the routing features of Solid. It also showcase how the router and Suspense work +together to parallelize data fetching tied to a route via the `.data.ts` pattern. + +You can learn more about it on the [`@solidjs/router` repository](https://github.com/solidjs/solid-router) + +### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs) + +## Available Scripts + +In the project directory, you can run: + +### `npm run dev` or `npm start` + +Runs the app in the development mode.
Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+ +### `npm run build` + +Builds the app for production to the `dist` folder.
It correctly bundles Solid in production mode and optimizes the +build for the best performance. + +The build is minified and the filenames include the hashes.
Your app is ready to be deployed! + +## Deployment + +You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.) diff --git a/dev-packages/e2e-tests/test-applications/solidjs/index.html b/dev-packages/e2e-tests/test-applications/solidjs/index.html new file mode 100644 index 000000000000..1905a0429019 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/index.html @@ -0,0 +1,15 @@ + + + + + + + Solid App + + + +
+ + + + diff --git a/dev-packages/e2e-tests/test-applications/solidjs/package.json b/dev-packages/e2e-tests/test-applications/solidjs/package.json new file mode 100644 index 000000000000..6b8b610fa9a8 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/package.json @@ -0,0 +1,32 @@ +{ + "name": "solidjs", + "version": "0.0.0", + "description": "", + "scripts": { + "build": "vite build", + "clean": "npx rimraf node_modules pnpm-lock.yaml dist", + "dev": "vite", + "preview": "vite preview", + "start": "vite", + "test:prod": "TEST_ENV=production playwright test", + "test:build": "pnpm install && npx playwright install && pnpm build", + "test:assert": "pnpm test:prod" + }, + "license": "MIT", + "devDependencies": { + "@playwright/test": "^1.43.1", + "@sentry/types": "latest || *", + "@sentry/utils": "latest || *", + "autoprefixer": "^10.4.17", + "postcss": "^8.4.33", + "solid-devtools": "^0.29.2", + "tailwindcss": "^3.4.1", + "vite": "^5.0.11", + "vite-plugin-solid": "^2.8.2" + }, + "dependencies": { + "@solidjs/router": "^0.13.5", + "solid-js": "^1.8.11", + "@sentry/solidjs": "latest || *" + } +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/solidjs/playwright.config.mjs new file mode 100644 index 000000000000..0c468af7d879 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/playwright.config.mjs @@ -0,0 +1,8 @@ +import { getPlaywrightConfig } from '@sentry-internal/test-utils'; + +const config = getPlaywrightConfig({ + startCommand: 'pnpm preview --port 3030', + port: 3030, +}); + +export default config; diff --git a/dev-packages/e2e-tests/test-applications/solidjs/postcss.config.js b/dev-packages/e2e-tests/test-applications/solidjs/postcss.config.js new file mode 100644 index 000000000000..12a703d900da --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/errors/404.tsx b/dev-packages/e2e-tests/test-applications/solidjs/src/errors/404.tsx new file mode 100644 index 000000000000..56e5ad5e3be0 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/errors/404.tsx @@ -0,0 +1,8 @@ +export default function NotFound() { + return ( +
+

404: Not Found

+

It's gone 😞

+
+ ); +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/index.css b/dev-packages/e2e-tests/test-applications/solidjs/src/index.css new file mode 100644 index 000000000000..b5c61c956711 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/index.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/index.tsx b/dev-packages/e2e-tests/test-applications/solidjs/src/index.tsx new file mode 100644 index 000000000000..47e7c0e52904 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/index.tsx @@ -0,0 +1,21 @@ +/* @refresh reload */ +import * as Sentry from '@sentry/solidjs'; +import { Router, useBeforeLeave, useLocation } from '@solidjs/router'; +import { render } from 'solid-js/web'; +import './index.css'; +import PageRoot from './pageroot'; +import { routes } from './routes'; + +Sentry.init({ + dsn: import.meta.env.PUBLIC_E2E_TEST_DSN, + debug: true, + environment: 'qa', // dynamic sampling bias to keep transactions + integrations: [Sentry.solidRouterBrowserTracingIntegration({ useBeforeLeave, useLocation })], + release: 'e2e-test', + tunnel: 'http://localhost:3031/', // proxy server + tracesSampleRate: 1.0, +}); + +const SentryRouter = Sentry.withSentryRouterRouting(Router); + +render(() => {routes}, document.getElementById('root')); diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/pageroot.tsx b/dev-packages/e2e-tests/test-applications/solidjs/src/pageroot.tsx new file mode 100644 index 000000000000..d9770c8a3868 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/pageroot.tsx @@ -0,0 +1,23 @@ +import { A } from '@solidjs/router'; + +export default function PageRoot(props) { + return ( + <> + +
{props.children}
+ + ); +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/pages/home.tsx b/dev-packages/e2e-tests/test-applications/solidjs/src/pages/home.tsx new file mode 100644 index 000000000000..7500846f0555 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/pages/home.tsx @@ -0,0 +1,39 @@ +import { A } from '@solidjs/router'; +import { createSignal } from 'solid-js'; + +export default function Home() { + const [count, setCount] = createSignal(0); + + return ( +
+

Home

+

This is the home page.

+ +
+ + + Count: {count()} + + +
+
+ + + User 5 + +
+
+ ); +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/pages/user.tsx b/dev-packages/e2e-tests/test-applications/solidjs/src/pages/user.tsx new file mode 100644 index 000000000000..639ab0be8118 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/pages/user.tsx @@ -0,0 +1,6 @@ +import { useParams } from '@solidjs/router'; + +export default function User() { + const params = useParams(); + return
User ID: {params.id}
; +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/src/routes.ts b/dev-packages/e2e-tests/test-applications/solidjs/src/routes.ts new file mode 100644 index 000000000000..7b115f68c00c --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/src/routes.ts @@ -0,0 +1,18 @@ +import { lazy } from 'solid-js'; + +import Home from './pages/home'; + +export const routes = [ + { + path: '/', + component: Home, + }, + { + path: '/user/:id', + component: lazy(() => import('./pages/user')), + }, + { + path: '**', + component: lazy(() => import('./errors/404')), + }, +]; diff --git a/dev-packages/e2e-tests/test-applications/solidjs/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/solidjs/start-event-proxy.mjs new file mode 100644 index 000000000000..207afe3f56e1 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/start-event-proxy.mjs @@ -0,0 +1,6 @@ +import { startEventProxyServer } from '@sentry-internal/test-utils'; + +startEventProxyServer({ + port: 3031, + proxyServerName: 'solidjs', +}); diff --git a/dev-packages/e2e-tests/test-applications/solidjs/tailwind.config.ts b/dev-packages/e2e-tests/test-applications/solidjs/tailwind.config.ts new file mode 100644 index 000000000000..f69a95185570 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/tailwind.config.ts @@ -0,0 +1,11 @@ +import type { Config } from 'tailwindcss'; + +const config: Config = { + content: ['./src/**/*.{js,jsx,ts,tsx}'], + theme: { + extend: {}, + }, + plugins: [], +}; + +export default config; diff --git a/dev-packages/e2e-tests/test-applications/solidjs/tests/errors.test.ts b/dev-packages/e2e-tests/test-applications/solidjs/tests/errors.test.ts new file mode 100644 index 000000000000..92618f628407 --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/tests/errors.test.ts @@ -0,0 +1,28 @@ +import { expect, test } from '@playwright/test'; +import { waitForError } from '@sentry-internal/test-utils'; + +test('sends an error', async ({ page }) => { + const errorPromise = waitForError('solidjs', async errorEvent => { + return !errorEvent.type; + }); + + await Promise.all([page.goto(`/`), page.locator('#errorBtn').click()]); + + const error = await errorPromise; + + expect(error).toMatchObject({ + exception: { + values: [ + { + type: 'Error', + value: 'Error thrown from SolidJS E2E test app', + mechanism: { + type: 'onerror', + handled: false, + }, + }, + ], + }, + transaction: '/', + }); +}); diff --git a/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts new file mode 100644 index 000000000000..5c6e2a9b24bf --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts @@ -0,0 +1,102 @@ +import { expect, test } from '@playwright/test'; +import { waitForTransaction } from '@sentry-internal/test-utils'; + +test('sends a pageload transaction', async ({ page }) => { + const transactionPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'pageload'; + }); + + const [, pageloadTransaction] = await Promise.all([page.goto('/'), transactionPromise]); + + expect(pageloadTransaction).toMatchObject({ + contexts: { + trace: { + op: 'pageload', + origin: 'auto.pageload.browser', + }, + }, + transaction: '/', + transaction_info: { + source: 'url', + }, + }); +}); + +test('sends a navigation transaction', async ({ page }) => { + page.on('console', msg => console.log(msg.text())); + const pageloadTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'pageload'; + }); + + const navigationTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'navigation'; + }); + + await Promise.all([page.goto(`/`), pageloadTxnPromise]); + + const [, navigationTxn] = await Promise.all([page.locator('#navLink').click(), navigationTxnPromise]); + + expect(navigationTxn).toMatchObject({ + contexts: { + trace: { + op: 'navigation', + origin: 'auto.navigation.solidjs.solidrouter', + }, + }, + transaction: '/user/5', + transaction_info: { + source: 'url', + }, + }); +}); + +test('updates the transaction when using the back button', async ({ page }) => { + // Solid Router sends a `-1` navigation when using the back button. + // The sentry solidRouterBrowserTracingIntegration tries to update such + // transactions with the proper name once the `useLocation` hook triggers. + page.on('console', msg => console.log(msg.text())); + + const pageloadTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'pageload'; + }); + + const navigationTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'navigation'; + }); + + await Promise.all([page.goto(`/`), pageloadTxnPromise]); + + const [, navigationTxn] = await Promise.all([page.locator('#navLink').click(), navigationTxnPromise]); + + expect(navigationTxn).toMatchObject({ + contexts: { + trace: { + op: 'navigation', + origin: 'auto.navigation.solidjs.solidrouter', + }, + }, + transaction: '/user/5', + transaction_info: { + source: 'url', + }, + }); + + const backNavigationTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'navigation'; + }); + + const [, backNavigationTxn] = await Promise.all([page.goBack(), backNavigationTxnPromise]); + + expect(backNavigationTxn).toMatchObject({ + contexts: { + trace: { + op: 'navigation', + origin: 'auto.navigation.solidjs.solidrouter', + }, + }, + transaction: '/', + transaction_info: { + source: 'url', + }, + }); +}); diff --git a/dev-packages/e2e-tests/test-applications/solidjs/tsconfig.json b/dev-packages/e2e-tests/test-applications/solidjs/tsconfig.json new file mode 100644 index 000000000000..ba12e96f069a --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + "types": ["vite/client"], + "noEmit": true, + "isolatedModules": true, + }, +} diff --git a/dev-packages/e2e-tests/test-applications/solidjs/vite.config.ts b/dev-packages/e2e-tests/test-applications/solidjs/vite.config.ts new file mode 100644 index 000000000000..d1835ee1b8ff --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/solidjs/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite'; +import solidPlugin from 'vite-plugin-solid'; + +export default defineConfig({ + plugins: [solidPlugin()], + build: { + target: 'esnext', + }, + envPrefix: 'PUBLIC_', +}); From 82faebd491267623f6a761830d806efbc08a385a Mon Sep 17 00:00:00 2001 From: Andrei <168741329+andreiborza@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:56:50 +0200 Subject: [PATCH 2/4] Update dev-packages/e2e-tests/test-applications/solidjs/package.json Co-authored-by: Francesco Novy --- dev-packages/e2e-tests/test-applications/solidjs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/e2e-tests/test-applications/solidjs/package.json b/dev-packages/e2e-tests/test-applications/solidjs/package.json index 6b8b610fa9a8..093bc0936b8a 100644 --- a/dev-packages/e2e-tests/test-applications/solidjs/package.json +++ b/dev-packages/e2e-tests/test-applications/solidjs/package.json @@ -14,7 +14,7 @@ }, "license": "MIT", "devDependencies": { - "@playwright/test": "^1.43.1", + "@playwright/test": "^1.44.1", "@sentry/types": "latest || *", "@sentry/utils": "latest || *", "autoprefixer": "^10.4.17", From 9db86608df1f9060c0ead2baa8cf2bc637b083e9 Mon Sep 17 00:00:00 2001 From: Andrei Borza Date: Mon, 3 Jun 2024 16:08:50 +0200 Subject: [PATCH 3/4] feat(solidjs): Add `@sentry-internal/test-utils` as dep --- dev-packages/e2e-tests/test-applications/solidjs/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-packages/e2e-tests/test-applications/solidjs/package.json b/dev-packages/e2e-tests/test-applications/solidjs/package.json index 093bc0936b8a..1922a6e26d17 100644 --- a/dev-packages/e2e-tests/test-applications/solidjs/package.json +++ b/dev-packages/e2e-tests/test-applications/solidjs/package.json @@ -15,6 +15,7 @@ "license": "MIT", "devDependencies": { "@playwright/test": "^1.44.1", + "@sentry-internal/test-utils": "link:../../../test-utils", "@sentry/types": "latest || *", "@sentry/utils": "latest || *", "autoprefixer": "^10.4.17", From 2850c80ae5206528dea22190324e44e021c0c439 Mon Sep 17 00:00:00 2001 From: Andrei Borza Date: Mon, 3 Jun 2024 16:19:09 +0200 Subject: [PATCH 4/4] feat(solidjs): Remove unnecessary wait on pageload transactions from tests --- .../solidjs/tests/performance.test.ts | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts index 5c6e2a9b24bf..166dfe01d32b 100644 --- a/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/solidjs/tests/performance.test.ts @@ -23,20 +23,15 @@ test('sends a pageload transaction', async ({ page }) => { }); test('sends a navigation transaction', async ({ page }) => { - page.on('console', msg => console.log(msg.text())); - const pageloadTxnPromise = waitForTransaction('solidjs', async transactionEvent => { - return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'pageload'; - }); - - const navigationTxnPromise = waitForTransaction('solidjs', async transactionEvent => { + const transactionPromise = waitForTransaction('solidjs', async transactionEvent => { return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'navigation'; }); - await Promise.all([page.goto(`/`), pageloadTxnPromise]); + await page.goto(`/`); - const [, navigationTxn] = await Promise.all([page.locator('#navLink').click(), navigationTxnPromise]); + const [, navigationTransaction] = await Promise.all([page.locator('#navLink').click(), transactionPromise]); - expect(navigationTxn).toMatchObject({ + expect(navigationTransaction).toMatchObject({ contexts: { trace: { op: 'navigation', @@ -54,17 +49,11 @@ test('updates the transaction when using the back button', async ({ page }) => { // Solid Router sends a `-1` navigation when using the back button. // The sentry solidRouterBrowserTracingIntegration tries to update such // transactions with the proper name once the `useLocation` hook triggers. - page.on('console', msg => console.log(msg.text())); - - const pageloadTxnPromise = waitForTransaction('solidjs', async transactionEvent => { - return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'pageload'; - }); - const navigationTxnPromise = waitForTransaction('solidjs', async transactionEvent => { return !!transactionEvent?.transaction && transactionEvent.contexts?.trace?.op === 'navigation'; }); - await Promise.all([page.goto(`/`), pageloadTxnPromise]); + await page.goto(`/`); const [, navigationTxn] = await Promise.all([page.locator('#navLink').click(), navigationTxnPromise]);