Files
familienarchiv/frontend/scripts
Marcel 6d8655bad1 test+fix(stammbaum): capture script floors >= 1 multi-spouse person (#361)
@Markus + @Tobias + @Sara on PR #693: the multi-spouse property is
load-bearing for buildLayout.test.ts (canonical_fixture_assigns_a_position
_to_every_node_with_multiple_spouses + canonical_fixture_multi_spouse
_falls_through_to_displayName_when_no_fromYear). A recapture against a
dataset that lost every multi-spouse person would silently degrade those
tests to vacuous truth.

Add MIN_MULTI_SPOUSE_PERSONS=1 to the capture-script sanity gates. Extract
the validator into a unit-testable TS module next to the fixture; the .mjs
script keeps its inline copy (one-file local utility) but the contract is
now covered by validateFixture.test.ts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 20:39:55 +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).