Pensionierung als Eigenschaft der Person: Treiber, Tests, Spezifikation 0.35
Deploy App / deploy (push) Successful in 1m57s

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 13:52:40 +02:00
parent 1865db5de7
commit 0f656f4070
6 changed files with 675 additions and 37 deletions
+14 -1
View File
@@ -68,12 +68,25 @@ describe("Datenbank-Migrationen", () => {
expect(scenCols).not.toContain("startYear");
expect(scenCols).not.toContain("userId"); // Eigentümer hängt am Plan
// Person trägt nur noch das Pensionsalter -- Name und Alter beschreiben den Haushalt.
// Person trägt Pensionsalter und Planungshorizont -- Name und Alter beschreiben den
// Haushalt und liegen am Plan.
const personCols = await cols("Person");
expect(personCols).toContain("retirementAge");
expect(personCols).toContain("planningHorizonAge");
expect(personCols).not.toContain("name");
expect(personCols).not.toContain("age");
// Der Pensionierungs-Entscheid hängt am ELEMENT und bewusst an keiner Phase (0.34) --
// nur so überlebt er eine Verschiebung der Zeitachse.
expect(await cols("FinancialElement")).toContain("retirementDecision");
// Er muss NULL zulassen: Ohne erfassten Entscheid gelten die Vorgaben.
const rd = await db.query<{ is_nullable: string }>(
`SELECT is_nullable FROM information_schema.columns
WHERE table_name='FinancialElement' AND column_name='retirementDecision'`
);
expect(rd.rows[0]?.is_nullable).toBe("YES");
// Ein Plan ohne Haushaltsform wäre nicht rechenbar.
const hh = await db.query<{ is_nullable: string }>(
`SELECT is_nullable FROM information_schema.columns