Jest тест не работает должным образом с реакцией навигации - PullRequest
1 голос
/ 16 апреля 2019

Я работаю с response-native 0.59 и хочу написать свои первые тесты для моего приложения. Итак, для чтения документов реагирования мне просто нужно выполнить следующую команду yart test, которая выполняет следующий файл:

import 'react-native';
import React from 'react';
import App from '../App';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
  renderer.create(<App />);
});

Это файл по умолчанию для тестирования, когда вы запускаете ваше приложение с реактивной. Но когда я запускаю команду yarn test, проверка не проходит. Следованием является следующее:

FAIL  __tests__/App-test.js
● Test suite failed to run

TypeError: (0 , _reactNavigation.createBottomTabNavigator) is not a function

  43 |
> 44 | const MainStack = createBottomTabNavigator({
     |                                                               ^
  45 |   Home: { screen: Home },
  46 |   Pets: { screen: Pets },
  47 |   Notifications: { screen: UserNotifications },

  at Object.<anonymous> (src/app-navigator.js:44:63)
  at Object.<anonymous> (src/Reducers/navigation.js:2:44)

Это часть моего app-navigator.js файла:

const PetStack = createStackNavigator({
  UpdatePet: { screen: UpdatePet },
}, {
  mode: 'card',
  defaultNavigationOptions: {
    headerStyle: { backgroundColor: 'transparent' }
  }
});

const MainStack = createBottomTabNavigator({
  Home: { screen: Home },
  Pets: { screen: Pets },
  Notifications: { screen: UserNotifications },
  UpdateUser: { screen: UpdateUser },
});

Это ошибочные строки. Это так странно, потому что когда я console.log createStackNavigator регистрирует ложную функцию, но когда я делаю это с createBottomTabNavigator, она регистрирует undefined.

Это моя шутливая конфигурация:

"jest": {
  "preset": "react-native",
  "verbose": true,
  "transform": {
    "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
  },
  "globals": {
    "NODE_ENV": "test"
  },
  "moduleFileExtensions": [
    "js"
  ],
  "moduleDirectories": [
    "src",
    "node_modules"
  ],
  "transformIgnorePatterns": [
    "/node_modules/(?!native-base|react-native-localize|react-navigation|react-navigation-redux-helpers)/"
  ],
  "setupFiles": [
    "./jest-setup.js"
  ]
}

Я прочитал некоторые связанные проблемы и только что нашел this . Они рекомендуют установить ключ inlineRequires на false в node_modules/react-native/jest/preprocessor.js, но он не работает для меня

...