sistema-de-chamados/vitest.config.mts

61 lines
1.7 KiB
TypeScript

import path from "path"
import { fileURLToPath } from "url"
import { defineConfig } from "vitest/config"
import { playwright } from "@vitest/browser-playwright"
import tsconfigPaths from "vite-tsconfig-paths"
const __dirname = path.dirname(fileURLToPath(import.meta.url))
const srcDir = path.resolve(__dirname, "./src")
const convexDir = path.resolve(__dirname, "./convex")
const isCI = process.env.CI === "true"
const isBrowserRun = process.env.VITEST_BROWSER === "true"
export default defineConfig({
root: __dirname,
plugins: [tsconfigPaths()],
resolve: {
alias: {
"@": srcDir,
"@/convex": convexDir,
},
},
test: {
globals: true,
setupFiles: isBrowserRun ? ["./tests/setup.browser.ts"] : ["./vitest.setup.node.ts"],
pool: (process.env.VITEST_POOL as "threads" | "forks" | "vmThreads" | undefined) ?? "threads",
testTimeout: isBrowserRun ? 30000 : 15000,
coverage: {
provider: "v8",
include: ["src/**/*.{ts,tsx}", "convex/**/*.ts"],
exclude: ["**/*.d.ts", "**/*.test.*", "tests/**"],
reportsDirectory: "./coverage",
},
deps: {
registerNodeLoader: true,
},
alias: {
"@": srcDir,
"@/convex": convexDir,
},
browser: {
enabled: isBrowserRun,
provider: playwright({
launchOptions: {
headless: isCI ? true : undefined,
},
}),
instances: [
{
browser: "chromium",
launch: {
headless: isCI ? true : false,
},
},
],
trace: isCI ? "on-first-retry" : "off",
},
environment: "jsdom",
include: ["src/**/*.test.ts", "tests/**/*.test.ts"],
exclude: isBrowserRun ? [] : ["tests/browser/**/*.browser.test.ts"],
},
})