RN code-push: компонент тестирования, который подключается к codePushStatusDidChange - PullRequest
0 голосов
/ 10 мая 2019

Я использую react-native-code-push codePush HOC и запускаю некоторую логику в ответ на перехват события codePushStatusDidChange, в частности, когда статус SyncStatus.UPDATE_INSTALLED.

Мне не повезло узнать, есть ли способ эмулировать события push-кода при работе в режиме разработки, чтобы убедиться, что наш код правильно реагирует на перехват событий. Возможно ли это или необходимо выпускать новые версии на сервере push-кода?

Дополнительный вопрос: если для installMode установлено значение codePush.InstallMode.ON_NEXT_SUSPEND, должен ли обработчик событий получать SyncStatus.UPDATE_INSTALLED при следующем перезапуске? (Полагаю, что когда смогу выяснить первый вопрос, я смогу ответить на второй самостоятельно!).

1 Ответ

0 голосов
/ 29 мая 2019

@ twelve17 Привет. Я могу поделиться своим опытом в отношении тестирования и использования CodePush. У нас есть как тесты e2e (detox + jet), так и юнит-тесты (react-native-test-utils + jest). Когда мы запускаем наши e2e тесты, мы указываем среду и переключаем настройку codePush в корневом HOC:

checkFrequency: isTest()
    ? codePush.CheckFrequency.MANUAL
    : codePush.CheckFrequency.ON_APP_START,

В этом случае (проверка и обновление вручную), codePush ничего не делает во время работы приложения. Он отлично работает с тестированием e2e, потому что вам действительно не нужны никакие задачи codePush при их запуске, безусловно.

Относительно юнитов тестов: мы не тестируем сам HOC (пока), мы только рассмотрели только некоторые компоненты без состояния, поэтому здесь я могу только рекомендовать вам либо пропустить такие тесты (потому что codePush является сторонней библиотекой lib) или напишите свою собственную обертку для любой из ее команд и макетируйте их в случае выполнения тестов.

...