Test Plan
This document maps the test suite to the requirements it verifies. Each test file is a traceable [item] referencing the requirements it covers.
Test Coverage
Test file: test/v2-unified-item-architecture.test.ts
Tests the RequirementsTraceabilityExtension orchestrator — initialization, processing, query methods, role statistics, lifecycle. Covers the public API surface of the main extension class.
Relation |
ID |
Title |
verifies |
REQ-001 — Single |
|
verifies |
REQ-002 — |
|
verifies |
REQ-003 — |
|
verifies |
REQ-004 — |
|
verifies |
REQ-005 — Old macro syntax generates deprecation error |
|
verifies |
REQ-029 — Configurable matrix generation with coverage calculations |
|
verifies |
REQ-030 — Role statistics reporting |
|
verifies |
REQ-034 — Mustache template rendering |
Test file: test/antora-extension.test.ts
Tests the AntoraTraceabilityExtension — initialization with default config, preset, config path, and disabled state. Tests event handler registration, content processing via contentClassified event, matrix generation via sitePublished event, and API access patterns.
Relation |
ID |
Title |
verifies |
REQ-035 — Antora extension integration |
|
verifies |
REQ-040 — Context-aware link generation |
Test file: test/cli.test.ts
Tests the Commander-based CLI — process command (valid content, empty content, invalid paths, malformed macros), matrix command (generation, empty graph), validate command (invalid graph state), export command (empty graph), stats command (empty statistics), preset commands (invalid names, init, listing), and help command.
Relation |
ID |
Title |
verifies |
REQ-009 — Configuration is required for validation |
|
verifies |
REQ-010 — Configuration file location |
|
verifies |
REQ-026 — Export command in CLI |
|
verifies |
REQ-036 — CLI commands |
Test file: test/config-loader.test.ts
Tests the ConfigLoader — initialization, built-in preset listing and loading, preset structure validation, configuration loading from file, missing file handling, invalid YAML handling, role and relation validation, matrix definition retrieval, configuration merging, and error messages for invalid configurations and preset names.
Relation |
ID |
Title |
verifies |
REQ-006 — Configuration defines roles |
|
verifies |
REQ-007 — Configuration defines relations |
|
verifies |
REQ-008 — Configuration defines matrices |
|
verifies |
REQ-010 — Configuration file location |
|
verifies |
REQ-011 — Configuration validation |
|
verifies |
REQ-012 — Configuration can extend presets |
|
verifies |
REQ-018 — Built-in preset configurations |
|
verifies |
REQ-019 — Each preset contains complete configuration |
|
verifies |
REQ-020 — Each preset includes documentation |
|
verifies |
REQ-021 — Each preset includes Neo4j Cypher queries |
|
verifies |
REQ-022 — Presets have independent versioning |
|
verifies |
REQ-023 — Users can define custom presets |
Test file: test/graph-and-api.test.ts
Tests the TraceabilityGraph (Section 4 — extended queries: merge, getRelatedItems, getItemsWithRelationTo, getRelationshipsByRoles, findPath, getImpactAnalysis) and RequirementsTraceabilityExtension API methods (Section 5 — processFiles, validate, export, coverage, config access, preset management, lifecycle).
Relation |
ID |
Title |
verifies |
REQ-013 — Role-based relation validation |
|
verifies |
REQ-014 — Directional relation checking |
|
verifies |
REQ-015 — Error messages list allowed relations |
|
verifies |
REQ-016 — Warnings for unknown roles |
|
verifies |
REQ-017 — Graceful degradation for unknown roles |
|
verifies |
REQ-031 — Graph path finding |
|
verifies |
REQ-032 — Impact analysis |
|
verifies |
REQ-033 — Graph merge |
Test file: test/matrix-generator.test.ts
Tests the MatrixGenerator — basic matrix generation with empty graph, matrix generation with default and named configurations, role-based matrix rows and columns, coverage percentage calculation and status determination, coverage relation filtering, CSV export, HTML export, JSON export, coverage report generation, and edge cases (no matching items, missing titles, missing source files, unknown matrix names).
Relation |
ID |
Title |
verifies |
REQ-008 — Configuration defines matrices |
|
verifies |
REQ-029 — Configurable matrix generation with coverage calculations |
|
verifies |
REQ-037 — Matrix row items are clickable links |
|
verifies |
REQ-038 — Matrix cell items are clickable links |
|
verifies |
REQ-039 — Source file tooltips on matrix links |
|
verifies |
REQ-042 — Backward compatibility without LinkResolver |
|
verifies |
REQ-043 — Non-HTML matrix outputs unchanged |
Test file: test/neo4j-exporter.test.ts
Tests the Neo4jExporter — empty graph CSV export, items and relationships in CSV, all attributes in export, special character escaping, empty graph Cypher export, items and relationships in Cypher, includeContent option, includeAllAttributes option, output directory creation, multiple role types, and export result counts and file paths.
Relation |
ID |
Title |
verifies |
REQ-024 — Neo4j CSV export |
|
verifies |
REQ-025 — Neo4j Cypher export |
|
verifies |
REQ-027 — Export includes all item attributes |
|
verifies |
REQ-028 — Export is optional |
Test file: test/relationship-link-substitution.test.ts
Tests the in-memory regex substitution that replaces relationship macros with Asciidoctor xrefs. Covers same-page xref generation, cross-page xref generation with basename path resolution, orphan reference handling, non-relationship text preservation, hyphenated/dotted IDs, missing sourceFile fallback, and surrounding text preservation.
Relation |
ID |
Title |
verifies |
REQ-010 — Configuration file location |