Я создаю rspe c помощник для проверки моих запросов в GraphQL.
Пока это мой помощник:
def mutation_params(name, attributes:, return_types:)
{
query:
<<~GQL
mutation {
#{name}(
input: { attributes: #{attributes} })
#{return_types}
}
GQL
}
end
, и я должен объявить attributes
следующим образом:
let(:attributes) do
<<~GQL
{
email: "#{email_param}",
password: "#{password_param}"
}
GQL
end
Теперь я хочу знать, что я может сделать так, чтобы можно было просто передать мой arguments
как ha sh и заставить метод mutations_params
построить GQL из этого ha sh, перебирая их.
let(:attributes) do
{
email: email_param,
password: password_param
}
end
Что-то вроде:
def mutation_params(name, attributes:, return_types)
gql_attributes = <<~GQL
{
}
GQL
attributes.each do |key, value|
gql_attributes merge with
<<~GQL
"#{key}": "#{value}"
GQL
end
{
query:
<<~GQL
mutation {
#{name}(
input: { attributes: #{gql_attributes} })
#{return_types}
}
GQL
}
end
, но это, очевидно, не работает. Я думаю, что моя проблема в том, что я не совсем понимаю, что это за <<~GQL
и как им манипулировать.