testcode

간단했던 모노레포 toBeInDocument 이슈 해결

냠냠맨 2024. 1. 7. 23:58

제목은 간단했던인데요.. 사실 문제가 발생하고 난 뒤로 한 한달동안 해결을 못하다가

그냥 우아하게 해결하기는 포기하고 무식하게 해결해봤습니다.

 

문제 상황을 이해하는게 조금 어려웠는데

제 모노레포 프로젝트의 구조는 다음과 같습니다.

root에 jest.config.js 와 jest.setup.js가 있는 구조인데

 

빌드 문제로 인해 각 하위 패키지들도 tsconfig.json을 가지고있습니다.

만약 하위 패키지에 tsconfig.json이 없다면 jest.setup.js를 적절히 탐색해서 타입에러없이 잘 수행하는데..

그렇다고해서 tsconfig.json을 없애면 빌드 결과물이 터져나갑니다.

 

결국 jest.setup.js를 임포트하지못하는게 문제이니 조금 덜우아하더라도

import { render, renderHook, screen } from '@testing-library/react';
import { useFunnel } from './use-funnel';
import '@testing-library/jest-dom';
import userEvent from '@testing-library/user-event';
import React from 'react';
    expect(screen.getByTestId('first-step')).toBeInTheDocument();

이런 식으로 직접 jest-dom을 임포트하는 식으로 해결해줬습니다.

하하.. 

반응형