Как проверить результат на основе значения useState - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть такой компонент

const Component = ({callback}) => {

  const [selected, setSelected] = useState(false);


  const increment = () => {
    if(selected) {
      callback()
    } else {
      do something else...
    }
  }

}

Как я могу проверить, что этот обратный вызов вызывается с помощью библиотеки реагирующего тестирования и jest?Все, что я читаю в Интернете, говорит о том, что вы должны проверить DOM, чтобы проверить состояние, но я не проверяю состояние, я тестирую на основе значения состояния.

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете передать обратный вызов как реквизит:

const callback = jest.fn()
const { getByText } = render(<Component callback={callback} />)
fireEvent.click(getByText('Submit'))
expect(callback).toHaveBeenCalledTimes(1)
expect(callback).toHaveBeenCalledWith()

Таким же образом вы можете проверить, когда selected равен false, что callback не вызывается.

...