Jest тестовая запись на входе textarea - PullRequest
2 голосов
/ 03 апреля 2020

Я пытаюсь записать некоторую фиктивную строку в текстовое поле с помощью Jest и затем нажать Enter, но по какой-то причине это не работает. Мой код на данный момент:

test('Should add a message', () => {
  const element = wrapper.find('textarea');
  element.instance().value = 'abc';
  element.simulate('keypress', { key: 'Enter' });

  const newWrapper = wrapper.find('user');
  expect(newWrapper.length).toBe(1);
});

Мой компонент:

<textarea
  onKeyUp={sendMessage}
  placeholder='Type your message here and press enter to send...'
  cols='30'
  rows='5'
></textarea>

Просто чтобы прояснить, текстовая область определенно присутствует при прохождении следующего теста:

test('Should have a textarea', () => {
  const element = wrapper.find('textarea');
  expect(element.length).toBe(1);
});

1 Ответ

1 голос
/ 03 апреля 2020

В вашем случае вы ищете 'keyUp', а не 'keypress'. И вместо key используйте keyCode. keyCode для Enter равно 13.

Как это:

element.simulate('keyUp', { keyCode: 13 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...