jest를 사용하며 apollo-client mockProvider 로 테스트를 진행하고자 코드를 작성하고 test를 돌렸는데,
아래와 같은 문제가 생겼다.
![](https://blog.kakaocdn.net/dn/NwGxN/btq9s2Ir6C9/ibxHscXOMRuKg10eHZ1HJk/img.png)
원인을 여러가지로 추려 봤었는데,
대부분 답변은 '버전문제' 라고 했다. 하지만 난 그 버전 이슈가 난 버전과 동일한 버전이 아니였기에 패스
왜그런지 이유를 못찾아서 삽질을 엄청 했다!
구글링을 열심히 해본 결과! jsconfig 에 설정해둔 baseUrl "./" 이부분때문인 것 같았다.
우선 나의 환경은 모든 프로젝트의 경로는 baseUrl의 경로에 따라 움직였다.
baseUrl 을 설정해뒀기 때문에, 모든 경로에서 절대 경로로 불러왔다. 따라서 jest를 돌릴때도
jest에게 내가 baseUrl 설정했음을 알려야 했다.
그래서 아래와 같이 작성했는데, 사건의 발달은 아래서 부터 시작했다고 한다. (내가 죄인이요)
module.exports = {
moduleDirectories: ['node_modules', '.'],
};
🥲아래글을 참고 했었긴 했다..
![](https://blog.kakaocdn.net/dn/BT26m/btq9pCp9PjR/REaIbf5TcV8TcxmUY8dsYk/img.png)
<rootDir> 로 해결.
jest 에서의 <rootDir>은 package.json의 위치를 기반으로 루트를 자동지정 해준다.
근데 package.json이 있는 위치가 내가 jest.config.js 파일이 있는 위치랑 동일 했기에 사실
<rootDir> === '.' 이 같다고 생각을 했다.
음 rootDir의 동작이 내가 생각하는 동작이랑 다른 부분이 있나?
![](https://blog.kakaocdn.net/dn/b70RGd/btq9pDWXpXJ/NkDEoFSoRk9JB8pouRtgRk/img.png)
😭 왜 그런지 이유를 찾았다.
<rootDir> === '.' 는 맞지만,
rootDir 대신 .를 쓰면, node_modules 내부까지 루트 경로가 적용되어 버리는 이슈가 있다고 한다.
따라서 rootDir를 통해 내 프로젝트 내부에서만 경로가 적용 될 수 있도록 해야한다고 한다. (참 너무하다)
'React' 카테고리의 다른 글
🐛 에러로그 - Multiple commands produce [파일경로] (RN) (0) | 2021.11.25 |
---|---|
리액트를 클린하게 작성하는 법 (4) | 2021.11.18 |
🤩 rollup + typescript + react 세팅하기 (0) | 2021.04.26 |
Error 정리: React-Uncaught SyntaxError: Unexpected token < (3) | 2021.02.24 |
WebSoket (stompJS+React) 채팅 (6) | 2021.02.14 |