import path from "node:path"; import { fileURLToPath } from "node:url"; import { storybookTest } from "@storybook/addon-vitest/vitest-plugin"; import { svelte } from "@sveltejs/vite-plugin-svelte"; import { playwright } from "@vitest/browser-playwright"; import { defineConfig } from "vitest/config"; const dirname = typeof __dirname !== "undefined" ? __dirname : path.dirname(fileURLToPath(import.meta.url)); // More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon export default defineConfig({ plugins: [ svelte({ hot: !process.env.VITEST, }), ], test: { globals: true, environment: "jsdom", setupFiles: ["./config/vitest/setup.ts"], include: ["src/**/*.test.{js,ts}"], exclude: ["src/**/*.e2e.{js,ts}"], projects: [ { extends: true, plugins: [ // The plugin will run tests for the stories defined in your Storybook config // See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest storybookTest({ configDir: path.join(dirname, "config/storybook"), }), ], test: { include: ["src/**/*.stories.@(js|ts|svelte)"], browser: { enabled: true, headless: true, provider: playwright({}), instances: [ { browser: "chromium", }, ], }, setupFiles: ["./config/storybook/vitest.setup.ts"], }, }, ], }, resolve: { alias: { $lib: path.resolve("./src/shared/lib"), $shared: path.resolve("./src/shared"), $pages: path.resolve("./src/pages"), $features: path.resolve("./src/features"), $entities: path.resolve("./src/entities"), $widgets: path.resolve("./src/widgets"), }, }, });