Skip to content

Commit 26210b9

Browse files
committed
feat(EnumType) raise UnresolvedValueError for unknown values
1 parent 8438979 commit 26210b9

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

lib/graphql/enum_type.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def coerce_result(value, warden = nil)
118118
if enum_value
119119
enum_value.name
120120
else
121-
raise("Can't resolve enum #{name} for #{value}")
121+
raise(UnresolvedValueError, "Can't resolve enum #{name} for #{value}")
122122
end
123123
end
124124

@@ -135,5 +135,8 @@ class EnumValue
135135

136136
lazy_defined_attr_accessor :name, :description, :deprecation_reason, :value
137137
end
138+
139+
class UnresolvedValueError < GraphQL::Error
140+
end
138141
end
139142
end

spec/graphql/enum_type_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
end
1919

2020
it "raises when a result value can't be coerced" do
21-
assert_raises {
21+
assert_raises(GraphQL::EnumType::UnresolvedValueError) {
2222
enum.coerce_result(:nonsense)
2323
}
2424
end
2525

2626
describe "resolving with a warden" do
2727
module ExampleWarden
28-
def enum_values(enum_type)
28+
def self.enum_values(enum_type)
2929
[]
3030
end
3131
end
@@ -34,7 +34,7 @@ def enum_values(enum_type)
3434
# OK
3535
assert_equal("YAK", enum.coerce_result("YAK"))
3636
# NOT OK
37-
assert_raises {
37+
assert_raises(GraphQL::EnumType::UnresolvedValueError) {
3838
enum.coerce_result("YAK", ExampleWarden)
3939
}
4040
end

spec/graphql/schema/mask_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ def error_messages(query_result)
430430
unit(name: "Uvular Trill") { ... on Phoneme { manner } }
431431
}
432432
|
433-
assert_raises(RuntimeError) {
433+
assert_raises(GraphQL::EnumType::UnresolvedValueError) {
434434
MaskHelpers.query_with_mask(query_string, mask)
435435
}
436436
end

0 commit comments

Comments
 (0)