Conversation
Set up Playwright with 42 test cases covering all UI functionality: - File upload, rosout/diagnostics tab switching - Filter panel (severity, node, keyword, regex, AND/OR mode) - Statistics panel, export (CSV/JSON/TXT), message table - Diagnostics table with row expand/collapse - Timezone toggle and preview limit controls Include test fixture (.bag file) generated via Docker + ROS Noetic, with the generation script for reproducibility. Add e2e job to CI workflow with Playwright report upload on failure. Co-Authored-By: Claude Opus 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
Adds an end-to-end (E2E) Playwright test suite to provide UI regression coverage ahead of upcoming refactors, and wires it into CI.
Changes:
- Introduces Playwright configuration and an
npm run test:e2escript. - Adds a comprehensive E2E spec plus a committed rosbag fixture and a reproducible generation script.
- Updates CI workflow to run E2E tests and upload the Playwright HTML report on failures.
Reviewed changes
Copilot reviewed 7 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
vite.config.ts |
Excludes e2e/** from Vitest test discovery so unit tests don’t pick up Playwright specs. |
playwright.config.ts |
Adds Playwright runner configuration (testDir, webServer, retries/workers in CI). |
package.json |
Adds Playwright dependency and test:e2e script. |
package-lock.json |
Locks Playwright-related dependencies. |
e2e/app.spec.ts |
Adds the Playwright E2E test suite covering main UI flows. |
e2e/fixtures/test_sample.bag |
Adds a small rosbag fixture used by E2E tests. |
e2e/fixtures/generate_test_bag.py |
Adds a script to regenerate the rosbag fixture (Docker/ROS Noetic). |
.github/workflows/test.yml |
Adds an e2e CI job to run Playwright tests and upload report on failure; updates path filters. |
.gitignore |
Ignores Playwright output directories (test-results/, playwright-report/). |
.eslintignore |
Excludes Playwright/E2E files from ESLint runs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| push: | ||
| paths: | ||
| - 'src/**' | ||
| - 'e2e/**' | ||
| - 'playwright.config.ts' | ||
| - 'package.json' | ||
| - 'package-lock.json' | ||
| - '.github/workflows/test.yml' |
There was a problem hiding this comment.
The workflow is path-filtered, but changes to vite.config.ts (which controls Vitest behavior) will not trigger this workflow. Consider adding vite.config.ts to the on.push.paths list so CI runs when test/build configuration changes.
There was a problem hiding this comment.
Fixed in 2478d72
- Added
vite.config.tsto bothon.push.pathsandon.pull_request.paths
| paths: | ||
| - 'src/**' | ||
| - 'e2e/**' | ||
| - 'playwright.config.ts' |
There was a problem hiding this comment.
Similarly, vite.config.ts changes will not trigger the workflow on pull requests due to the current paths filter. Consider including vite.config.ts in on.pull_request.paths to avoid missing CI runs when test/build config is updated.
| - 'playwright.config.ts' | |
| - 'playwright.config.ts' | |
| - 'vite.config.ts' |
There was a problem hiding this comment.
Fixed in 2478d72
- Added
vite.config.tsto bothon.push.pathsandon.pull_request.paths
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Summary
e2e) to run Playwright tests on PRs with report upload on failure.bagfile generated via Docker + ROS Noetic, with generation script for reproducibilityTest coverage
Test plan
npm run test:e2e— 42/42 passed (13.7s)npm run test— 40/40 unit tests passednpm run build— Build successful🤖 Generated with Claude Code