2016-03-25 11 views
2

ich eine HTML5-Dateityp Eingang haben in einem an dieWie HTML5 Dateityp Eingang mit ReactTestUtils einstellen

folgenden ähnlich bilden React
<input type='file' ref='fileInput' onChange={this.onChange} multiple/> 

und sobald eine Datei hochgeladen this.onChange die ausgewählten Dateien zugreift, überprüft sie und Transitionen die Form.

Ich versuche herauszufinden, wie diese Funktionalität mit ReactTestUtils.Simulate getestet wird, aber nicht herausfinden, wie Sie die Dateien festlegen, die an den onChange-Rückruf in event.currentTarget.files gesendet werden sollen.

Kann mir jemand helfen, in die richtige Richtung zu gehen, damit ich das effektiv testen kann?

Antwort

1

herausgefunden, dass vor dem Aufruf von TestUtils.Simulate.change die Dateien explizit auf das Objekt gesetzt werden müssen. Ähnliches sollte funktionieren.

Es ist ES6 von Coffeescript angepasst, so dass ich nicht sicher bin, ob es genau die richtige Syntax ist.

// Needs to be an integer keyed object instead of an array to mock a file set 
const files = { 
    0: {name: 'test.jpeg'}, 
    1: {name: 'test.mp4'} 
}; 

const fileInput = TestUtils.findRenderedDOMComponentWithTag(<testView>, 'input');  
fileInput.files = files; 
TestUtils.Simulate.change(fileInput)