Table of Contents

Testing

This gem provides some features that facilitate testing your GraphQL API. Here is the list of these facilitators:

Important More features will soon be added to both RSpec and Rubocop.

Validating

You can run a request in validation mode, which will go over the whole organize step and return true if the given document, including context and variables, is valid.

:001 > GraphQL.valid?('{ welcome }')
    => true

Stubbing Values

You can easily stub the values received by fields by using prepared data. This feature is not exclusively for testing, but it was created with this intention. Here are some examples on how you can use that:

# Using a simple named argument
GraphQL.execute('{ users { id name } }', data_for: {
  'query.users' => [User.new]
})

# Using a more complex setting from the request instance
request = GraphQL.request
request.prepare_data_for('User.id', [1, 2], repeat: :cycle)
request.execute('{ users { id name } }')

The format is always gql_name.field or {query,mutation,subscription}.field for schema fields.

Read more about prepared data.