2017-09-06 4 views
1

を入力しようとしていますが、入力ボックスの1つにと入力してください。手動で行うとイベントリスナーがトリガーされますが、酵素を試している間はイベントリスナーはトリガーされません。私はここで間違って何をしていますか?酵素wrapper.find(..)。キー入力をシミュレートしませんイベントリスナー

イベントリスナ

this.input.addEventListener('keypress', function(event){ 
      debugger; 
      onEnter(event); 
     }); 

酵素

function setup(store, props) { 
    return mount(<Provider store={store}> 
      <component{...props}/> 
     </Provider> 
    ); 
} 

beforeEach(() => { 
     wrapper = setup(store, {}); 
     searchBar = wrapper.find('searchBar'); 
     searchInput = searchBar.find("input"); 
    }); 

it("when enter is pressed, event should be triggered",()=> { 
      let wait = false; 
      runs(()=> { 
       searchInput.simulate('change', {target: {value: 'helloWorld'}}); 
       searchInput.simulate('keyPress', {which: 13}); 
       setTimeout(()=> { 
        wait = true; 
       }, 1000); 
      }) 

      waitsFor(()=> { 
       return wait; 
      }, "", 1500); 
     }) 

答えて

0

私もこの問題に苦しんでいました。しかし、今私は解決策を見つけました。 { which: 13 }パラメータに加えて、あなたはとてもあなたのシミュレート式がなり、少なくともkeyパラメータを指定する必要がありますように:

searchInput.simulate('keyPress', { 
    key: 'Enter', 
    keyCode: 13, 
    which: 13, 
}); 
関連する問題