Web: Add Playwright E2E testing integration#32
Web: Add Playwright E2E testing integration#32nickshulman wants to merge 3 commits intoyeastrc:masterfrom
Conversation
Add Playwright for end-to-end testing of the web frontend: - Add @playwright/test dependency and npm test scripts - Configure tests for Chromium, Firefox, and WebKit browsers - Add login page smoke test - Add projects list page test (verifies auth redirect) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…to 2026-01-16-PlaywrightTests
There was a problem hiding this comment.
Pull request overview
Adds Playwright-based end-to-end (E2E) testing support to the Limelight web frontend, including initial smoke tests and runner configuration to exercise key unauthenticated flows.
Changes:
- Add Playwright configuration targeting Chromium/Firefox/WebKit and set up reporting, retries, and timeouts.
- Add E2E smoke tests for login and unauthenticated access to the projects list.
- Add frontend
npmtest scripts and document how to run the E2E tests locally.
Reviewed changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
limelight_webapp/front_end/tests/projects-list.spec.ts |
Adds unauthenticated projects-list navigation test. |
limelight_webapp/front_end/tests/login.spec.ts |
Adds login page smoke test. |
limelight_webapp/front_end/tests/README.md |
Documents Playwright setup and usage. |
limelight_webapp/front_end/playwright.config.ts |
Defines Playwright runner settings and browser matrix. |
limelight_webapp/front_end/package.json |
Adds Playwright dev dependency and npm test scripts. |
limelight_webapp/front_end/package-lock.json |
Locks Playwright dependency tree. |
.gitignore |
Ignores Playwright artifacts (and adds a Claude-specific ignore entry). |
.claude/CLAUDE.md |
Adds Claude project context documentation. |
Files not reviewed (1)
- limelight_webapp/front_end/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| test('should redirect unauthenticated users to login', async ({ page }) => { | ||
| await page.goto('d/pg/project-list'); | ||
|
|
||
| // Unauthenticated users are redirected to login |
There was a problem hiding this comment.
Fixed. Added await expect(page).toHaveURL(/user\/login/) before the title check to assert the redirect URL.
| | File | Description | | ||
| |------|-------------| | ||
| | `login.spec.ts` | Login page smoke test - verifies page loads with expected elements | | ||
| | `projects-list.spec.ts` | Projects list page - verifies unauthenticated redirect to login | | ||
|
|
There was a problem hiding this comment.
I checked the raw markdown and the table formatting is correct — each row has a single leading pipe as expected. This appears to be a false positive.
|
|
||
| 1. **Node.js** v20+ and npm v10.3+ | ||
| 2. **Playwright browsers** installed (see Setup) | ||
| 3. **Limelight server** running at `http://localhost:8080/limelight` |
There was a problem hiding this comment.
Fixed. Standardized to http://127.0.0.1:8080/limelight/ to match playwright.config.ts.
- Add URL assertion to verify auth redirect actually occurs - Standardize base URL to match playwright.config.ts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Addressed Copilot review feedback in commit 819cfde:
|
Add Playwright for end-to-end testing of the web frontend: