2017-07-13 1 views
0

Possible duplicatecliquez événement Simuler ne remet pas la méthode des composants Jest/enzyme

Wasted déjà trois jours à essayer de faire passer ce test. Impossible de trouver une solution, il semble que le clic de simulation ne fonctionne pas fonction de composant d'appel.

cas de test:

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(); 
}); 

Composant rendu fonction:

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> 
    ); 

Répondre

0

résolu ce problème avec le changement onClick={this.focus}-onClick={() => this.focus()}.

Cela a empêché de class method d'être appelé au lieu de la mock function