Тестирование Apollo-Graphql - PullRequest
0 голосов
/ 16 июня 2020

Я использую метод client.query() для запроса с сервера. Я хочу написать тесты для этой функции, используя MockProvider.

Я столкнулся с проблемой из-за асинхронного характера client.query()

// I am writing the  query as follow
const { data, loading } = await client.query({
    query: Todo,
    variables: { name },
    fetchPolicy: 'cache-first'
})
      
      

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать MockProvider с react-testing-library для тестирования вашего реагирующего компонента. Подробнее про MockProvider здесь .

Попробуйте это:

import { act, fireEvent, render } from '@testing-library/react'
import { MockedProvider } from '@apollo/react-testing'

import YourComponent from './path'

const mocks = [
	{
		request: {
			query: Todo,
			variables: {
				query: { name },
			},
		},
		result: {
			data: {
				mockData_here
			},
		},
	},
]

test('it should ...', () => {
  let rendered
  await act(async () => {
    rendered = render(
      <MockedProvider mocks={mocks} addTypename={false}>
          {YourComponent}
      </MockedProvider>
    )
  })
  expect(rendered).toMatchSnapshot()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...