Summary
Every current test runs against hand-crafted fixtures. Fixtures prove the parser handles patterns we wrote. They do not prove it handles patterns we did not anticipate — barrel files, re-exports, path aliases, generated code, circular imports, non-standard decorator usage.
The first user bug report will come from a real codebase doing something the fixtures don't cover.
What needs to happen
- Identify a well-known public NestJS repository to use as a real-world test target (e.g. the official NestJS sample apps or a widely-used open source NestJS project)
- Add a CI step or test that clones / references the repo and runs
parseProject against it
- Assert the pipeline completes without crashing
- Assert a non-empty graph is produced
- Assert a minimum node count (as a regression guard — if a parser change drops the count significantly, the test fails)
Why this matters
Fixture tests are controlled inputs. Real repos are adversarial inputs. This test is the difference between "it works in our test environment" and "it works on real codebases." A developer tool that breaks on real codebases is not a developer tool.
Acceptance criteria
Summary
Every current test runs against hand-crafted fixtures. Fixtures prove the parser handles patterns we wrote. They do not prove it handles patterns we did not anticipate — barrel files, re-exports, path aliases, generated code, circular imports, non-standard decorator usage.
The first user bug report will come from a real codebase doing something the fixtures don't cover.
What needs to happen
parseProjectagainst itWhy this matters
Fixture tests are controlled inputs. Real repos are adversarial inputs. This test is the difference between "it works in our test environment" and "it works on real codebases." A developer tool that breaks on real codebases is not a developer tool.
Acceptance criteria
parseProjectcompletes without throwing on the real repo