diff --git a/packages/nuxt-vitest/src/config.ts b/packages/nuxt-vitest/src/config.ts index f7b897d0..1d06be93 100644 --- a/packages/nuxt-vitest/src/config.ts +++ b/packages/nuxt-vitest/src/config.ts @@ -61,6 +61,10 @@ export async function getVitestConfigFromNuxt( test: { ...options.viteConfig.test, dir: options.nuxt.options.rootDir, + environmentOptions: { + ...options.viteConfig.test?.environmentOptions, + nuxtRuntimeConfig: options.nuxt.options.runtimeConfig, + }, environmentMatchGlobs: [ ['**/*.nuxt.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', 'nuxt'], ['{test,tests}/nuxt/**.*', 'nuxt'], diff --git a/packages/vitest-environment-nuxt/src/index.ts b/packages/vitest-environment-nuxt/src/index.ts index dd95d21a..78d7d347 100644 --- a/packages/vitest-environment-nuxt/src/index.ts +++ b/packages/vitest-environment-nuxt/src/index.ts @@ -11,7 +11,7 @@ import { export default { name: 'nuxt', - async setup() { + async setup(_, environmentOptions) { const win = new (GlobalWindow || Window)() as any as Window & { __app: App __registry: Set @@ -26,6 +26,7 @@ export default { config: { public: {}, app: { baseURL: '/' }, + ...environmentOptions?.nuxtRuntimeConfig }, data: {}, state: {}, diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index ffff9227..4e3d888a 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -25,4 +25,9 @@ export default defineNuxtConfig({ }, }, }, + runtimeConfig: { + public: { + hello: 'world', + }, + } }) diff --git a/playground/tests/nuxt/config.spec.ts b/playground/tests/nuxt/config.spec.ts new file mode 100644 index 00000000..6ea1b445 --- /dev/null +++ b/playground/tests/nuxt/config.spec.ts @@ -0,0 +1,9 @@ +import { it, expect } from 'vitest' + +it('should return the runtimeConfig from nuxt.config', () => { + const config = useRuntimeConfig(); + expect(config).toBeTypeOf('object'); + expect(config?.public).toEqual({ + hello: 'world' + }) +}) \ No newline at end of file