2017-07-13 2 views
0

Possible duplicateSimulieren Ereignis Klick nicht Komponentenmethode Jest/Enzym

vergeudet schon drei Tage versucht nennen diesen Testdurchlauf zu machen. Konnte keine Lösung finden, es scheint zu simulieren klicken nicht Aufruf Komponentefunktion.

Testfall:

it('checking focus is called',() => { 
    const wrapper = shallow(<NexMultiselect {...mock_props} />); 

    wrapper.instance().c = {autosuggest: { input: {focus:()=>{}} }}; 
    wrapper.instance().focus = jest.fn(); 
    wrapper.find('.values_container').simulate('click'); 

    expect(wrapper.instance().focus).toHaveBeenCalled(); 
}); 

Component Funktion machen:

return (
     <span className="multiselect"> 
      { label && id && 
      <div className="form__field-label"><label htmlFor={id}>{label}</label></div> } 
      <span onClick={this.focus} className="values_container"> 
       {renderedValues} 
       <NexAutocomplete 
        {...other} 
        onUpdate={this.onSearchUpdate} 
        data={this.state.data} 
        filter={[{ 
         searchOn: 'value', 
         display: 'display' 
        }]} 
        value={this.state.inputText} 
        preferValueFromProps={this.state.preferValueFromProps} 
        ref={c => this.c = c} 
        disabled={size && values.length >= size } 
       /> 
      </span> 
     </span> 
    ); 

Antwort

0

dieses Problem gelöst mit onClick={this.focus}-onClick={() => this.focus()} ändern.

Das von class method verhindert statt die mock function

genannt wird
Verwandte Themen