Created
September 26, 2024 21:20
-
-
Save pachun/37706f3126702d590d05f4e9a7f8c565 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 projectPresets = ["jest-expo/ios", "jest-expo/android"] | |
const projects = async (): Promise< | |
{ preset: string; setupFilesAfterEnv: string[]; setupFiles: string[] }[] | |
> => { | |
return await Promise.all( | |
projectPresets.map(async preset => ({ | |
preset, | |
setupFilesAfterEnv: await setupFilesAfterEnv(), | |
setupFiles: await setupFiles(), | |
})), | |
) | |
} | |
const transformIgnorePatterns = [ | |
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)", | |
] | |
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: await projects(), | |
transformIgnorePatterns, | |
coverageProvider: "v8", | |
collectCoverageFrom, | |
coverageThreshold, | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment