Проект RN, над которым я работаю, задуман как «только для Android», поэтому не было необходимости добавлять библиотеки типа «response-native-firebase» с cocoapods. Я должен упомянуть заранее, что у меня нет доступа к любому Mac или MacBook для этого.
Вот фрагменты из package.json
...
"scripts": {
"test": "jest"
},
"jest": {
"preset": "react-native"
},
...
и babel.config.js
module.exports = {
presets: [
[
'module:metro-react-native-babel-preset',
{
targets: {
node: 'current',
},
loose: true,
modules: 'auto',
},
],
],
};
Макетная функция для тестирования шутки:
// testing jest
const generateText = (name, age) => {
return `${name} (${age} years old)`;
};
И юнит-тест для него:
import { generateText } from '../actions/authActions';
test('Some test', () => {
const text = generateText('Zuul', 300);
expect(text).toBe('Zuul (300 years old)');
});
При всех этих настройках yarn test
выдает:
RNFirebase core module was not found natively on iOS,
ensure you have correctly included the RNFirebase pod in
your projects `Podfile` and have run `pod install`.
Вопрос в том, есть ли способ заставить шутку пропустить проверки, связанные с ios, и сосредоточиться только на вещах для Android?
Обновление:
По-видимому, есть способ переопределить предварительные настройки jest, поэтому я добавил это в package.json:
"jest": {
"preset": "react-native",
"haste": {
"defaultPlatform": "android",
"platforms": [
"android",
"ios",
"native"
],
"providesModuleNodeModules": [
"react-native"
]
}
},
Теперь у меня есть это сообщение об ошибке:
RNFirebase core module was not found natively on Android,
ensure you have correctly added the RNFirebase and Firebase
gradle dependencies to your `android/app/build.gradle` file.
Что не так, потому что все необходимые зависимости были добавлены в build.gradle:
dependencies {
...
implementation project(':react-native-firebase')
// Firebase dependencies
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation "com.google.firebase:firebase-core:16.0.6"
implementation('com.crashlytics.sdk.android:crashlytics:2.9.5@aar') {
transitive = true
}
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
...
}