我有一个简单的graphql-ruby
突变:
class Mutations::User::Destroy < Mutations::BaseMutation
argument :confirm, GraphQL::Types::Boolean, required: true
payload_type GraphQL::Types::Boolean
def resolve(confirm:)
true
end
end
该突变的父模块为:
module Mutations
class BaseMutation < GraphQL::Schema::RelayClassicMutation
# ....
在规范中,我有以下内容:
let(:destroy_query) do
%(
mutation UserDestroy($input: DestroyInput!) {
userDestroy(input: $input)
}
)
end
it "works" do
post "/graphql", params: {query: destroy_query, variables: {"input" => {"confirm" => true}}}
这个查询从graphql-ruby生成一个错误响应:
{"errors"=>[{"extensions"=>{"problems"=>[{"explanation"=>"Could not coerce value \"true\" to Boolean"...estroyInput! was provided invalid value for confirm (Could not coerce value \"true\" to Boolean)"}]}
然而,当我在Apollo Studio中测试查询时,它运行良好。我无法在这里传递查询中的true
值。这是一个bug还是我做错了什么?我正在考虑将参数类型更改为自定义的类型,如YES
字符串。但如果有人知道其他方法,我将非常感谢您的见解。谢谢。
1条答案
按热度按时间knsnq2tg1#
我看不出DestroyInput是如何被使用的。
我会这么说
你给某个东西命名为“DestoryInput”,但是你从来没有创建一个属性类型来描述它。什么叫做“DestroyInput”?