@@ -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