import path from "node:path";
import { mergeConfig } from "vitest/config";
import { nodeVitestConfig } from "@repo/core-typescript/vitest.base.node";

export default mergeConfig(nodeVitestConfig, {
  test: {
    coverage: {
      exclude: [
        // Ambient declaration files have no runtime code
        "src/**/*.d.ts",
        // Pure TypeScript interface files — erased at runtime, not unit-testable
        "src/**/*.interface.ts",
        // DI symbol constants — boilerplate, covered implicitly by bind-* tests
        "src/**/symbols.ts",
        // tRPC context factory — wired at app bootstrap, not unit-testable
        "src/trpc/context.ts",
        // Sentry client init — browser/node SDK init, tested in apps
        "src/instrumentation/sentry/**",
      ],
    },
  },
  resolve: {
    alias: { "@": path.resolve(__dirname, "./src") },
  },
});
