spec/graphql/query/literal_input_spec.rb in graphql-1.6.3 vs spec/graphql/query/literal_input_spec.rb in graphql-1.6.4
- old
+ new
@@ -18,10 +18,23 @@
arg + ctx[:val]
end
end
resolve ->(t, a, c) { a[:value] }
end
+
+ field :fieldWithArgumentThatIsBadByDefault do
+ type types.Int
+ argument :value do
+ type types.Int
+ default_value 7
+ prepare ->(arg, ctx) do
+ GraphQL::ExecutionError.new("Always bad")
+ end
+ end
+
+ resolve ->(*args) { 42 }
+ end
end
GraphQL::Schema.define(query: query)
}
@@ -31,9 +44,14 @@
end
it "prepares default values" do
result = schema.execute("{ addToArgumentValue }", context: { val: 4 })
assert_equal(7, result["data"]["addToArgumentValue"])
+ end
+
+ it "raises an execution error if the default value is bad" do
+ result = schema.execute("{ fieldWithArgumentThatIsBadByDefault }", context: { })
+ assert_equal(result["errors"], [{"message" => "Always bad"}])
end
it "prepares values from variables" do
result = schema.execute("query ($value: Int!) { addToArgumentValue(value: $value) }", variables: { "value" => 1}, context: { val: 2 } )
assert_equal(result["data"]["addToArgumentValue"], 3)