Как заставить атрибут данных работать с Flow JS и React-Native - PullRequest
0 голосов
/ 11 марта 2020

Я использую Flow JS с реагирующим родным, и мои компоненты имеют свойства data-testid для целей тестирования.

<TouchableOpacity data-testid="touchableOpacityTestId">
  ...
</TouchableOpacity>

И когда я запускаю Flow, я получаю несколько ошибок, таких как «Не удается создать TouchableOpacity с data-testid, потому что data-testid отсутствует в TouchableOpacity ". Сам тест работает нормально. Я также попробовал это с testID - без ошибок тогда, НО в этом случае по какой-то причине энзим находит много узлов (этот testID абсолютно уникален и существует только для одного узла).

const touchableOpacity = wrapper.find({ testID: 'touchableOpacityTestId' });
touchableOpacity.props().onPress(); // fails here cause there are lots of nodes now

И я получаю эта ошибка: Method “props” is meant to be run on 1 node. 4 found instead.. Если я заменю testID на data-test или любое другое имя, оно будет работать нормально, за исключением того, что поток завершится неудачей.

Какой рекомендуемый способ обработки? Согласно React Testing Recipes мы должны использовать data-customAttr для целей тестирования, но похоже, что Flow сейчас не об этом.

Пока я просто нетипизировал react-native модуль в .flowconfig чтобы заставить его работать, но это не выглядит хорошим решением.

...