Новый, чтобы реагировать.Какой правильный подход для тестирования обновления значения компонента, который зависит от действия в другом компоненте?Использование jest
+ react-testing-library
.
Представьте, что есть только 2 компонента (братья и сестры) и значение обновляется через глобальное состояние.
Вот тест:
it('updates default value on for submit click', async () => {
const username = 'hello';
const {getByTestId, container, rerender} = render(<App/>);
//subscribe to DOM changes
await waitForDomChange({container}).then(() => {
const defaultUsername = getByTestId("username-value");
expect(defaultUsername).toHaveTextContent(username);
});
//set username
const usernameInput = getByTestId("username-input");
usernameInput.value = username;
expect(usernameInput.value).toBe(username);
const submitBtn = getByTestId("btn-submit");
// console.log(prettyDOM(submitBtn));
fireEvent.click(submitBtn, {button: 0});
});
Форма находится в одном компоненте, а значение отображается в другом.Они отображаются одновременно.В этом тесте значение во втором компоненте никогда не обновляется.Какой правильный подход для проверки?Если это правильный подход - что может пойти не так?