Skip to content

Commit

Permalink
Merge pull request #76 from movio/fix-fragment-response-mismatch
Browse files Browse the repository at this point in the history
Don't error out when all fragment expansions miss
  • Loading branch information
suessflorian authored Oct 20, 2021
2 parents be8383a + a0e01af commit dbac320
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 4 deletions.
49 changes: 49 additions & 0 deletions execution_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4983,6 +4983,55 @@ func TestQueryWithBoundaryFields(t *testing.T) {
f.checkSuccess(t)
}

func TestQuerySelectionSetFragmentMismatchesWithResponse(t *testing.T) {
f := &queryExecutionFixture{
services: []testService{{
schema: `
interface Transport {
speed: Int!
}
type Bicycle implements Transport {
speed: Int!
dropbars: Boolean!
}
type Plane implements Transport {
speed: Int!
winglength: Int!
}
type Query {
selectedTransport: Transport!
}`,
handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{
"data": {
"selectedTransport": {
"speed": 30
}
}
}`))
}),
}},
query: `query {
selectedTransport {
speed
... on Plane {
__typename
winglength
}
}
}`,
expected: `{
"selectedTransport": {
"speed": 30
}
}`,
}
f.checkSuccess(t)
}

func TestQueryWithArrayBoundaryFields(t *testing.T) {
f := &queryExecutionFixture{
services: []testService{
Expand Down
4 changes: 0 additions & 4 deletions query_execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -844,10 +844,6 @@ func unionAndTrimSelectionSetRec(objectTypename string, schema *ast.Schema, sele
filteredSelectionSet = append(filteredSelectionSet, selection)
case *ast.InlineFragment:
fragment := selection
if objectTypename == "" {
return nil, errors.New("unionAndTrimSelectionSetRec: expected __typename")
}

if fragment.ObjectDefinition.IsAbstractType() &&
fragmentImplementsAbstractType(schema, fragment.ObjectDefinition.Name, fragment.TypeCondition) &&
objectTypenameMatchesDifferentFragment(objectTypename, fragment) {
Expand Down

0 comments on commit dbac320

Please sign in to comment.