В интеграционном тесте использование помощника по тесту `triggerKeyEvent` на входе внутри` <form>`не передает` <form>` - PullRequest
1 голос
/ 04 ноября 2019

Этот вопрос основан на демонстрационном репо https://github.com/bartocc/so-enter-key-integration-test

Это демонстрационное приложение Ember.js 3.12 содержит компонент <XFoo>. При рендеринге он отображает простой <form> с текстовым вводом и кнопкой отправки.

У <form> есть действие, привязанное к его событию submit, которое установит для свойства submitted компонента значение true. По умолчанию это false.

Желаемое поведение - отображать сообщение с благодарностью вместо <form> после его отправки.

Вот шаблон компонента:

{{#if this.submitted}}
  <span>
    Thank you for your submission
  </span>
{{else}}
  <form {{action (mut this.submitted) true on="submit"}}>
    {{! template-lint-disable self-closing-void-elements }}
    <input type="text" />
    <button type="submit">
      Save
    </button>
  </form>
{{/if}}

Я добавил 2 интеграционных теста для <XFoo>:

  • , одна попытка отправить событие нажатия клавиши Enter в тег <input> с кодом
await render(hbs`<XFoo />`);
await triggerKeyEvent('input', 'keydown', 'Enter');
  • другие щелкают по кнопке отправки с
await render(hbs`<XFoo />`);
await click('button');

Оба теста проверяют наличие сообщения с благодарностью:

assert.dom('span').hasText('Thank you for your submission', 'displays the thank you span');

Первый тест не пройден, второй пройден.

Я хотел бы понять, почему использование triggerKeyEvent не отправляет форму.

...