-
Notifications
You must be signed in to change notification settings - Fork 1
/
jest.config.ts
64 lines (56 loc) · 1.37 KB
/
jest.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
// TypeScript用の設定
preset: 'ts-jest',
testEnvironment: 'node',
// ESM対応
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
'^@/(.*)$': '<rootDir>/src/$1'
},
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{
useESM: true,
},
],
},
// グローバルセットアップ
setupFilesAfterEnv: [
'<rootDir>/src/lib/__tests__/helpers/setup.ts'
],
// テストファイルのパターン
testMatch: [
"**/__tests__/**/*.(spec|test).ts"
],
testPathIgnorePatterns: [
"/node_modules/",
"/helpers/"
],
// テストタイムアウトの設定
testTimeout: 10000, // 10秒
slowTestThreshold: 5000, // 5秒以上を遅いテストとして警告
// カバレッジ設定
collectCoverage: true,
coverageDirectory: "coverage",
coverageReporters: ["text", "lcov", "clover"],
coverageThreshold: {
global: {
branches: 80,
functions: 90,
lines: 80,
statements: 80,
},
},
// モック設定
clearMocks: true,
resetMocks: true,
restoreMocks: true,
// エラー表示の改善
verbose: true,
// モジュール解決の設定
moduleDirectories: ['node_modules', 'src'],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
};