#751·graphql

Increase tests coverage.

Author: chris-ramonCreated Jun 20, 2026Updated Jun 20, 2026

Coverage Analysis

Overall coverage: 80.8% (5,326 covered / 6,588 statements, 1,262 uncovered)


Files with highest impact on overall coverage (excluding test/bench/examples)

File Coverage Uncovered Total Stmts Impact if 100%
language/ast/type_definitions.go 0.0% 91 91 +1.38pp
language/ast/values.go 0.0% 57 57 +0.87pp
plan_cache_normalize.go 80.1% 44 221 +0.67pp
language/ast/definitions.go 0.0% 43 43 +0.65pp
language/visitor/visitor.go 90.6% 29 310 +0.44pp
plan.go 92.8% 27 373 +0.41pp
language/ast/selections.go 0.0% 25 25 +0.38pp
language/ast/types.go 0.0% 19 19 +0.29pp
schema.go 92.3% 18 235 +0.27pp
plan_cache.go 81.1% 18 95 +0.27pp
language/location/location.go 0.0% 16 16 +0.24pp
rules.go 97.8% 16 730 +0.24pp
values.go 92.7% 14 191 +0.21pp
subscription.go 84.5% 11 71 +0.17pp
rules_overlapping_fields_can_be_merged.go 96.7% 9 269 +0.14pp
util.go 89.7% 9 87 +0.14pp
scalars.go 97.1% 8 273 +0.12pp
language/ast/name.go 0.0% 6 6 +0.09pp
language/ast/arguments.go 0.0% 6 6 +0.09pp
type_info.go 96.1% 5 128 +0.08pp
validator.go 95.4% 5 108 +0.08pp
language/source/source.go 0.0% 5 5 +0.08pp
language/ast/document.go 0.0% 5 5 +0.08pp
language/ast/directives.go 0.0% 5 5 +0.08pp
language/ast/location.go 0.0% 3 3 +0.05pp
graphql.go 88.9% 3 27 +0.05pp
located.go 94.4% 1 18 +0.02pp
language/lexer/lexer.go 99.6% 1 282 +0.02pp

Key takeaways

Best targets for real logic (not just type definitions)

  1. plan_cache_normalize.go — 80.1% coverage, 44 uncovered. Biggest code-level gap with actual logic.
  2. plan.go — 92.8% coverage, 27 uncovered. High statement count, core execution logic.
  3. language/visitor/visitor.go — 90.6% coverage, 29 uncovered. Core AST traversal.
  4. schema.go — 92.3% coverage, 18 uncovered. Schema building logic.
  5. plan_cache.go — 81.1% coverage, 18 uncovered. Caching logic.
  6. subscription.go — 84.5% coverage, 11 uncovered. Subscription execution.
  7. util.go — 89.7% coverage, 9 uncovered. Utility functions.
  8. values.go — 92.7% coverage, 14 uncovered. Value coercion/resolution.

These files contain actual logic and edge cases that aren't covered by existing tests.

Bulk coverage wins (language/ast/*)

The language/ast/ files (type_definitions, values, definitions, selections, types, etc.) collectively account for ~255 uncovered statements at 0% coverage (~20% of all uncovered code). These are primarily struct/type definitions used across the codebase. They would give the biggest numerical boost (+3.7pp total) but require adding AST package-level tests that exercise these types directly.