Files
nuzlocke-tracker/.beans/nuzlocke-tracker-4a6i--replace-ci-pipeline-with-test-suite.md
Julian Tabel bf3a3d3329
Some checks failed
CI / backend-tests (push) Failing after 37s
CI / frontend-tests (push) Successful in 28s
CI / e2e-tests (push) Failing after 1m42s
Replace CI lint jobs with backend, frontend, and e2e test jobs
Lint, formatting, and type checks are already enforced by prek pre-commit
hooks, so CI now focuses on running the actual test suites instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:13:34 +01:00

1.7 KiB

title, status, type, priority, created_at, updated_at
title status type priority created_at updated_at
Replace CI pipeline with test suite completed task normal 2026-02-21T13:01:01Z 2026-02-21T13:10:15Z

Replace the current .github/workflows/ci.yml with a workflow that runs the actual test suites. The existing jobs (lint, format, type check) are already enforced by pre-commit hooks (prek), so CI should focus on test execution instead.

Context

  • Backend integration tests: pytest with TEST_DATABASE_URL pointing at a postgres service container. Default URL: postgresql+asyncpg://postgres:postgres@localhost:5433/nuzlocke_test. Tests live in backend/tests/.
  • Frontend unit tests: vitest (npm run test -- --run). No external services needed.
  • E2e tests: Playwright. e2e/global-setup.ts uses docker compose -p nuzlocke-test -f docker-compose.test.yml up -d --build to start a test API + DB, then seeds data via the API. playwright.config.ts spins up npm run dev as the webServer. Need to install Chromium via npx playwright install --with-deps chromium.

Checklist

  • Add backend-tests job: postgres service container (image postgres:16-alpine, user/pass/db matching conftest defaults), install deps with uv, run pytest backend/tests/ -q
  • Add frontend-tests job: node 24, npm ci in frontend/, run npm run test -- --run
  • Add e2e-tests job: install Docker Compose, install Playwright + Chromium deps, run npx playwright test from frontend/; upload HTML report as artifact on failure
  • Keep the actions-lint job (actionlint + zizmor); remove backend-lint and frontend-lint jobs
  • Pin all action versions to SHA with version comments; pass zizmor audit