@nuxt/test-utils
Version:
Test utilities for Nuxt
22 lines (21 loc) • 1.02 kB
JavaScript
import { Suspense, defineComponent, h, onErrorCaptured, provide } from "vue";
import { isNuxtError, useNuxtApp, useRoute } from "#imports";
import { PageRouteSymbol } from "#app/components/injections";
export default defineComponent({
setup(_options, { slots }) {
const nuxtApp = useNuxtApp();
provide(PageRouteSymbol, useRoute());
const done = nuxtApp.deferHydration();
const results = nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup");
if (import.meta.dev && results && results.some((i) => i && "then" in i)) {
console.error("[nuxt] Error in `vue:setup`. Callbacks must be synchronous.");
}
onErrorCaptured((err, target, info) => {
nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
if (isNuxtError(err) && (err.fatal || err.unhandled)) {
return false;
}
});
return () => h(Suspense, { onResolve: done }, slots.default?.());
}
});