jest-preset
A Jest preset with support for React Native platform-specific extensions and TypeScript.
In a TypeScript-only Package (Non-React Native)
Section titled “In a TypeScript-only Package (Non-React Native)”Add preset: "@rnx-kit/jest-preset" to your Jest config:
module.exports = { preset: "@rnx-kit/jest-preset", ...};@rnx-kit/jest-preset will detect that you’re not targeting React Native and
exclude any React Native specific configurations.
In a React Native Package
Section titled “In a React Native Package”There are three ways to use this preset when targeting React Native, depending on your personal preference.
Single jest.config.js
Section titled “Single jest.config.js”If you prefer to use a single Jest config, you can provide the target platform
via an environment variable. First, add preset: "@rnx-kit/jest-preset" to your
Jest config:
module.exports = { preset: "@rnx-kit/jest-preset", ...};Then specify the target platform when running Jest:
RN_TARGET_PLATFORM=ios npm run jestMultiple jest.config.js
Section titled “Multiple jest.config.js”Alternatively, you can have a Jest config file for each platform, e.g.:
module.exports = require("@rnx-kit/jest-preset")("ios", { ...});Then specify the config file to use when running Jest:
npm run jest --config jest.config.ios.jsUse @rnx-kit/cli
Section titled “Use @rnx-kit/cli”You can specify the target platform using the rnx-test command provided by
@rnx-kit/cli. First, add preset: "@rnx-kit/jest-preset" to your Jest config:
module.exports = { preset: "@rnx-kit/jest-preset", ...};Then specify the target platform when running rnx-test:
npm run react-native rnx-test --platform iosIn an Out-of-Tree Platform Package
Section titled “In an Out-of-Tree Platform Package”Add preset: "@rnx-kit/jest-preset" to your Jest config:
module.exports = { preset: "@rnx-kit/jest-preset", ...};The target platform will be deduced by reading react-native.config.js at the
package root.