module Artemis::TestHelper

TODO: Write documentation for TestHelper

Constants

GraphQLFixture

Public Instance Methods

graphql_requests() click to toggle source

Returns out-going GraphQL requests.

# File lib/artemis/test_helper.rb, line 51
def graphql_requests
  Artemis::Adapters::TestAdapter.requests
end
stub_graphql(service, query_name, arguments = :__unspecified__) click to toggle source

Creates an object that stubs a GraphQL request for the given service. No mock response is registered until the to_return method.

# test/fixtures/graphql/metaphysics/artist.yml
leonardo_da_vinci:
  data:
    artist:
      name: Leonardo da Vinci
      birthday: 1452/04/15

# In a test:
stub_graphql(Metaphysics, :artist).to_return(:leonardo_da_vinci)

response = Metaphysics.artist(id: "leonardo-da-vinci")

response.data.artist.name     # => "Leonardo da Vinci"
response.data.artist.birthday # => "1452/04/15"

Test responses could also be parameterized by specifying the arguments argument for the query name.

stub_graphql(Metaphysics, :artist, id: "pablo-picasso").to_return(:pablo_picasso)
stub_graphql(Metaphysics, :artist, id: "leonardo-da-vinci").to_return(:leonardo_da_vinci)

pablo_picasso = Metaphysics.artist(id: "pablo-picasso")
da_vinci      = Metaphysics.artist(id: "leonardo-da-vinci")

pablo_picasso.data.artist.name # => "Pablo Picasso"
da_vinci.data.artist.name      # => "Leonardo da Vinci"
# File lib/artemis/test_helper.rb, line 45
def stub_graphql(service, query_name, arguments =  :__unspecified__)
  StubbingDSL.new(service.to_s, query_name, graphql_fixture_files, arguments)
end