Skip to content

Commit 3e4aab4

Browse files
committed
Analysis::AST::FieldUsage supports deprecated enum
1 parent 31c504a commit 3e4aab4

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

lib/graphql/analysis/ast/field_usage.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ def extract_deprecated_arguments(argument_values)
4343

4444
if argument.definition.type.kind.input_object?
4545
extract_deprecated_arguments(argument.value.arguments.argument_values) # rubocop:disable Development/ContextIsPassedCop -- runtime args instance
46+
elsif argument.definition.type.kind.enum?
47+
enum_value = argument.definition.type.values[argument.value]
48+
@used_deprecated_arguments << argument.definition.path if enum_value.deprecation_reason
4649
elsif argument.definition.type.list?
4750
argument
4851
.value

spec/graphql/analysis/ast/field_usage_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,20 @@
138138
end
139139
end
140140

141+
describe "query with deprecated enum argument" do
142+
let(:query_string) {%|
143+
query {
144+
fromSource(source: YAK) {
145+
id
146+
}
147+
}
148+
|}
149+
150+
it "keeps track of deprecated arguments" do
151+
assert_equal ['Query.fromSource.source'], result[:used_deprecated_arguments]
152+
end
153+
end
154+
141155
describe "query with an array argument sent as null" do
142156
let(:query_string) {%|
143157
query {

0 commit comments

Comments
 (0)