Skip to content

chore(e2e): add Playwright smoke test infrastructure#73

Open
pnewsam wants to merge 4 commits into
mainfrom
chore/e2e-smoke-tests
Open

chore(e2e): add Playwright smoke test infrastructure#73
pnewsam wants to merge 4 commits into
mainfrom
chore/e2e-smoke-tests

Conversation

@pnewsam
Copy link
Copy Markdown
Contributor

@pnewsam pnewsam commented May 12, 2026

Description

Adds a minimal Playwright e2e test suite that runs against the web SPA mode (dev:web). This is the first automated test infrastructure for the project — the goal is to validate that e2e tests can work before expanding coverage.

What's included:

  • e2e/playwright.config.ts — Playwright config with webServer that auto-starts npm run dev:web (FastAPI + Vite), captures screenshots/video/traces on failure
  • e2e/flows/app-loads.spec.ts — 3 smoke tests:
    1. Server /health endpoint returns 200
    2. Web SPA renders sidebar navigation (Projects, Settings, Scheduled Tasks)
    3. "New task" button is visible and clickable
  • package.json — Added @playwright/test devDependency + test:e2e script
  • .gitignore — Added test-results/ and playwright-report/
  • .github/workflows/e2e.yml — GitHub Actions workflow that runs on every PR

Type of change

  • ⚡ New feature (non-breaking change which adds functionality)

Testing / Verification

Tests pass locally:

npm run test:e2e

Running 3 tests using 1 worker
  3 passed (9.5s)

Steps to verify:

  1. npm run test:e2e — runs all 3 smoke tests headless
  2. npm run test:e2e -- --headed — runs with visible browser to watch tests execute
  3. On the first CI run, verify the pip install anton step works (may need a PAT if the anton repo is private)

Checklist:

  • My code follows the style guidelines of this project
  • My changes generate no new warnings
  • I have checked my code and corrected any misspellings
  • I have added or updated tests that cover my changes

pnewsam and others added 4 commits May 11, 2026 17:19
Add minimal e2e test suite using Playwright against the web SPA mode
(dev:web). Three smoke tests verify server health, sidebar navigation
rendering, and new-task button interactivity. Includes GitHub Actions
workflow to run tests on every PR with failure artifact uploads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
start-server.mjs looks for the Python interpreter at the uv tool
install path (~/.local/share/uv/tools/anton/bin/python). Replace
pip install with uv tool install so the server can find it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
start-server.mjs runs server/main.py using the uv tool venv Python.
Ensure fastapi and other server deps are installed in that venv,
not just anton's own dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
uv tool venvs don't include pip, so python -m pip fails. Use
uv tool install --with to add fastapi, uvicorn, and python-multipart
directly into the anton tool venv.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pnewsam pnewsam marked this pull request as ready for review May 12, 2026 01:04
@pnewsam pnewsam requested a review from a team as a code owner May 12, 2026 01:04
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.

1 participant