Skip to content

Commit 72cc8b7

Browse files
authored
fix: ensure query object is traversed (#270)
* Add a broken test * Ensure the new type is traversed
1 parent c366287 commit 72cc8b7

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

lib/apollo-federation/schema.rb

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,15 @@ def link_namespace
4242
end
4343

4444
def query(new_query_object = nil)
45-
if new_query_object
46-
@orig_query_object = new_query_object
47-
else
48-
if !@federation_query_object
49-
@federation_query_object = federation_query(original_query)
50-
@federation_query_object.define_entities_field(schema_entities)
45+
return super if new_query_object.nil? && @query_object
5146

52-
super(@federation_query_object)
53-
end
47+
@orig_query_object = new_query_object
48+
federation_query_object = federation_query(original_query)
49+
federation_query_object.define_entities_field(schema_entities)
5450

55-
super
56-
end
51+
super(federation_query_object)
52+
53+
federation_query_object
5754
end
5855

5956
private

spec/apollo-federation/schema_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require 'spec_helper'
44
require 'graphql'
55
require 'apollo-federation/schema'
6+
require 'apollo-federation/object'
67

78
RSpec.describe ApolloFederation::Schema do
89
describe '.federation_version' do
@@ -97,4 +98,22 @@
9798
expect(schema.federation_2?).to be(true)
9899
end
99100
end
101+
102+
describe '.query' do
103+
it 'traverses the query type' do
104+
cat_type = Class.new(GraphQL::Schema::Object) do
105+
graphql_name 'Cat'
106+
end
107+
query_type = Class.new(GraphQL::Schema::Object) do
108+
graphql_name 'Query'
109+
field :cat, cat_type, null: false
110+
end
111+
schema = Class.new(GraphQL::Schema) do
112+
include ApolloFederation::Schema
113+
query query_type
114+
end
115+
116+
expect(schema.get_type('Cat')).to eq(cat_type)
117+
end
118+
end
100119
end

0 commit comments

Comments
 (0)