Лучшие практики с фиктивными сервис-воркерами и Apollo Client при включенном кешировании
У меня есть приложение, использующее клиент Apollo, и когда я добавил MSW, я обнаружил, что кеш возвращает устаревшие запросы с пустыми ответами. Команда MSW указала, что лучше всего запускать тесты для очистки кеша при каждом запросе, но я хочу запустить свое приложение в имитационном режиме и для ручного тестирования.
Выполнение следующих действий при запуске приложения с включенными имитаторами, кажется, работает, но кажется нелогичным помещать в приложение подобную логику. Кто-нибудь еще сталкивался с этим?
const [
fetchUser,
{ loading, error, data, refetch, networkStatus },
] = useLazyQuery(QUERY_GET_USER, {
fetchPolicy: API_MOCKING ? 'network-only' : 'cache-and-network',
nextFetchPolicy: API_MOCKING ? 'network-only' : 'cache-first',
});
1 ответ
Я не могу комментировать ваш исходный вопрос, поэтому я дам ответ, чтобы сообщить вам, что вы можете по крайней мере переопределить fetchPolicy по умолчанию, даже в apollo-boost. Это может сделать настройку fetchPolicy на «только сеть» для ваших тестов немного менее болезненной.
Ссылка: https://github.com/apollographql/apollo-client/issues/3900#issuecomment-420830472