From e4a9999f2f7e0d42df3fd0fc0dc55b494bb5e9d0 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 4 Jun 2026 13:27:23 +0200 Subject: [PATCH] test(stammbaum): same-level intra-family bond renders solid, not a cross-link (#724) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extends the existing adjacency contract: the couple is exactly adjacent in the run AND, because both parents are roots (same structural level), the displaced parent edge stays solid — layout.crossLinks is empty for this case. Co-Authored-By: Claude Opus 4.8 --- frontend/src/lib/person/genealogy/layout/buildLayout.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/src/lib/person/genealogy/layout/buildLayout.test.ts b/frontend/src/lib/person/genealogy/layout/buildLayout.test.ts index faa8d9ed..5fcf7f98 100644 --- a/frontend/src/lib/person/genealogy/layout/buildLayout.test.ts +++ b/frontend/src/lib/person/genealogy/layout/buildLayout.test.ts @@ -306,6 +306,11 @@ describe('buildLayout — multi-spouse ordering (#361)', () => { if (p.y !== posA2.y) continue; expect(p.x <= minX || p.x >= maxX).toBe(true); } + + // Same-level bond (both parents are roots): the displaced parent edge + // can be ordered adjacent, so it stays a solid connector — NOT a dashed + // cross-link. The cross-link set is therefore empty for this case. + expect(layout.crossLinks).toEqual([]); }); it('canonical_fixture_multi_spouse_falls_through_to_displayName_when_no_fromYear', () => {