Лучшие практики с фиктивными сервис-воркерами и 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

Другие вопросы по тегам