-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjest.config.ts
52 lines (46 loc) · 1.41 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
import type { Config } from "jest"
import * as fsPromises from "fs/promises"
const setupFilesAfterEnv = async (): Promise<string[]> => {
const setupFilesAfterEnvPath = "./tests/helpers/jest/setupFilesAfterEnv/"
return (await fsPromises.readdir(`${setupFilesAfterEnvPath}`)).map(
fileName => `${setupFilesAfterEnvPath}/${fileName}`,
)
}
const setupFiles = async (): Promise<string[]> => {
const setupFilesPath = "./tests/helpers/jest/setupFiles/"
return (await fsPromises.readdir(`${setupFilesPath}`)).map(
fileName => `${setupFilesPath}/${fileName}`,
)
}
const transformIgnorePatterns = [
"node_modules/(?!(@react-native|react-native)/)",
]
const collectCoverageFrom = ["./src/**", "!src/types/**"]
const minimumCoveragePercentage = 100
const coverageThreshold = {
global: {
lines: minimumCoveragePercentage,
functions: minimumCoveragePercentage,
branches: minimumCoveragePercentage,
statements: minimumCoveragePercentage,
},
}
export default async (): Promise<Config> => {
return {
projects: [
{
preset: "react-native",
setupFilesAfterEnv: await setupFilesAfterEnv(),
setupFiles: await setupFiles(),
},
],
transform: {
"^.+\\.(ts|tsx|js|jsx)$": "babel-jest",
},
transformIgnorePatterns,
coverageProvider: "v8",
collectCoverageFrom,
coverageThreshold,
coverageReporters: ["json-summary", "text", "lcov"],
}
}