|
1 | | -/** |
2 | | - * For a detailed explanation regarding each configuration property, visit: |
3 | | - * https://jestjs.io/docs/configuration |
4 | | - */ |
5 | | - |
6 | | -/** @type {import('jest').Config} */ |
7 | | -const config = { |
8 | | - // All imported modules in your tests should be mocked automatically |
9 | | - // automock: false, |
10 | | - |
11 | | - // Stop running tests after `n` failures |
12 | | - // bail: 0, |
13 | | - |
14 | | - // The directory where Jest should store its cached dependency information |
15 | | - // cacheDirectory: "/private/var/folders/4_/m2t0ys455s308pbmbv71ft1w0000gp/T/jest_dy", |
16 | | - |
17 | | - // Automatically clear mock calls, instances, contexts and results before every test |
18 | | - // clearMocks: false, |
19 | | - |
20 | | - // Indicates whether the coverage information should be collected while executing the test |
21 | | - // collectCoverage: false, |
22 | | - |
23 | | - // An array of glob patterns indicating a set of files for which coverage information should be collected |
24 | | - // collectCoverageFrom: undefined, |
25 | | - |
26 | | - // The directory where Jest should output its coverage files |
27 | | - // coverageDirectory: undefined, |
28 | | - |
29 | | - // An array of regexp pattern strings used to skip coverage collection |
30 | | - // coveragePathIgnorePatterns: [ |
31 | | - // "/node_modules/" |
32 | | - // ], |
33 | | - |
34 | | - // Indicates which provider should be used to instrument code for coverage |
35 | | - // coverageProvider: "babel", |
36 | | - |
37 | | - // A list of reporter names that Jest uses when writing coverage reports |
38 | | - // coverageReporters: [ |
39 | | - // "json", |
40 | | - // "text", |
41 | | - // "lcov", |
42 | | - // "clover" |
43 | | - // ], |
44 | | - |
45 | | - // An object that configures minimum threshold enforcement for coverage results |
46 | | - // coverageThreshold: undefined, |
47 | | - |
48 | | - // A path to a custom dependency extractor |
49 | | - // dependencyExtractor: undefined, |
50 | | - |
51 | | - // Make calling deprecated APIs throw helpful error messages |
52 | | - // errorOnDeprecated: false, |
53 | | - |
54 | | - // The default configuration for fake timers |
55 | | - // fakeTimers: { |
56 | | - // "enableGlobally": false |
57 | | - // }, |
58 | | - |
59 | | - // Force coverage collection from ignored files using an array of glob patterns |
60 | | - // forceCoverageMatch: [], |
61 | | - |
62 | | - // A path to a module which exports an async function that is triggered once before all test suites |
63 | | - // globalSetup: undefined, |
64 | | - |
65 | | - // A path to a module which exports an async function that is triggered once after all test suites |
66 | | - // globalTeardown: undefined, |
67 | | - |
68 | | - // A set of global variables that need to be available in all test environments |
69 | | - // globals: {}, |
70 | | - |
71 | | - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. |
72 | | - // maxWorkers: "50%", |
73 | | - |
74 | | - // An array of directory names to be searched recursively up from the requiring module's location |
75 | | - // moduleDirectories: [ |
76 | | - // "node_modules" |
77 | | - // ], |
78 | | - |
79 | | - // An array of file extensions your modules use |
80 | | - // moduleFileExtensions: [ |
81 | | - // "js", |
82 | | - // "mjs", |
83 | | - // "cjs", |
84 | | - // "jsx", |
85 | | - // "ts", |
86 | | - // "tsx", |
87 | | - // "json", |
88 | | - // "node" |
89 | | - // ], |
90 | | - |
91 | | - // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module |
92 | | - moduleNameMapper: { |
93 | | - "^(\\.{1,2}/.*)\\.js$": "$1", |
94 | | - }, |
95 | | - |
96 | | - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader |
97 | | - // modulePathIgnorePatterns: [], |
98 | | - |
99 | | - // Activates notifications for test results |
100 | | - // notify: false, |
101 | | - |
102 | | - // An enum that specifies notification mode. Requires { notify: true } |
103 | | - // notifyMode: "failure-change", |
104 | | - |
105 | | - // A preset that is used as a base for Jest's configuration |
106 | | - preset: 'ts-jest', |
107 | | - |
108 | | - // Run tests from one or more projects |
109 | | - // projects: undefined, |
110 | | - |
111 | | - // Use this configuration option to add custom reporters to Jest |
112 | | - // reporters: undefined, |
113 | | - |
114 | | - // Automatically reset mock state before every test |
115 | | - // resetMocks: false, |
116 | | - |
117 | | - // Reset the module registry before running each individual test |
118 | | - // resetModules: false, |
119 | | - |
120 | | - // A path to a custom resolver |
121 | | - // resolver: undefined, |
122 | | - |
123 | | - // Automatically restore mock state and implementation before every test |
124 | | - // restoreMocks: false, |
125 | | - |
126 | | - // The root directory that Jest should scan for tests and modules within |
127 | | - // rootDir: undefined, |
128 | | - |
129 | | - // A list of paths to directories that Jest should use to search for files in |
130 | | - // roots: [ |
131 | | - // "<rootDir>" |
132 | | - // ], |
133 | | - |
134 | | - // Allows you to use a custom runner instead of Jest's default test runner |
135 | | - // runner: "jest-runner", |
136 | | - |
137 | | - // The paths to modules that run some code to configure or set up the testing environment before each test |
138 | | - // setupFiles: [], |
139 | | - |
140 | | - // A list of paths to modules that run some code to configure or set up the testing framework before each test |
141 | | - // setupFilesAfterEnv: [], |
142 | | - |
143 | | - // The number of seconds after which a test is considered as slow and reported as such in the results. |
144 | | - // slowTestThreshold: 5, |
145 | | - |
146 | | - // A list of paths to snapshot serializer modules Jest should use for snapshot testing |
147 | | - // snapshotSerializers: [], |
148 | | - |
149 | | - // The test environment that will be used for testing |
| 1 | +/** @type {import('ts-jest').JestConfigWithTsJest} **/ |
| 2 | +export default { |
| 3 | + preset: "ts-jest/presets/default-esm", |
150 | 4 | testEnvironment: "node", |
151 | 5 | extensionsToTreatAsEsm: [".ts"], |
152 | | - |
153 | | - // Options that will be passed to the testEnvironment |
154 | | - // testEnvironmentOptions: {}, |
155 | | - |
156 | | - // Adds a location field to test results |
157 | | - // testLocationInResults: false, |
158 | | - |
159 | | - // The glob patterns Jest uses to detect test files |
160 | | - testMatch: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[tj]s?(x)"], |
161 | | - |
162 | | - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped |
163 | | - // testPathIgnorePatterns: [ |
164 | | - // "/node_modules/" |
165 | | - // ], |
166 | | - |
167 | | - // The regexp pattern or array of patterns that Jest uses to detect test files |
168 | | - // testRegex: [], |
169 | | - |
170 | | - // This option allows the use of a custom results processor |
171 | | - // testResultsProcessor: undefined, |
172 | | - |
173 | | - // This option allows use of a custom test runner |
174 | | - // testRunner: "jest-circus/runner", |
175 | | - |
176 | | - // A map from regular expressions to paths to transformers |
| 6 | + moduleNameMapper: { |
| 7 | + "^(\\.{1,2}/.*)\\.js$": "$1", // Map .js to real paths for ESM |
| 8 | + }, |
177 | 9 | transform: { |
178 | 10 | "^.+\\.tsx?$": [ |
179 | 11 | "ts-jest", |
180 | 12 | { |
181 | 13 | useESM: true, |
| 14 | + tsconfig: "tsconfig.jest.json", // Use specific tsconfig file for Jest |
182 | 15 | }, |
183 | 16 | ], |
184 | 17 | }, |
185 | | - |
186 | | - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation |
187 | | - // transformIgnorePatterns: [ |
188 | | - // "/node_modules/", |
189 | | - // "\\.pnp\\.[^\\/]+$" |
190 | | - // ], |
191 | | - |
192 | | - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them |
193 | | - // unmockedModulePathPatterns: undefined, |
194 | | - |
195 | | - // Indicates whether each individual test should be reported during the run |
196 | | - // verbose: undefined, |
197 | | - |
198 | | - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode |
199 | | - // watchPathIgnorePatterns: [], |
200 | | - |
201 | | - // Whether to use watchman for file crawling |
202 | | - // watchman: true, |
| 18 | + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], |
203 | 19 | }; |
204 | | - |
205 | | -export default config; |
0 commit comments