Проблема при тестировании DateTimePickerModal с помощью библиотеки тестирования Jest & React Native

Я пытаюсь написать модульные тесты для React Native Modal DateTime Picker, используя Jest и React Native Testing Library. Я прошел 3 (как мне кажется) стандартных реквизита RN:

accessible: true,
accessibilityLabel: testLabel,
testID: testLabel,

Вот мои тесты:

fireEvent(dobField, 'handleCalendarPress');
const calendarPicker = wrapper.getByTestId('BDD--ThirdPartyComp--DateTimePickerModal');
fireEvent(calendarPicker, 'onConfirm', ageOver18);

В dobField это мое настраиваемое поле ввода, которое я создал, и когда оно "нажато", я могу найти модальное окно testIDчто я добавил. Однако это третье условие, запускающее событиеonConfirm, Я получаю эту ошибку:

Error: Uncaught [TypeError: this._picker.current.setNativeProps is not a function]

Я читал документы RN (ссылка) по "прямым манипуляциям", в которых говорится о настройке / использованииnative props. Однако похоже, что это должно быть реализовано в самом модальном файле / lib, а не с моей стороны?

Итак, мои вопросы:

  1. Есть ли у кого-нибудь опыт написания тестов для этого стороннего компонента?
  2. Есть ли у кого-нибудь дополнительная информация о том, что означает TypeError?
  3. Есть ли лучший способ написать модульные тесты для этого модального окна?
  4. Есть ли какие-то элементы / элементы, которые мне не хватает для правильного взаимодействия с компонентом через Jest?

1 ответ

Я использую react-native-datepicker и получить то же самое this._picker.setNativeProps is not a functionошибка. Я исправил с издевательствомDatePickerIOS, поскольку react-native-datepicker использует DatePickerIOS для выбора даты iOS.

jest.mock('react-native/Libraries/Components/DatePicker/DatePickerIOS.ios.js', () => {
  const React = require('React');
  return class MockPicker extends React.Component {
  render() {
    return React.createElement('DatePicker', {date: '21.07.2020'});
  }
 };
});
Другие вопросы по тегам