Я использую 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 чтобы заставить его работать, но это не выглядит хорошим решением.