Skip to content

Commit aacb073

Browse files
committed
Fix accepts_definition on interface parent
1 parent 763f4c5 commit aacb073

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

lib/graphql/schema/interface.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,10 @@ def own_interfaces
7373
end
7474
end
7575

76-
extend DefinitionMethods
7776
# Extend this _after_ `DefinitionMethods` is defined, so it will be used
7877
extend GraphQL::Schema::Member::AcceptsDefinition
78+
79+
extend DefinitionMethods
7980
end
8081
end
8182
end

spec/graphql/schema/member/accepts_definition_spec.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ class BaseField < GraphQL::Schema::Argument
1414
accepts_definition :metadata
1515
end
1616

17+
GraphQL::Schema::Object.accepts_definition(:metadata2)
18+
1719
class BaseObject < GraphQL::Schema::Object
1820
field_class BaseField
1921
accepts_definition :metadata
2022
end
2123

24+
GraphQL::Schema::Interface.accepts_definition(:metadata2)
25+
2226
module BaseInterface
2327
include GraphQL::Schema::Interface
2428
field_class BaseField
@@ -39,10 +43,12 @@ class EnumValue < GraphQL::Schema::EnumValue
3943
module Thing
4044
include BaseInterface
4145
metadata :z, 888
46+
metadata2 :a, :bc
4247
end
4348

4449
class Query < BaseObject
4550
metadata :a, :abc
51+
metadata2 :xyz, :zyx
4652

4753
field :option, Option, null: false do
4854
metadata :a, :def
@@ -55,15 +61,16 @@ class Query < BaseObject
5561
query(Query)
5662
end
5763

58-
5964
it "passes along configs for types" do
6065
assert_equal [:a, 123], AcceptsDefinitionSchema::Option.metadata
6166
assert_equal 123, AcceptsDefinitionSchema::Option.graphql_definition.metadata[:a]
6267
assert_equal [:a, :abc], AcceptsDefinitionSchema::Query.metadata
6368
assert_equal :abc, AcceptsDefinitionSchema::Query.graphql_definition.metadata[:a]
69+
assert_equal :zyx, AcceptsDefinitionSchema::Query.graphql_definition.metadata[:xyz]
6470

6571
assert_equal [:z, 888], AcceptsDefinitionSchema::Thing.metadata
6672
assert_equal 888, AcceptsDefinitionSchema::Thing.graphql_definition.metadata[:z]
73+
assert_equal :bc, AcceptsDefinitionSchema::Thing.graphql_definition.metadata[:a]
6774
end
6875

6976
it "passes along configs for fields and arguments" do

spec/spec_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def rails_should_be_installed?
4040
assign_metadata_flag = ->(target, flag) { target.metadata[flag] = true }
4141
GraphQL::Schema.accepts_definitions(set_metadata: assign_metadata_key)
4242
GraphQL::BaseType.accepts_definitions(metadata: assign_metadata_key)
43+
GraphQL::BaseType.accepts_definitions(metadata2: assign_metadata_key)
4344
GraphQL::Field.accepts_definitions(metadata: assign_metadata_key)
4445
GraphQL::Argument.accepts_definitions(metadata: assign_metadata_key)
4546
GraphQL::Argument.accepts_definitions(metadata_flag: assign_metadata_flag)

0 commit comments

Comments
 (0)