@al_54

Как протестировать функцию (jest) которая возвращает React.useContext?

export const context = React.createContext(null);

export function useErrorNot() {
  const showNot = React.useContext(context);

  const defaultText = 'error';

  if (!showNot) {
    throw new Error('error');
  }

  return (text = defaultText) => {
    showNotification({ text });
  };
}


 Как можно протестировать данную функцию?
Мои попытки:
test('check fn', () => {
    const mockUseContext = jest.fn().mockImplementation(() => ({}));

      React.useContext = mockUseContext;
      
      const mockFn = jest.fn(() => useErrorNotification())
      
      expect(mockFn()).toHaveBeenCalled();
  })
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
https://react-hooks-testing-library.com/reference/api

renderHook

Первый параметр - твоя "функция" (кастомный хук), второй параметр - опции, где надо указать компонент-враппер, содержащий провайдер с контекстом (возможно, сам провайдер и будет враппером, а контекст передан через initialProps, но я так не пробовал)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы