2016-08-15 3 views
10

Ich versuche, ein keyDown Ereignis speziell für Enter, keyCode: 13 zu simulieren. Ich habe verschiedene Möglichkeiten ausprobiert, aber keiner von ihnen funktioniert. Ich habe auch online geschaut und es scheint, dass diese Funktion entweder fehlerhaft ist oder in der aktuellen Version von Enzyme nicht funktioniert. Weiß jemand definitiv, ob diese Funktion funktioniert, und wenn ja, wie lautet die richtige Syntax für die Simulation einer Eingabe oder anderer Arten von Schlüsselereignissen? Vielen Dank!Wie simulieren Sie ein keyDown-Ereignis (oder andere) in Enzyme?

Das ist, was ich habe zur Zeit, und es funktioniert nicht:

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

Meine aktuelles Enzym Version ist 2.4.1

+0

Das sollte funktionieren. Verwenden Sie 'shallow' oder' mount'? – ZekeDroid

+0

Ich benutze 'mount' – reectrix

+0

@ZekeDroid gibt es einen sicheren Weg zu überprüfen, dass es funktioniert? Mein Test, ob es funktioniert oder nicht, beinhaltet zu prüfen, ob eine neue Komponente erstellt wird, und in diesem Fall passiert das nicht. Außerdem hatte ich Probleme mit den Dienstprogrammen "sinon" und "chai" in Enzym, so dass ich diese nicht verwenden konnte, um Benutzerereignisse zu überprüfen. – reectrix

Antwort

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

Es funktioniert für mich ...

7

Statt von der Verwendung eines keyCode, benutzte ich einen Schlüssel, im Falle von "Enter", mit mount:

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

Ich versuchte es funktioniert nicht – pritesh

+0

Es funktionierte für mich, und um zu klären, verwende ich Enzym mit Jest. – alexfigtree

+2

oh ich habe das problem. "keyPress" sollte "keypress" sein. Arbeitete für mich !! – pritesh

Verwandte Themen