В настоящее время я использую jest для проведения модульного тестирования с собственным приложением реагирования (expo CLI), но при тестировании рендеринга вполне нормально, когда я импортирую какие-либо компоненты из реагирующего нативного, но если я делаю это из других (например, реагирующих уроженец-щ-котенок). Там будет ошибка, как на картинке ниже. Может кто-нибудь, пожалуйста, помогите мне Спасибо заранее!
Вот когда я делаю снимок с реактивным компонентом
Когда я делаю снимок, который существует компонент пользовательского интерфейса котенка
Я настроил "transformIgnorePatterns" в пакете. json, но не работает
Мой пакет. json
"jest": {
"transform": {
"^.+\\.(tsx|ts)?$": "ts-jest"
},
"preset": "jest-expo",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json"
]
},
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|@ui-kitten/components|react-native-ui-kitten|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base)"
],
"husky": {
"hooks": {
"pre-commit": "npm run lint",
"pre-push": "npm run lint"
}
}
Мой jest.config. js
const {defaults} = require('jest-config');
module.exports = {
// ...
moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts', 'tsx'],
preset: "jest-expo",
// ...
};
Мой babel.config. js
const path = require('path');
const Config = require('./config');
// FIXME: Resolve `transform[stderr]: Could not resolve` command-line warnings.
// FIXME: Reproducible when starting with clearing cache (npm start -- -c)
//
// TODO: Framework path aliasing even not needed here. Replace?
// TODO: Replace nested package.json-s with aliases
const moduleResolverConfig = {
root: path.resolve('./'),
alias: {
'@kitten/theme': path.resolve(Config.KITTEN_PATH, 'theme'),
'@kitten/ui': path.resolve(Config.KITTEN_PATH, 'ui'),
'@eva-design/eva': path.resolve(Config.MAPPING_PATH),
'@eva-design/processor': path.resolve(Config.PROCESSOR_PATH),
},
};
module.exports = function (api) {
api.cache(true);
const presets = [
'babel-preset-expo',
];
const plugins = [
['module-resolver', moduleResolverConfig],
];
return { presets, plugins };
};