[Fusion] Extend federation-gateway-audit satisfiability tests#9787
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends SatisfiabilityValidatorTests with additional satisfiability suites derived from the federation-gateway-audit project, covering more directive/shape scenarios (e.g., @override, @provides, @require, entity-call, schema-shape). It also adapts the suite SDLs to the composite-schemas spec by making reference resolution explicit via @lookup and translating @requires(fields:) patterns into argument-level @require(field:).
Changes:
- Added multiple new satisfiability test cases for audit-derived scenarios, including pass and intentionally-skipped suites for known engine gaps.
- Introduced explicit
@lookup @inaccessibleentry points for resolvable@keytypes to match composite-schemas behavior. - Updated SDLs in the new suites to composite-schemas equivalents (notably argument-level
@require(field:)and updated@override(from:)schema names).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SatisfiabilityValidatorTestswith 15 suites across the@override,@provides,@requires, entity-call, and schema-shape clusters: 13 pass, 2 are committed as[Fact(Skip = …)].@lookupis added for every type with a resolvable@keyin the audit subgraph, since the composite-schemas spec has no implicit reference resolution (Federation's implicit_entitiesresolver becomes an explicit@lookup).@requires(fields:)becomes argument-level@require(field:)(includingpath<ConcreteType>.fieldtype conditions), and@override(from:)uses the helper's uppercase schema names.@require, parent entity calls). Each quotes its blocker and asserts the intendedIsSuccess, so it re-activates once the gap closes.union-intersectionsuite is intentionally not ported: it would require widening an object type to a union containing it at merge time, which is out of scope.Test plan
dotnet test src/HotChocolate/Fusion/test/Fusion.Composition.Tests --filter "FullyQualifiedName~SatisfiabilityValidatorTests"— 61 passed, 2 skipped, 0 failed on net8.0, net9.0, and net10.0.