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