diff --git a/src/fetch.ts b/src/fetch.ts index c23d5c43..39958998 100644 --- a/src/fetch.ts +++ b/src/fetch.ts @@ -234,7 +234,7 @@ export const useFetch = (callback: Fetch) => { } vm._fetchDelay = - typeof vm.$options.fetchDelay === 'number' ? vm.$options.fetchDelay : 200 + typeof vm.$options.fetchDelay === 'number' ? vm.$options.fetchDelay : 0 vm.$fetch = callFetches.bind(vm) diff --git a/test/e2e/fetch.ts b/test/e2e/fetch.ts index ccc6df20..f993c7d3 100644 --- a/test/e2e/fetch.ts +++ b/test/e2e/fetch.ts @@ -40,6 +40,16 @@ test('Refetches with $fetch', async t => { await expectOnPage('loading email') }) +test('TTFB is lower than 100ms', async t => { + await navigateTo('/ttfb') + const ttfbRegex = /TTFB: (\d+)ms/ + const selector = await Selector('*').withText(new RegExp(ttfbRegex, 'i')) + const text = await selector.innerText + const [, msString] = /TTFB: (\d+)ms/.exec(text)! + const ms = Number(msString) + await t.expect(ms).lte(100) +}) + test("Doesn't overwrite methods and getters", async () => { await navigateTo('/') await expectOnPage('computed') diff --git a/test/fixture/pages/index.vue b/test/fixture/pages/index.vue index 4d526405..a325cbae 100644 --- a/test/fixture/pages/index.vue +++ b/test/fixture/pages/index.vue @@ -41,6 +41,9 @@
  • meta
  • +
    + TTFB: {{ ttfb }}ms +
    @@ -50,6 +53,7 @@ import { ref, computed, useFetch, + onMounted } from '@nuxtjs/composition-api' import ChildComp from '../components/comp.vue' @@ -73,11 +77,17 @@ export default defineComponent({ if (process.client) email.value = await fetcher('long@load.com', 2000) }) + const ttfb = ref(-1) + onMounted(() => { + ttfb.value = globalThis.performance.getEntriesByType('navigation')[0].responseStart + }) + return { name, email, computedProp, myFunction, + ttfb } }, }) diff --git a/test/fixture/pages/ttfb.vue b/test/fixture/pages/ttfb.vue new file mode 100644 index 00000000..afc83082 --- /dev/null +++ b/test/fixture/pages/ttfb.vue @@ -0,0 +1,33 @@ + + +