Тестируйте облачные сообщения Firebase с Jest - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь протестировать обмен сообщениями в облачной среде с помощью jest, но у меня ошибка с фиктивной функцией ...

Как я могу проверить все вызовы функций?

expect(jest.fn()).toHaveBeenCalled()
Expected mock function to have been called.

import { Sentry, SentrySeverity } from 'react-native-sentry';
import RNFirebase from 'react-native-firebase';
import Veery from 'react-native-veery';

export default function firebaseCloudMessaging() {
  try {
    const firebase = RNFirebase.app().messaging();

    firebase.getToken().then(Veery.setVeeryToken);

    firebase.getInitialNotification();

    firebase.onMessage(Veery.VeeryNotificationHandler);

    firebase.onTokenRefresh(Veery.setVeeryToken);
  } catch (error) {
    Sentry.captureException(error, { level: SentrySeverity.Error });
    console.warn('Error with firebaseCloudMessaging ', error);
  }
}

мой тест: https://gist.github.com/ludwigCDSBDX/82749eb20eac44fffac8d5318864eb6f

Спасибо!

1 Ответ

0 голосов
/ 17 октября 2018

моя ошибка: предыдущий макет создает несколько экземпляров макета, поэтому, когда я пытался проверить, был ли вызван мой макет, я сравнивал ту же функцию, но не тот же экземпляр функции!

jest.mock('react-native-firebase', () => {
  const app = { messaging: () => messaging };

  const messaging = {
    getToken: jest.fn(() => Promise.resolve('myTokenMock')),
    getInitialNotification: jest.fn(),
    onMessage: jest.fn(),
    onTokenRefresh: jest.fn(() => Promise.resolve('myMockTokenRefresh')),
  };

return { app: () => app };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...