Files
frontend/vitest.config.ts
T
ksv741 f9f0f6921e
Frontend verify / commits (pull_request) Failing after 1m19s
Frontend verify / security (pull_request) Skipped
Frontend verify / verify (pull_request) Skipped
refactor: clarify frontend module ownership
2026-09-29 07:07:36 +03:00

71 lines
1.7 KiB
TypeScript

import react from "@vitejs/plugin-react";
import { playwright } from "@vitest/browser-playwright";
import { fileURLToPath, URL } from "node:url";
import { configDefaults, defineConfig } from "vitest/config";
const CI_TEST_TIMEOUT_MS = 15_000;
const LAYOUT_VIEWPORT_HEIGHT = 900;
const LAYOUT_NARROW_WIDTH = 375;
const LAYOUT_WIDE_WIDTH = 1280;
export default defineConfig({
plugins: [react()],
resolve: { alias: { "@": fileURLToPath(new URL("src", import.meta.url)) } },
test: {
coverage: {
exclude: ["src/test/**", "**/*.test.{ts,tsx}", "**/*.stories.tsx"],
include: ["src/**/*.{ts,tsx}", "packages/*/src/**/*.{ts,tsx}"],
reporter: ["text", "html", "lcov"],
thresholds: {
branches: 75,
functions: 75,
lines: 83,
statements: 82,
},
},
projects: [
{
extends: true,
test: {
environment: "jsdom",
exclude: [...configDefaults.exclude, "**/*.browser.test.tsx"],
name: "unit",
setupFiles: "./src/test/setup.ts",
},
},
{
extends: true,
test: {
browser: {
enabled: true,
headless: true,
instances: [
{
browser: "chromium",
name: "browser-narrow",
viewport: {
height: LAYOUT_VIEWPORT_HEIGHT,
width: LAYOUT_NARROW_WIDTH,
},
},
{
browser: "chromium",
name: "browser-wide",
viewport: {
height: LAYOUT_VIEWPORT_HEIGHT,
width: LAYOUT_WIDE_WIDTH,
},
},
],
provider: playwright(),
},
include: ["src/**/*.browser.test.tsx", "packages/*/src/**/*.browser.test.tsx"],
name: "browser",
},
},
],
// CI runs the UI scenarios with coverage on a slower runner.
testTimeout: process.env.CI ? CI_TEST_TIMEOUT_MS : undefined,
},
});