Summary
parseProject in src/parser/index.ts — the orchestration function that walks a directory, calls all four extractors, and returns the assembled node list — has no dedicated test file. It is the seam between the parser layer and the graph builder, and the most likely place for integration bugs to hide.
The tests/parser/fixtures/ecommerce-app fixture (40+ files across 9 modules) was built for this purpose but is not referenced by any test.
What needs to happen
- Write an integration test for
parseProject that points at the ecommerce fixture directory
- Assert the expected node count (controllers, services, modules, models)
- Assert the pipeline completes without error
- Assert a representative set of nodes are present with correct names, kinds, and file paths
- Feed the result into
buildGraph to confirm the full pipeline produces a valid, non-empty graph
Why this matters
Unit tests prove each extractor works in isolation. This test proves the product works end-to-end. Without it, there is no test that covers the path a real user takes: point Tracer at a directory, get a graph out.
Acceptance criteria
Summary
parseProjectinsrc/parser/index.ts— the orchestration function that walks a directory, calls all four extractors, and returns the assembled node list — has no dedicated test file. It is the seam between the parser layer and the graph builder, and the most likely place for integration bugs to hide.The
tests/parser/fixtures/ecommerce-appfixture (40+ files across 9 modules) was built for this purpose but is not referenced by any test.What needs to happen
parseProjectthat points at the ecommerce fixture directorybuildGraphto confirm the full pipeline produces a valid, non-empty graphWhy this matters
Unit tests prove each extractor works in isolation. This test proves the product works end-to-end. Without it, there is no test that covers the path a real user takes: point Tracer at a directory, get a graph out.
Acceptance criteria
parseProjectagainsttests/parser/fixtures/ecommerce-appOrderService,AuthController)buildGraphcalled on the result — asserts non-empty graph with edges