Files
familienarchiv/frontend/scripts
Marcel 655f0c3531 test+feat(stammbaum): capture script soft-warns on AC3 revisit trigger (#361)
Cycle-2 follow-up from Elicit. ADR-026 defers AC3 (unseeded loose
spouse with parents-in-graph) with the revisit trigger being "first
canonical fixture containing such a person". The trigger previously
relied on a human spotting the new shape during recapture, with no
automated nudge.

`findAc3Candidates(network)` is the testable predicate (5 unit tests
including the precondition that the *committed* canonical fixture has
zero candidates today — anchors the ADR-026 "0 rows" annotation
against the fixture). The capture script calls it after writing the
fixture and emits a loud non-blocking stderr warning if the count goes
non-zero. The warning is the revisit trigger Elicit asked for.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 20:58:50 +02:00
..

frontend/scripts/

One-off developer utilities. Each script is local-only and never invoked from CI. Re-run intentionally when needed; commit any generated artefacts as a separate, atomic commit.

Script Purpose
capture-network-fixture.mjs Capture the canonical GET /api/network response into src/lib/person/genealogy/__fixtures__/stammbaum.json. Used by buildLayout.test.ts. Re-capture when the production family graph grows a new structural case (new edge type, new marriage configuration).

Usage

cd frontend
node scripts/capture-network-fixture.mjs

Defaults to BACKEND_URL=http://localhost:8080 and the dev admin credentials. Override via env vars (BACKEND_URL, CAPTURE_EMAIL, CAPTURE_PASSWORD).

The script exits non-zero if the captured fixture would be vacuous (fewer than 100 nodes, fewer than 5 generations, or zero SPOUSE_OF edges).