2017-09-06 1 views
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, 
}); 
관련 문제