Module: Webmock::Graphql::StubGraphqlRequest

Included in:
Webmock::Graphql
Defined in:
lib/webmock/graphql.rb

Instance Method Summary collapse

Instance Method Details

#stub_graphql_request(name, url = nil, **args) ⇒ Object

stub_graphql_request(:hoge, a: 1, b: 2)



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/webmock/graphql.rb', line 131

def stub_graphql_request(name, url = nil, **args)
  builder_context_class = Webmock::Graphql.stub_hash[name]
  raise "stub #{name} is not registered" unless builder_context_class

  stub_graphql_context = builder_context_class.new(**args)

  url ||= Webmock::Graphql.default_url
  raise "url is not set" if url.nil?

  WebMock.stub_request(:post, url).with(
    body: {
      query: stub_graphql_context.query,
      variables: stub_graphql_context.variables
    }
  ).to_return(
    body: {
      data: stub_graphql_context.data,
      errors: stub_graphql_context.errors
    }.to_json,
    headers: {"Content-Type" => "application/json"}
  )
end