기존에는 일반적으로 render 되고 바로 element 에 접근해서 있는지, 없는지 확인하거나
특정 함수가 어떻게 호출되었는지 정도만 test 해보았는데
이번에 회사 code 에 unit test 를 추가하는 과정에서 debounce 가 걸린 부분을 test 해야만 했다.
button click 을 test 해야만 했는데 click event 가 발생하지 않아 확인해보니
초기에 button 이 disable 이었다가 debounce 에 걸린 서버에 요청하는 함수가 실행 후 상태가 button disable 이 해제되는 부분이 있었다.
button 이 disable 일 때 disable 이 아닐 때를 test 해주어야 했는데 방법을 몰라 헤멨다.
초기에 @testing-library 에서 waitFor 를 확인했지만 element 사라짐 ↔ 나타남만을 test 하는 것으로 오해하여 이것저것 찾아보고 test 해본다고 시간을 많이 날렸다..
결국 waitFor 를 사용하면 상태가 변할 때 까지 기다린 후 test 할 수 있는데 빨리빨리 하려고 문서를 대충 읽다 보니 오히려 시간이 더 많이 소요되었다.
문제가 있으면 문제가 뭔지, 문제를 해결하기 위한 조건이 뭔지를 정확히 정의하고 구글링을 하던 뭘 하던 해야겠다.