Download the PHP package marvinrabe/laravel-graphql-test without Composer
On this page you can find all versions of the php package marvinrabe/laravel-graphql-test. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download marvinrabe/laravel-graphql-test
More information about marvinrabe/laravel-graphql-test
Files in marvinrabe/laravel-graphql-test
Package laravel-graphql-test
Short Description Provides you with a simple GraphQL testing trait.
License MIT
Homepage https://github.com/marvinrabe/laravel-graphql-test
Informations about the package laravel-graphql-test
GraphQL Testing Helper for Laravel
Elegant GraphQL testing utilities for Laravel. Works with any GraphQL library. Especially with Lighthouse.
Installation
You can install the package via composer:
And then add the trait to your TestCase
class:
When your GraphQL endpoint is not /graphql
you have to specify it manually:
``
Usage
Queries
You can write queries like this:
Note that this function returns an \Illuminate\Foundation\Testing\TestResponse
. Therefore you might use any Laravel testing methods. For example:
With nested resources:
Without a third argument it will be assumed that the second one is the selection set:
When you only pass the object name, you get the GraphQLClient
instead of the Laravel TestResponse
:
Mutations
Same as queries:
Argument Order
For simplicity you can find the correct argument order in the following table:
Method | Arguments | Returns |
---|---|---|
query | (object) | GraphQLClient |
query | (object, selectionSet) | TestResponse |
query | (object, arguments, selectionSet) | TestResponse |
mutation | (object) | GraphQLClient |
mutation | (object, selectionSet) | TestResponse |
mutation | (object, arguments, selectionSet) | TestResponse |
Enums
Because PHP has no built in Enum support. You have to use the provided enum helper:
Or create a EnumType
manually:
Headers
You can add additional HTTP headers by using withHeader
or withHeaders
methods provided by Laravel. For example:
$this->withHeaders(["Authorization" => "Bearer TOKEN"])->query('accounts', ['id']);
If you always provide the same headers, you could define them on your TestCase.
Limitations
The QueryBuilder
provided by this library is not safe for use in production code. It is designed for ease of use and does not comply to the GraphQL specifications fully. Use it only for testing purposes! You have been warned.
Testing
License
The MIT License (MIT). Please see License File for more information.