Вызов встроенных функций в React Components - React Testing Library + Jest - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь проверить компонент, который имеет встроенную функцию (событие), которая запускает другую функцию, и эти строки кодов не покрываются при тестировании покрытия. Я не знаю, как с этим справиться.

Компонент

<Form
      {...props}
      submitButton={{
        label: i18n('next'),
        withArrow: true,
        disabled:
          (typeof props.businessFormData.tradeLicenseFileBase64 ===
            'undefined' ||
            props.businessFormData.tradeLicenseFileBase64.length === 0) &&
          (typeof props.businessFormData.companyLetterFileBase64 ===
            'undefined' ||
            props.businessFormData.companyLetterFileBase64.length === 0) &&
          (typeof props.businessFormData.emiratesIDFileBase64 === 'undefined' ||
            props.businessFormData.emiratesIDFileBase64.length === 0) &&
          (typeof props.businessFormData.passportFileBase64 === 'undefined' ||
            props.businessFormData.passportFileBase64.length === 0),
        onClick: () => props.requestClick(props),
      }}
      backButton={{
        label: i18n('back'),
        withArrow: true,
        alignIcon: 'start',
        uiType: 'secondary',
        onClick: () => props.backClick(props),
      }}
      cancelLink={{
        label: i18n(props.cancel),
        href: '/adc/importer-number-issuance/landing',
        target: '_self',
        disabled: false,
        tammHref: '/adc/importer-number-issuance/landing',
      }}
    >

Мой тест

  test('onClick() -> requestClick should be called', async () => {
    const { getByText, getByLabelText } = render(
      <MemoryRouter>
        <ViewportProvider>
          <Viewport sm md lg xl>
            <TestDateInformation {...props} />
          </Viewport>
        </ViewportProvider>
      </MemoryRouter>,
    );
    await sleep();
    expect(getByText(/next/i)).toBeInTheDocument();
    fireEvent.click(getByText(/next/i));
    expect(props.requestClick).toHaveBeenCalled();
  });

Я хочу охватить встроенную функцию requestClick

...