Skip to content

Increase tests coverage. #751

Description

@chris-ramon

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions