Sobes.tech
Назад к вопросам
Middle
3

Убедись, что компонент UserName отображает новое имя пользователя после успешного сабмита формы.

Компании, где спрашивали
Mayflower

Ответ от нейросети

sobes.tech AI

Чтобы убедиться, что компонент UserName отображает новое имя пользователя после успешного сабмита формы, нужно проверить, что состояние компонента обновляется корректно и UI перерисовывается с новым значением.

Пример на React:

function UserName() {
  const [name, setName] = React.useState('');

  const handleSubmit = (e) => {
    e.preventDefault();
    const newName = e.target.elements.username.value;
    // имитация успешного сабмита, например, запрос к API
    setName(newName);
  };

  return (
    <div>
      <form onSubmit={handleSubmit}>
        <input name="username" type="text" />
        <button type="submit">Сохранить</button>
      </form>
      <p>Имя пользователя: {name}</p>
    </div>
  );
}

Для тестирования можно использовать React Testing Library, проверяя, что после сабмита в DOM появляется новое имя:

import { render, screen, fireEvent } from '@testing-library/react';
import UserName from './UserName';

test('отображает новое имя после сабмита', () => {
  render(<UserName />);
  const input = screen.getByRole('textbox', { name: /username/i });
  const button = screen.getByRole('button', { name: /сохранить/i });

  fireEvent.change(input, { target: { value: 'Иван' } });
  fireEvent.click(button);

  expect(screen.getByText(/Имя пользователя: Иван/)).toBeInTheDocument();
});

Таким образом, проверяется, что после успешного сабмита состояние обновляется и компонент отображает новое имя.