Closed5
Nuxt3 で useFetch/useAsyncData を利用したページ(DOM)のユニットテストを書きたい
3.1 時点では
- auto import への Mock 未サポート
-
vi.stubGlobal("useFetch", vi.fn())
等で Mock する必要あり
-
- script setup にて useFetch/useAsyncData から取得した
data
がflushPromises
しても描画されない
という状態。
現状は以下から知れる。
にて、mockImport
等から auto import 対象の関数を Mock できる。
mountSuspended
がサポートされれば、Page/Component のテストも書きやすくなるかも?
現状は、以下のように記載してユニットテストするしかなさそう。
<script setup lang="ts">
const hello = ref<string | null >(null)
onBeforeMount(async () => {
hello.value = (await useFetch("/api/hello")).data.value
})
</script>
refresh, error などの機構が使えないため $fetch
で事足りるが以下 Issue と同様の type error が発生する。
useFetch 等は Mock する必要あるが、top await が発生するものは上記のようなテスト方法で対処可能
解決しているのでクローズ
このスクラップは2023/12/12にクローズされました