diff --git a/test/fixtures/spa-loader/nuxt.config.ts b/test/fixtures/spa-loader/nuxt.config.ts index bc4c9c786..e40b0471e 100644 --- a/test/fixtures/spa-loader/nuxt.config.ts +++ b/test/fixtures/spa-loader/nuxt.config.ts @@ -1,6 +1,12 @@ export default defineNuxtConfig({ - ssr: false, devtools: { enabled: false }, spaLoadingTemplate: true, + routeRules: { + '/spa': { ssr: false }, + '/ssr': { ssr: true }, + }, + experimental: { + spaPreloaderOutside: false, + }, compatibilityDate: '2024-06-28', }) diff --git a/test/spa-loader-ssr.test.ts b/test/spa-loader-ssr.test.ts deleted file mode 100644 index b876ebbe7..000000000 --- a/test/spa-loader-ssr.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { fileURLToPath } from 'node:url' -import { describe, expect, it } from 'vitest' -import { isWindows } from 'std-env' -import { getBrowser, setup, url } from '@nuxt/test-utils' - -const isWebpack = process.env.TEST_BUILDER === 'webpack' || process.env.TEST_BUILDER === 'rspack' - -await setup({ - rootDir: fileURLToPath(new URL('./fixtures/spa-loader', import.meta.url)), - dev: process.env.TEST_ENV === 'dev', - server: true, - browser: true, - setupTimeout: (isWindows ? 360 : 120) * 1000, - nuxtConfig: { - builder: isWebpack ? 'webpack' : 'vite', - ssr: true, - spaLoadingTemplate: true, - }, -}) - -describe('spa-loader with SSR', () => { - it('should render content without spa-loader', async () => { - const browser = await getBrowser() - const page = await browser.newPage({}) - await page.goto(url('/'), { waitUntil: 'domcontentloaded' }) - - const loader = page.getByTestId('__nuxt-spa-loader') - expect(await loader.isVisible()).toBeFalsy() - - const content = page.getByTestId('content') - await content.waitFor({ state: 'visible' }) - expect(await loader.isHidden()).toBeTruthy() - - await page.close() - }, 60_000) -}) diff --git a/test/spa-loader/spa-preloader-outside-disabled.test.ts b/test/spa-loader/spa-preloader-outside-disabled.test.ts new file mode 100644 index 000000000..83259d0ba --- /dev/null +++ b/test/spa-loader/spa-preloader-outside-disabled.test.ts @@ -0,0 +1,41 @@ +import { fileURLToPath } from 'node:url' +import { describe, expect, it } from 'vitest' +import { isWindows } from 'std-env' +import { $fetch, getBrowser, setup, url } from '@nuxt/test-utils' + +const isWebpack = + process.env.TEST_BUILDER === 'webpack' || + process.env.TEST_BUILDER === 'rspack' + +await setup({ + rootDir: fileURLToPath(new URL('../fixtures/spa-loader', import.meta.url)), + dev: process.env.TEST_ENV === 'dev', + server: true, + browser: true, + setupTimeout: (isWindows ? 360 : 120) * 1000, + nuxtConfig: { + builder: isWebpack ? 'webpack' : 'vite', + spaLoadingTemplate: true, + experimental: { + spaPreloaderOutside: false, + }, + }, +}) + +describe('spaPreloaderOutside flag is disabled', () => { + it('shoul be render loader inside appTag', async () => { + const html = await $fetch('/spa') + expect(html).toContain(`