2016-08-15 37 views
10

Próbuję zasymulować zdarzenie keyDown, w szczególności dla Enter, keyCode: 13. Próbowałem na różne sposoby, ale żaden z nich nie działa. Sprawdziłem również w Internecie i wygląda na to, że ta funkcja jest albo błędna, albo nie działa w obecnej wersji Enzymu. Czy ktokolwiek wie na pewno, czy ta funkcja działa, a jeśli tak, to jaka jest właściwa składnia do symulacji wejścia lub innych typów kluczowych zdarzeń? Dzięki!Jak symulujesz zdarzenie enter keyDown (lub inne) w Enzyme?

To co mam obecnie, i to nie działa:

const input = wrapper.find('input'); 
input.simulate('keyDown', {keyCode: 13}); 

Moja obecna wersja enzym jest 2.4.1

+0

To powinno zadziałać. Czy używasz 'shallow' lub' mount'? – ZekeDroid

+0

Używam 'mount' – reectrix

+0

@ZekeDroid Czy istnieje jakiś sposób sprawdzenia, czy działa? Mój test sprawdzający, czy działa, czy nie, wymaga sprawdzenia, czy tworzony jest nowy komponent, a w tym przypadku to się nie dzieje. Ponadto, miałem problemy z narzędziami szpiegowskimi 'sinon' i' chai' w enzymach, więc nie byłem w stanie ich użyć do weryfikacji zdarzeń użytkownika. – reectrix

Odpowiedz

0
wrapper.find('input').simulate('keydown'); 

To działa dla mnie ...

7

Zamiast użycia klucza, użyłem klucza, w przypadku "Enter", używając mount:

wrapper.find('input').simulate('keypress', {key: 'Enter'}) 
+0

Próbowałem go nie działa – pritesh

+0

To zadziałało dla mnie, i aby wyjaśnić, używam Enzyme with Jest. – alexfigtree

+2

oh mam problem. "keyPress" powinno być "keypress". Pracowałem dla mnie !! – pritesh