e2e
Run E2E tests for Sentry JavaScript SDK test applications
Works with
--- name: e2e description: Run E2E tests for Sentry JavaScript SDK test applications license: MIT --- # E2E Test Runner Skill This skill runs end-to-end tests for Sentry JavaScript SDK test applications. It ensures SDK packages are built before running tests. ## Input The user provides a test application name and optionally a variant: - `e2e-tests/test-applications/nextjs-app-dir` (full path) - `nextjs-app-dir` (just the app name) - `nextjs-app-dir --variant nextjs-15` (with variant) ## Workflow ### Step 1: Parse the Test Application Name Extract the test app name from user input: - Strip `e2e-tests/test-applications/` prefix if present - Extract variant flag if provided (e.g., `--variant nextjs-15`) - Store the clean app name (e.g., `nextjs-app-dir`) ### Step 2: Determine Which Packages Need Rebuilding If the user recently edited files in `packages/*`, identify which packages were modified: ```bash # Check which packages have uncommitted changes (including untracked files) git status --porcelain | grep "^[ MARC?][ MD?] packages/" | cut -d'/' -f2 | sort -u ``` For each modified package, rebuild its tarball: ```bash cd packages/<package-name> yarn build && yarn build:tarball cd ../.. ``` **Option C: User Specifies Packages** If the user says "I changed @sentry/node" or similar, rebuild just that package: ```bash cd packages/node yarn build && yarn build:tarball cd ../.. ``` ### Step 3: Verify Test Application Exists Check that the test app exists: ```bash ls -d dev-packages/e2e-tests/test-applications/<app-name> ``` If it doesn't exist, list available test apps: ```bash ls dev-packages/e2e-tests/test-applications/ ``` Ask the user which one they meant. ### Step 4: Run the E2E Test Navigate to the e2e-tests directory and run the test: ```bash cd dev-packages/e2e-tests yarn test:run <app-name> ``` If a variant was specified: ```bash cd dev-packages/e2e-tests yarn test:run <app-name> --variant <variant-name> ``` ### Step 5: Report Results After the test completes, provide a summary: **If tests passed:** ``` ✅ E2E tests passed for <app-name> All tests completed successfully. Your SDK changes work correctly with this test application. ``` **If tests failed:** ``` ❌ E2E tests failed for <app-name> [Include relevant error output] ``` **If package rebuild was needed:** ``` 📦 Rebuilt SDK packages: <list of packages> 🧪 Running E2E tests for <app-name>... ``` ## Error Handling - **No tarballs found**: Run `yarn build && yarn build:tarball` at repository root - **Test app not found**: List available apps and ask user to clarify - **Packed tarballs missing**: Run `yarn build:tarball` at the repo root, then `yarn test:prepare` in `dev-packages/e2e-tests` - **Build failures**: Fix build errors before running tests ## Common Test Applications Here are frequently tested applications: - `nextjs-app-dir` - Next.js App Router - `nextjs-15` - Next.js 15.x - `react-create-hash-router` - React with React Router - `node-express-esm-loader` - Node.js Express with ESM - `sveltekit-2` - SvelteKit 2.x - `remix-2` - Remix 2.x - `nuxt-3` - Nuxt 3.x To see all available test apps: ```bash ls dev-packages/e2e-tests/test-applications/ ``` ## Example Workflows ### Example 1: After modifying @sentry/node ```bash # User: "Run e2e tests for node-express-esm-loader" # Step 1: Detect recent changes to packages/node # Step 2: Rebuild the modified package cd packages/node yarn build && yarn build:tarball cd ../.. # Step 3: Run the test cd dev-packages/e2e-tests yarn test:run node-express-esm-loader ``` ### Example 2: First-time test run ```bash # User: "Run e2e tests for nextjs-app-dir" # Step 1: Check for existing tarballs # Step 2: None found, build all packages yarn build && yarn build:tarball # Step 3: Run the test cd dev-packages/e2e-tests yarn test:run nextjs-app-dir ``` ### Example 3: With variant ```bash # User: "Run e2e tests for nextjs-app-dir with nextjs-15 variant" # Step 1: Rebuild if needed # Step 2: Run with variant cd dev-packages/e2e-tests yarn test:run nextjs-app-dir --variant nextjs-15 ``` ## Tips - **Always rebuild after SDK changes**: Tarballs contain the compiled SDK code - **Watch build output**: Build errors must be fixed before testing ## Integration with Development Workflow This skill integrates with the standard SDK development workflow: 1. Make changes to SDK code in `packages/*` 2. Run `/e2e <app-name>` to test your changes 3. Fix any test failures The skill automates the tedious parts of: - Remembering to rebuild tarballs - Navigating to the correct directory - Running tests with the right flags
More Testing skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
setup-pre-commit
mattpocock/skills
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

