11/*
22 * For a detailed explanation regarding each configuration property, visit:
33 * https://jestjs.io/docs/configuration
4+ *
45 */
6+
7+ /** @type { Exclude<Exclude<import("jest").Config["projects"], undefined>[number], string> } */
8+ const backendProject = {
9+ displayName : "backend" ,
10+ moduleNameMapper : {
11+ "^@core(/(.*)$)?" : "<rootDir>/packages/core/src/$1" ,
12+ "^@backend/auth(/(.*)$)?" : "<rootDir>/packages/backend/src/auth/$1" ,
13+ "^@backend/calendar(/(.*)$)?" : "<rootDir>/packages/backend/src/calendar/$1" ,
14+ "^@backend/common(/(.*)$)?" : "<rootDir>/packages/backend/src/common/$1" ,
15+ "^@backend/dev(/(.*)$)?" : "<rootDir>/packages/backend/src/dev/$1" ,
16+ "^@backend/email(/(.*)$)?" : "<rootDir>/packages/backend/src/email/$1" ,
17+ "^@backend/event(/(.*)$)?" : "<rootDir>/packages/backend/src/event/$1" ,
18+ "^@backend/priority(/(.*)$)?" : "<rootDir>/packages/backend/src/priority/$1" ,
19+ "^@backend/servers(/(.*)$)?" : "<rootDir>/packages/backend/src/servers/$1" ,
20+ "^@backend/sync(/(.*)$)?" : "<rootDir>/packages/backend/src/sync/$1" ,
21+ "^@backend/user(/(.*)$)?" : "<rootDir>/packages/backend/src/user/$1" ,
22+ "^@backend/waitlist(/(.*)$)?" : "<rootDir>/packages/backend/src/waitlist/$1" ,
23+ "^@backend/__tests__(/(.*)$)?" :
24+ "<rootDir>/packages/backend/src/__tests__/$1" ,
25+ } ,
26+
27+ setupFiles : [ "<rootDir>/packages/core/src/__tests__/core.test.init.ts" ] ,
28+ setupFilesAfterEnv : [
29+ // backend init intentionally here to accommodate @shelf /mongodb preset
30+ "<rootDir>/packages/backend/src/__tests__/backend.test.init.ts" ,
31+ "<rootDir>/packages/backend/src/__tests__/backend.test.start.ts" ,
32+ ] ,
33+ testMatch : [ "<rootDir>/packages/backend/**/?(*.)+(spec|test).[tj]s?(x)" ] ,
34+ // A preset that is used as a base for Jest's configuration
35+ preset : "@shelf/jest-mongodb" , // https://jestjs.io/docs/mongodb,
36+ } ;
37+
538/** @type { import("jest").Config } */
6- module . exports = {
39+ const config = {
740 // All imported modules in your tests should be mocked automatically
841 // automock: false,
942
@@ -85,7 +118,7 @@ module.exports = {
85118 // moduleNameMapper: {}
86119
87120 // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
88- // modulePathIgnorePatterns: [],
121+ modulePathIgnorePatterns : [ "<rootDir>/build" ] ,
89122
90123 // Activates notifications for test results
91124 // notify: false,
@@ -144,36 +177,24 @@ module.exports = {
144177 "/node_modules/(?!react-dnd|dnd-core|@react-dnd)" ,
145178 ] ,
146179 } ,
180+ backendProject ,
147181 {
148- displayName : "backend " ,
182+ displayName : "scripts " ,
149183 moduleNameMapper : {
150- "^@core(/(.*)$)?" : "<rootDir>/packages/core/src/$1" ,
151- "^@backend/auth(/(.*)$)?" : "<rootDir>/packages/backend/src/auth/$1" ,
152- "^@backend/calendar(/(.*)$)?" :
153- "<rootDir>/packages/backend/src/calendar/$1" ,
154- "^@backend/common(/(.*)$)?" : "<rootDir>/packages/backend/src/common/$1" ,
155- "^@backend/dev(/(.*)$)?" : "<rootDir>/packages/backend/src/dev/$1" ,
156- "^@backend/email(/(.*)$)?" : "<rootDir>/packages/backend/src/email/$1" ,
157- "^@backend/event(/(.*)$)?" : "<rootDir>/packages/backend/src/event/$1" ,
158- "^@backend/priority(/(.*)$)?" :
159- "<rootDir>/packages/backend/src/priority/$1" ,
160- "^@backend/servers(/(.*)$)?" :
161- "<rootDir>/packages/backend/src/servers/$1" ,
162- "^@backend/sync(/(.*)$)?" : "<rootDir>/packages/backend/src/sync/$1" ,
163- "^@backend/user(/(.*)$)?" : "<rootDir>/packages/backend/src/user/$1" ,
164- "^@backend/waitlist(/(.*)$)?" :
165- "<rootDir>/packages/backend/src/waitlist/$1" ,
166- "^@backend/__tests__(/(.*)$)?" :
167- "<rootDir>/packages/backend/src/__tests__/$1" ,
184+ ...backendProject . moduleNameMapper ,
185+ "^@scripts(/(.*)$)?" : "<rootDir>/packages/scripts/src/$1" ,
186+ "^@scripts/commands(/(.*)$)?" :
187+ "<rootDir>/packages/scripts/src/commands/$1" ,
188+ "^@scripts/common(/(.*)$)?" : "<rootDir>/packages/scripts/src/common/$1" ,
189+ "^@scripts/migrations(/(.*)$)?" :
190+ "<rootDir>/packages/scripts/src/migrations/$1" ,
191+ "^@scripts/seeders(/(.*)$)?" :
192+ "<rootDir>/packages/scripts/src/seeders/$1" ,
168193 } ,
169194
170- setupFiles : [ "<rootDir>/packages/core/src/__tests__/core.test.init.ts" ] ,
171- setupFilesAfterEnv : [
172- // backend init intentionally here to accommodate @shelf /mongodb preset
173- "<rootDir>/packages/backend/src/__tests__/backend.test.init.ts" ,
174- "<rootDir>/packages/backend/src/__tests__/backend.test.start.ts" ,
175- ] ,
176- testMatch : [ "<rootDir>/packages/backend/**/?(*.)+(spec|test).[tj]s?(x)" ] ,
195+ setupFiles : [ ...backendProject . setupFiles ] ,
196+ setupFilesAfterEnv : [ ...backendProject . setupFilesAfterEnv ] ,
197+ testMatch : [ "<rootDir>/packages/scripts/**/?(*.)+(spec|test).[tj]s?(x)" ] ,
177198 // A preset that is used as a base for Jest's configuration
178199 preset : "@shelf/jest-mongodb" , // https://jestjs.io/docs/mongodb,
179200 } ,
@@ -197,6 +218,7 @@ module.exports = {
197218 // rootDir: 'packages/web/',
198219 // rootDir: 'packages/backend/',
199220 rootDir : "./" ,
221+ passWithNoTests : true ,
200222
201223 // A list of paths to directories that Jest should use to search for files in
202224 // roots: [
@@ -272,3 +294,6 @@ module.exports = {
272294 // Whether to use watchman for file crawling
273295 // watchman: true,
274296} ;
297+
298+ // eslint-disable-next-line no-undef
299+ module . exports = config ;
0 commit comments