Skip to content

Commit 0dfb6a2

Browse files
committed
fix: merging fields correctly
1 parent d27fb6e commit 0dfb6a2

15 files changed

Lines changed: 1820 additions & 154 deletions

execution/engine/federation_integration_static_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ subscription UpdatedPrice {
7777
}`
7878

7979
gqlRequest := &graphql.Request{
80-
OperationName: "",
80+
OperationName: "UpdatedPrice",
8181
Variables: nil,
8282
Query: query,
8383
}
@@ -96,7 +96,8 @@ subscription UpdatedPrice {
9696
})
9797

9898
go func() {
99-
_ = engine.Execute(execCtx, gqlRequest, &resultWriter)
99+
err := engine.Execute(execCtx, gqlRequest, &resultWriter)
100+
require.NoError(t, err)
100101
}()
101102

102103
assert.Eventuallyf(t, func() bool {

execution/engine/federation_integration_test.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,43 @@ func TestFederationIntegrationTest(t *testing.T) {
466466
ctx, cancel := context.WithCancel(context.Background())
467467
t.Cleanup(cancel)
468468
resp := gqlClient.Query(ctx, setup.GatewayServer.URL, testQueryPath("queries/abstract_object.graphql"), nil, t)
469-
expected := `{"data":{"abstractList":[{"__typename":"ConcreteListItem1","obj":{"__typename":"SomeType1","name":"1","age":1}},{"__typename":"ConcreteListItem2","obj":{"__typename":"SomeType2","name":"2","height":2}}]}}`
469+
expected := `{"data":{"otherInterfaces":[{"someObject":{"a":"A","b":"B"}},{"someObject":{"a":"AA","c":"CC"}},{"someObject":{"a":"AAA"}}]}}`
470+
assert.Equal(t, compact(expected), string(resp))
471+
})
472+
473+
t.Run("Abstract object non shared", func(t *testing.T) {
474+
setup := federationtesting.NewFederationSetup(addGateway(false))
475+
defer setup.Close()
476+
477+
gqlClient := NewGraphqlClient(http.DefaultClient)
478+
ctx, cancel := context.WithCancel(context.Background())
479+
t.Cleanup(cancel)
480+
resp := gqlClient.Query(ctx, setup.GatewayServer.URL, testQueryPath("queries/abstract_object_non_shared.graphql"), nil, t)
481+
expected := `{"data":{"otherInterfaces":[{"someObject":{"a":"A"}},{"someObject":{"b":"BB"}},{"someObject":{"c":"CCC"}}]}}`
482+
assert.Equal(t, compact(expected), string(resp))
483+
})
484+
485+
t.Run("Abstract object nested", func(t *testing.T) {
486+
setup := federationtesting.NewFederationSetup(addGateway(false))
487+
defer setup.Close()
488+
489+
gqlClient := NewGraphqlClient(http.DefaultClient)
490+
ctx, cancel := context.WithCancel(context.Background())
491+
t.Cleanup(cancel)
492+
resp := gqlClient.Query(ctx, setup.GatewayServer.URL, testQueryPath("queries/abstract_object_nested.graphql"), nil, t)
493+
expected := `{"data":{"someNestedInterfaces":[{"__typename":"SomeNestedType1","otherInterfaces":[{"__typename":"SomeType1","someObject":{"a":"1.A","c":"1.C","b":"1.B"}},{"__typename":"SomeType2","someObject":{"a":"1.AA","c":"1.CC"}},{"__typename":"SomeType3","someObject":{"a":"1.AAA"}}]},{"__typename":"SomeNestedType2","otherInterfaces":[{"__typename":"SomeType1","someObject":{"a":"2.A","c":"2.C","b":"2.B"}},{"__typename":"SomeType2","someObject":{"a":"2.AA","c":"2.CC"}},{"__typename":"SomeType3","someObject":{"a":"2.AAA"}}]}]}}`
494+
assert.Equal(t, compact(expected), string(resp))
495+
})
496+
497+
t.Run("Abstract object nested reverse", func(t *testing.T) {
498+
setup := federationtesting.NewFederationSetup(addGateway(false))
499+
defer setup.Close()
500+
501+
gqlClient := NewGraphqlClient(http.DefaultClient)
502+
ctx, cancel := context.WithCancel(context.Background())
503+
t.Cleanup(cancel)
504+
resp := gqlClient.Query(ctx, setup.GatewayServer.URL, testQueryPath("queries/abstract_object_nested_reverse.graphql"), nil, t)
505+
expected := `{"data":{"someNestedInterfaces":[{"__typename":"SomeNestedType1","otherInterfaces":[{"someObject":{"a":"1.A","c":"1.C","b":"1.B"},"__typename":"SomeType1"},{"someObject":{"a":"1.AA","c":"1.CC"},"__typename":"SomeType2"},{"someObject":{"a":"1.AAA"},"__typename":"SomeType3"}]},{"__typename":"SomeNestedType2","otherInterfaces":[{"someObject":{"a":"2.A","c":"2.C","b":"2.B"},"__typename":"SomeType1"},{"someObject":{"a":"2.AA","c":"2.CC"},"__typename":"SomeType2"},{"someObject":{"a":"2.AAA"},"__typename":"SomeType3"}]}]}}`
470506
assert.Equal(t, compact(expected), string(resp))
471507
})
472508

0 commit comments

Comments
 (0)