Closed13

apollo clientのmock providerを使用したテストでモックが効かなくなる問題

kazchimokazchimo
kazchimokazchimo
  • デフォルトではlocalのキャッシュをまず見る
  • cacheがあればリクエストを投げない
kazchimokazchimo

nextFetchPolicy

  • fetchPolicyは最初のexecutionで使用される
  • nextFetchPolicyは二回目以降のexeで仕様
kazchimokazchimo

fetch policyの如何でapolloのモックが効かなくなる問題

kazchimokazchimo
    fetchPolicy: "cache-and-network",

がクエリに指定されているとapolloでのモックが効かなくなった
はずしたら動く

kazchimokazchimo

これあれか、cache-and-networkが最初にcache上のundefinedを即座に返すからそれで初回のデータとしてundefinedが返ってきてるみたいなかんじか

kazchimokazchimo
    nextFetchPolicy: "cache-and-network",

にしたら動く(それはそう感がある
まあ最初のキャッシュがundef返してるで正しいっぽいな

kazchimokazchimo

MockProviderにはdefaultOptionsというのが存在するが、上書きはしてくれないっぽいな

{
          query: {
            fetchPolicy: "no-cache",
          },
        },

を指定してもundefを返す挙動は変わらなかった

kazchimokazchimo

何はともあれnextFetchPolicyを使えば解決するっぽい
初回でネットワーク待っちゃうけど

kazchimokazchimo

もしくはなんかのdomがrenderされるまでテストの中で待つか

このスクラップは2021/12/23にクローズされました