QC Master Test Plan
Cross-module link checks
Cross-module link checks — documentation pending.
Complete
Cross-module link QC verifies that every entity reference across modules resolves correctly — both forward (a CoverageArticle’s parentEventId points to a real Event) and reverse (the founder profile’s "Mentioned in coverage" rail contains every article that named them). The graph is the platform’s value-add; broken links erode that value invisibly.
Forward-link integrity
- Every CoverageArticle.parentEventId resolves to an existing CalendarEvent. Missing parent = the article is orphaned and should fail the build.
- Every mentionedXxxId on a CoverageArticle resolves to an existing entity in its target module. Stale IDs are stripped at render but should be caught at draft-save.
- Every relatedXxxIds on a CalendarEvent resolves. Same rule — stripped at render, warned at admin save.
- Every founder.relatedStartupIds + startup.founderIds bidirectional pair is consistent — founder F claiming startup S must coexist with startup S claiming founder F.
- EditorialArticle.relatedXxxIds — same integrity rule.
Reverse-lookup correctness
- On a founder profile, "Mentioned in coverage" rail contains every CoverageArticle whose mentionedFounderIds includes this founder. Count + IDs must match.
- On a startup details page, "Mentioned in coverage" rail same correctness rule.
- On a CalendarEvent details page, "Coverage" section lists every CoverageArticle with parentEventId = this event.
- On a founder profile, "Speaking history" rail contains every CalendarEvent with this founder in relatedFounderIds.
- On a Founder File details page, "Coverage that references this file" block resolves correctly.
