feat(#379): E2E Phase 2a — Backend in CI + Lists-Flow-Spec #380

Merged
admin-mrrm merged 2 commits from feat/379-e2e-backend-lists into main 2026-05-22 00:24:59 +02:00
Owner

Closes #379.

Was

Phase 2a der E2E-Strategie:

  • API laeuft jetzt im e2e-web Drone-Step als Hintergrundprozess (DEV-Passthrough am JWT-Guard, auto-Migrations beim Bootstrap)
  • Erste echte Daten-Flow-Spec: Todo-Liste anlegen, Task adden, abhaken

Aenderungen

apps/web/e2e/lists.spec.ts (neu):

  • UI-Flow ueber /lists → Todo-Button → Input New list nameAdd → Liste oeffnen → Task adden → / togglen
  • Unique Titel via Date.now() → keine afterEach-Cleanup-Logik noetig

.drone.yml:

  • e2e-web haengt jetzt zusaetzlich an build-api
  • ENV: DATABASE_URL, ENCRYPTION_SECRET, CORS_ORIGINS=http://localhost:4173
  • wait-on tcp:database:5432 bevor API startet, danach wait-on tcp:localhost:3000 bevor Playwright laeuft
  • API via pnpm --filter @mrrmlab/api run start:prod & → cwd = apps/api, drizzle-Migrations finden ihren Folder

Verifikation

  • Lokal: pnpm exec tsc --noEmit + pnpm exec eslint e2e gruen (Playwright laeuft nicht auf aarch64-Termux)
  • CI: Phase 1 smoke.spec muss weiterhin gruen sein + neuer lists.spec gruen

Naechstes (Phase 2b)

  • archiv.spec.ts, pakete.spec.ts

Stacked auf main (PR #375 + #377 sind gemerged).

Closes #379. ## Was Phase 2a der E2E-Strategie: - API laeuft jetzt im `e2e-web` Drone-Step als Hintergrundprozess (DEV-Passthrough am JWT-Guard, auto-Migrations beim Bootstrap) - Erste echte Daten-Flow-Spec: Todo-Liste anlegen, Task adden, abhaken ## Aenderungen **`apps/web/e2e/lists.spec.ts` (neu):** - UI-Flow ueber `/lists` → Todo-Button → Input `New list name` → `Add` → Liste oeffnen → Task adden → `☐`/`☑` togglen - Unique Titel via `Date.now()` → keine `afterEach`-Cleanup-Logik noetig **`.drone.yml`:** - `e2e-web` haengt jetzt zusaetzlich an `build-api` - ENV: `DATABASE_URL`, `ENCRYPTION_SECRET`, `CORS_ORIGINS=http://localhost:4173` - `wait-on tcp:database:5432` bevor API startet, danach `wait-on tcp:localhost:3000` bevor Playwright laeuft - API via `pnpm --filter @mrrmlab/api run start:prod &` → cwd = apps/api, drizzle-Migrations finden ihren Folder ## Verifikation - Lokal: `pnpm exec tsc --noEmit` + `pnpm exec eslint e2e` gruen (Playwright laeuft nicht auf aarch64-Termux) - CI: Phase 1 smoke.spec muss weiterhin gruen sein + neuer lists.spec gruen ## Naechstes (Phase 2b) - `archiv.spec.ts`, `pakete.spec.ts` Stacked auf `main` (PR #375 + #377 sind gemerged).
feat(#379): E2E Phase 2a - Backend in CI + Lists-Flow-Spec
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
53e46af419
Erweitert den e2e-web Drone-Step um die API als Hintergrundprozess
(auto-Migrations beim Boot, DEV-Passthrough am JWT-Guard) und fuegt
einen ersten echten Daten-Flow-Spec hinzu: Todo-Liste anlegen,
Task adden, abhaken.

- .drone.yml: e2e-web haengt jetzt an build-api, startet API via
  start:prod im Hintergrund mit DATABASE_URL/ENCRYPTION_SECRET/
  CORS_ORIGINS, wait-on fuer DB+API vor Playwright.
- apps/web/e2e/lists.spec.ts: UI-Flow ueber /lists -> Todo-Typ ->
  Liste anlegen -> oeffnen -> Task adden -> toggle done; unique
  Titel via Date.now() vermeidet Cleanup-Bedarf.

Naechste Phase 2b: Archiv + Pakete Specs.
fix(#379): Node 22 require(ESM) flag fuer API im e2e-web Step
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
f962082231
Playwright-Image v1.49.0-jammy bringt Node 22.11 mit; jose ist
ESM-only und wird vom JWT-Guard per require() geladen. Erst Node
22.12+ default-enabled require(esm). Fix: NODE_OPTIONS auf Step-
Ebene mit --experimental-require-module setzen — gilt fuer beide
node-Prozesse (API + Playwright/Vite).

Build-Steps auf node:24-alpine sind nicht betroffen.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp!380
No description provided.