Реактивный тест на метод проп - PullRequest
0 голосов
/ 08 января 2020

У меня есть следующее:

...
type RepairsProps = {
  repairs: Property[]
  repairsPropertyLoad(getToken: string | (() => Promise<string>)): Promise<void>
}

const Repairs: React.FC<RepairsProps> = ({repairs, repairsPropertyLoad}) => {
  const { t } = useTranslation()
  const [isARepair, setRepair] = useState(true)
  const handleOnClick = () => { 
    setRepair(false)
    repairsPropertyLoad('token')
  }
...

и тест, имитирующий событие нажатия для handleOnClick, примерно так:

  it('should render the Repairs component when isARepair is false after the repairsButton has been clicked', () => {
    fireEvent.click(repairsButton)
    expect(component).toMatchSnapshot()
  })

как проверить, что также repairsPropertyLoad было называется?

1 Ответ

0 голосов
/ 08 января 2020

Итак, где у вас есть

render(< Repairs />);

, вам просто нужно пройти шпиона:

const repairsPropertyLoad = jest.fn();
render(< Repairs />);

и позже вы сможете проверить, называется ли это:

expect(repairsPropertyLoad).toHaveBeenCalled();

Если вы поставите repairsPropertyLoad за пределами it() (скажем, на уровне describe()), вам нужно сбросить макет при каждом запуске:

beforeEach(() => {
  jest.clearAllMocks();
});

в противном случае ваш expect(...).toHaveBeenCalled() будет зависеть от любых предыдущих it() запусков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...