const { compilerOptions }  = require("./tsconfig.json");

/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
  preset: "ts-jest",
  testEnvironment: "node",
  testPathIgnorePatterns: ["dist"],
  transform: {
    '^.+\\.tsx?$': [
      'ts-jest',
      { tsconfig: compilerOptions },
    ],
  },
  collectCoverage: true,
  collectCoverageFrom: ["**/src/**/*.ts"],
  coveragePathIgnorePatterns: ["node_modules/", "__test__/"],
  coverageReporters: ["html", "text-summary"],
  coverageThreshold: {
    global: {
      branches: 100,
    },
    // shared enums
    "packages/db-enums/src/": {
      branches: 0
    },
    "packages/orm/src/repository": {
      branches: 0
    },
    // test utilities
    "packages/orm-test/src/": {
      branches: 0
    },
    "packages/result-test/src/": {
      branches: 0
    }
  }
};
