Skip to content

Web: Add Playwright E2E testing integration#32

Open
nickshulman wants to merge 3 commits intoyeastrc:masterfrom
nickshulman:2026-01-16-PlaywrightTests
Open

Web: Add Playwright E2E testing integration#32
nickshulman wants to merge 3 commits intoyeastrc:masterfrom
nickshulman:2026-01-16-PlaywrightTests

Conversation

@nickshulman
Copy link

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)

nickshulman and others added 2 commits January 16, 2026 17:40
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>
Copilot AI review requested due to automatic review settings March 18, 2026 22:08
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 npm test 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
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Added await expect(page).toHaveURL(/user\/login/) before the title check to assert the redirect URL.

Comment on lines +60 to +64
| 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 |

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@nickshulman
Copy link
Author

Addressed Copilot review feedback in commit 819cfde:

  1. URL assertion for redirect test (projects-list.spec.ts): Added await expect(page).toHaveURL(/user\/login/) before the title check to verify the redirect actually occurs, not just that the login page content is present.

  2. Table formatting (README.md): Checked the raw markdown — the table formatting is correct with single leading pipes. This appears to be a false positive from Copilot.

  3. Standardize base URL (README.md): Changed the Prerequisites URL from http://localhost:8080/limelight to http://127.0.0.1:8080/limelight/ to match playwright.config.ts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants