You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create a dedicated test project (GraphZen.SpecConformance.Tests) that maps directly to the GraphQL specification's section structure, with executable test coverage and spec traceability.
Motivation
We have solid test coverage across the codebase, but tests aren't organized as spec conformance tests with traceability back to specific spec sections. There's no way to answer "what percentage of the spec do we cover?" or "which spec rules are we missing?"
Approach
One test project (GraphZen.SpecConformance.Tests) with folder-per-chapter structure
[SpecSection("X.Y.Z", "Heading")] attribute on each conformance class, with hierarchical filtering
Coverage manifest + reflection-based coverage test ensuring every spec subsection has a class
The spec is the sole source of truth; graphql-js is a supplement for test cases, not a coverage guide
Authoring guidance lives in test/GraphZen.SpecConformance.Tests/CLAUDE.md
Each phase starts with a design stage (consult spec, consult graphql-js, determine infrastructure needs) before implementation — Phase 1 patterns don't necessarily transfer to other sections.
Summary
Create a dedicated test project (
GraphZen.SpecConformance.Tests) that maps directly to the GraphQL specification's section structure, with executable test coverage and spec traceability.Motivation
We have solid test coverage across the codebase, but tests aren't organized as spec conformance tests with traceability back to specific spec sections. There's no way to answer "what percentage of the spec do we cover?" or "which spec rules are we missing?"
Approach
GraphZen.SpecConformance.Tests) with folder-per-chapter structure[SpecSection("X.Y.Z", "Heading")]attribute on each conformance class, with hierarchical filteringtest/GraphZen.SpecConformance.Tests/CLAUDE.mdEach phase starts with a design stage (consult spec, consult graphql-js, determine infrastructure needs) before implementation — Phase 1 patterns don't necessarily transfer to other sections.
Phases
Phase 1 Results
ExpectValid/ExpectErrorsAPI withToDeepEqualerror assertions