reducer 테스트 파일에서 jest coverage 100%가 안나오는 이슈

jest coverage를 돌렸더니 한 파일에서 테스트를 통과를 못하고 있다..

Uncovered Line을 보니 39번 라인에서 테스트가 통과되지 않고있는것 같다.

39번째 줄은 reducer에서 action.type이 없을때 기본 state를 반환해주는 부분이다.

export default function reducer(state = initialState, action) {
    // 생략
    if (action.type === 'updateTaskTitle') {
      return {
        ...state,
        taskTitle: action.payload.taskTitle,
      };
    }

    return state;
}

reducer 테스트코드에 action.type이 없을경우에 대한 테스트 코드가 없어서 테스트가 통과가 안되는거같아 테스트코드를 추가해주었다.

describe('noType', () => {
  it('returns initial state', () => {
    const state = reducer();

    expect(state).toBe(initialState);
  });
});

테스트 코드를 작성한 후 reducer에 아래와같이 추가해주었다.

reducer() 이렇게 아무런 인자도 받지 않았을경우 action.type을 확인할때 actionundefined여서 에러가 나기때문에 actiondefault parameter{type: ''}으로 설정해주었다.

export default function reducer(state = initialState, action = { type: '' }) {
  // 생략	
  if (action.type === 'updateTaskTitle') {
    return {
      ...state,
      taskTitle: action.payload.taskTitle,
    };
  }
  
  return state;
}

모든 테스트가 통과되었다 🎉

참고글


Written by@Heaeun
코드리뷰, TDD, 함께 자라기를 지향하는 프론트엔드 개발자입니다

GitHub