file input에서 테스트 코드와 함께 사용하기

Hannah·2021년 4월 12일
0

TDD

목록 보기
1/1

제가 테스트하려는 코드는 아래와 같습니다

async function handleFileChange(e) {
    const { files } = e.target;

    const getImagePromises = [].map.call(files, async (file) => {
      const result = await readFile(file);
      return result;
    });

    const uploadImages = await Promise.all(getImagePromises);

    dispatch(setAddRoomImagesField(uploadImages));
  }

promise.All 함수가 실행된 후 dispatch가 실행되는 것을 확인하려면
waitFor를 사용해야합니다. waitFor는 비동기적으로 확인해야하는 항목을 기다려줍니다

const { getByLabelText } = renderAddRoomContainer();

await waitFor(() => {
  fireEvent.change(getByLabelText('방 사진 등록하기'), {
    target: {
      files: {
        0: {
          name: 'test.png',
        },
      },
    },
  });
});

expect(dispatch).toBeCalled();

참고글

0개의 댓글