Как обновить InMemoryCache с помощью apollo / graphql в кипарисе - PullRequest
0 голосов
/ 13 апреля 2020

Я использовал cypress-graphql-mock для успешного завершения вызовов GraphQL. Тем не менее, он все еще требует использования пользовательского интерфейса для запуска API, который будет делать вызовы на заглушку.

Это имеет использование, но очень ограничено. Что я действительно хочу сделать, так это напрямую вызвать конечную точку graphql с cy.request, а затем вручную обновить кеш этими данными. Данные сохраняются в InMemoryCache, который затем передается в ApolloClient. В настоящее время я могу придумать, как правильно обновить кэш, используя client.writeQuery, но он доступен только тогда, когда компонент обернут в import { withApollo } from 'react-apollo';.

. Мне нужно, чтобы client был доступен напрямую. в кипарис, чтобы я мог сделать что-то вроде следующего.

cy.request(
  url: `/graphql`,
  body: { query: some_graphql_query }
).then(res =>
  client.writeQuery({
    query: sameGraphqlQuery,
    data: res
  })
);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...