diff --git a/dashboard/frontend/vitest.config.js b/dashboard/frontend/vitest.config.js index 69168d2..797c196 100644 --- a/dashboard/frontend/vitest.config.js +++ b/dashboard/frontend/vitest.config.js @@ -1,6 +1,31 @@ import { defineConfig } from 'vitest/config'; import { svelte } from '@sveltejs/vite-plugin-svelte'; +const sveltePlugin = svelte({ + hot: !process.env.VITEST ? { + preserveLocalState: true + } : false, + compilerOptions: { + dev: true + } +}); + +// Vitest 3 bundles its own Vite which may not expose `server.config.server`, +// causing the Svelte HMR plugin's configureServer to crash. Wrap it safely. +if (process.env.VITEST) { + const plugins = Array.isArray(sveltePlugin) ? sveltePlugin : [sveltePlugin]; + for (const p of plugins) { + if (p.configureServer) { + const orig = p.configureServer; + p.configureServer = function(server) { + try { return orig.call(this, server); } catch (e) { + if (!(e instanceof TypeError)) throw e; + } + }; + } + } +} + export default defineConfig({ plugins: [ svelte({