Как сделать asyn c нажатие кнопки с помощью Jest в реакции - PullRequest
0 голосов
/ 07 мая 2020

Я пишу тестовые примеры для приложения React. Есть кнопка входа в систему, которая должна срабатывать при отправке. Но я понимаю, как мне сделать этот вызов asyn c и проверить, успешен ли он. Эта функция входа в систему имеет внутри функцию обещания. Мне также нужно проверить локальное хранилище на предмет данных токена. Любая помощь приветствуется.

it("renders LoginComp correctly", () => {
    const { getByTestId } = render(<LoginComponent></LoginComponent>)
    const input_user = getByTestId('lg_username');
    input_user.value = 'admin';
    const input_pass = getByTestId('lg_password');
    input_pass.value = 'admin';
    const j = getByTestId('lg_btn').click();
    console.log(localStorage.getItem('tokenized'))
})

1 Ответ

0 голосов
/ 07 мая 2020

Есть помощники, которые ждут конкретного c результата. Вы должны сделать свою тестовую функцию asyn c, чтобы иметь возможность использовать это. В вашем случае я бы go подумал примерно так.

it("renders LoginComp correctly", async () => {
  ...
  await waitFor(() =>  expect( /* assert on the result or side effect of the async call */)
});

https://testing-library.com/docs/dom-testing-library/api-async

...