Skip to content

Reject data entities shadowing generated GraphQL operation roots - #325

Open
theman6660 wants to merge 1 commit into
KLR-Pattern:masterfrom
theman6660:fix/reserved-root-collisions
Open

theman6660 wants to merge 1 commit into
KLR-Pattern:masterfrom
theman6660:fix/reserved-root-collisions

Conversation

@theman6660

Copy link
Copy Markdown
Contributor

The reserved-name check only examines entities that contribute operations. A data-only entity named Query or Mutation bypasses it, even when another entity causes a root of that name to be generated. The resulting SDL contains two same-named type definitions and introspection also becomes ambiguous.

Reject the collision when a corresponding operation root will actually be generated. Data-only names without such a root keep their existing behavior. Tests cover both GraphQLHandler and standalone SchemaBuilder, either entity declaration order, and unaffected schema controls.

Before the fix, 8 new collision cases failed and the normal-schema control passed. Added two more positive controls for names with no generated root. GraphQL and UseCase suites with all 11 new cases: 438 passed, 1 skipped. Ruff and git diff --check passed.

Prepared with OpenAI Codex assistance. No production usage, human review or upstream CI is claimed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant