input 이 아닌 Element 에 속성과 같은 데이터를 지정하고 click 이벤트 발생시
해당 데이터를 가져오려고 할 때 이벤트 캡쳐링, 버블링 에 주의해야 한다.
input 같은 경우 change, focus 등 이벤트 발생시 event target 이 input 으로 고정되지만
div , li, span 같은 경우 사용자가 클릭했을 때 event 의 target 이 명확하지 않기 때문에 click event 발생시 event.target.속성을 제대로 가져올 수 없다.
내부 디자인 시스템이나, 외부 디자인라이브러리 사용시 @testing-library/react 를 통해 test 하기 힘든점이 많다.
사실 제대로 props 이 전달 되었는지 click 했을 때 함수가 호출되는지 등만 확인하면 되지 스타일부분 까지 확인할 필요는 없다.
때문에 아래처럼 html element 에 prop 만 넘기는 걸로 mock 처리해서 test 하는게 좋다고 생각한다.
jest.mock('@themoin/moin-design-system', () => ({
...jest.requireActual('@themoin/moin-design-system'),
DefaultButton: props => <button {...props} />,
PrimarySolidButton: props => <button {...props} />,
}))
처음에 설계할 때는 맞다고 생각했던 것들이 실제 code 짜면서 계속 틀린점이 나온다. 설계에 대한 검증이 빈약했던 것 같다.
refactoring 할 때도 맞다고 생각해서 refactoring 했지만 나중에 다시보면 또 아닌 상황이 생긴다.
자기 생각에 대해서 교차검증을 하기는 힘들지만 내 생각이 무조건 맞다고 생각하지 않고 주장의 근거에 대해서 생각하는 과정을 거쳐야 겠다.