Этот вопрос основан на демонстрационном репо 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
не отправляет форму.