import { defineConfig } from "vitest/config"; export default defineConfig({ test: { globals: false, environment: "node", pool: "forks", setupFiles: ["./tests/setup/polyfills.ts"], include: ["src/**/*.test.ts"], exclude: ["dist/**", "node_modules/**"], server: { deps: { inline: ["@scure/bip39"], }, }, coverage: { provider: "istanbul", reporter: ["text", "html", "lcov"], include: ["src/**/*.ts"], exclude: [ "src/**/*.test.ts", "src/**/*.types.ts", "src/**/*.schemas.ts", "src/**/index.ts", "src/__benchmarks__/**", // bin/keychain.ts contains the auto-exec guard at the bottom // (`if process.argv...; process.exit(main(...))`) which can't be // exercised in a test runner without spawning a subprocess. // The `main()` function itself IS unit-tested via direct // invocation in src/bin/keychain.test.ts. "src/bin/keychain.ts", ], thresholds: { statements: 100, branches: 100, functions: 100, lines: 100, }, }, testTimeout: 30000, }, });