2017-02-12 9 views
-1

Я пытаюсь использовать dispatchEvent на <input> элемент в модульном тесте, чтобы вызвать его «oninput» обработчиком с обычаем {target: {value: "data"}}направить «oninput» событие с обычаем {целевой: {значение}} данные

This guide только подскажет, как вызвать CustomEvent. Но я не думаю, что это сработает, поскольку оно позволяет указать свойство «details». Я на самом деле пытаюсь вызвать его с чем-то вроде {target: {value: "data"}}

Существует также InputEvent, но он также кажется, что имеет только одно свойство «детали».

Вот мой <input>:

<input 
    oninput={handleOnInput} // jsx 
> 
... 
function handleOnInput(e){ 
    const data = e.target.value; // << needs to be mocked 
} 

И это мой тестовый код:

getThatInputEl().dispatchEvent(what can trigger "input" with {target: {value: "data"}} ?) 

Есть ли способ, вы можете направить «вход» событие с обычаем {target: value: "data"}?

ответ

1

Когда вы отправляете input Событие на самом деле input элемент e.target всегда установлен в этот элемент, его нельзя переопределить - вы можете передавать объект только с дополнительными данными. Чтобы решить вашу проблему, вам просто нужно установить значение ввода перед отправкой события или вы можете сами проверить обработчик события