Как отправить мутацию на тестирование в Laravel используя (пакет Lighthouse) - PullRequest
0 голосов
/ 25 октября 2018

в этом посте автор сделал такой пример помощника, а использованный пакет - Маяк

public function graphql(string $query)
{
    return $this->post('/graphql', [
      'query' => $query
    ]);
}

и поэтому может использоваться какэто:

$response = $this->graphql("{articles(first: 10) { edges { node { title } } } }");

но я могу реализовать это на мутации?если, например, у меня есть мутация:

type Mutation {
   sampleMutation(
      id: ID!
   )
}

Я не уверен, как это сделать с мутацией.

1 Ответ

0 голосов
/ 26 июня 2019

Можно тестировать мутации.

В новейшей версии Lighthouse у вас теперь есть черта, которую вы можете добавить в свой тестовый класс под названием MakesGraphQLRequests.
Взято из их документов - следующий пример того, как создатьтест на мутацию.

public function testCreatePost(): void
{
    /** @var \Illuminate\Foundation\Testing\TestResponse $response */
    $response = $this->postGraphQL([
        'query' => '
            mutation CreatePost($title: String!) {
                createPost(title: $title) {
                    id
                }
            }
        ',
        'variables' => [
            'title' => 'Automatic testing proven to reduce stress levels in developers'
        ],
    ]);
}

Полученный вами объект ответа будет содержать результат json, как в вашей мутации.Так что здесь вы можете просто сделать любые утверждения JSON, как вы это обычно делаете с Laravel.
В их документации есть некоторые примеры о том, как может выглядеть проверка на json.

Отказ от ответственности: я являюсь автором упомянутой статьи.

...