일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리터럴 타입
- async/await
- 투포인터
- 타입 좁히기
- 결정 알고리즘
- dfs
- React
- RTK Query
- Cypress
- Jest
- ESlint
- recoil
- tailwind
- 호이스팅
- CI/CD
- useAppDispatch
- 이분 검색
- CORS
- 무한 스크롤
- TS
- 반공변성
- SSR
- Promise
- 공변성
- app router
- autosize
- 태그된 유니온
- map
- 인터섹션
- webpack
Archives
- Today
- Total
짧은코딩
MSW2 사용 중 Warning: captured a request without a matching request handler 본문
UpLog 릴리즈노트 프로젝트
MSW2 사용 중 Warning: captured a request without a matching request handler
5_hyun 2024. 2. 5. 21:20반응형
https://shortcoding.tistory.com/535
WAYC 프로젝트에서도 같은 경고를 만난적이 있다.
하지만 WAYC는 MSW 버전 1이고, UpLog에서는 MSW 버전 2를 사용했다.
해결 방법이 달라서 기록으로 남긴다. 해결 방법은 생각보다 쉽지만 까먹지 않기 위해 남긴다..!
MSW2에서 해결 방법(아님)
해결법은 정말 간단한데 handlers.ts 파일을 만드는 것이다.
1. handlesr.ts
// src/mocks/handlers.ts
import { auth } from '@/mock/api/member/auth.ts';
import { emailController } from '@/mock/api/emailController';
const handlers = [...auth, ...emailController];
export default handlers;
handlers에서 모든 모킹 api 파일을 합쳐준다.
2. browser.ts
// src/mocks/browser.js
import { setupWorker } from 'msw/browser';
import handlers from '@/mock/handlers.ts';
// This configures a Service Worker with the given request handlers.
export const worker = setupWorker(...handlers);
broswer.ts에서 handlers를 가져와서 setupWorker에 넣어주면 된다.
문제점이었던 것
나는 handlers.ts를 거치지 않고, browers.ts에서 바로 모킹 api들을 모아줘서 저런 경고가 떴었던 것 같다.
진짜 MSW2에서 해결 방법
위에 내용을 정리하고 다음 날 보니까 또 다시 경고가 떴다. 그래서 다시 고민해봤는데, 해결 방법이 검색으로는 잘 나오지 않았다.
그러다가 아래 방법으로 했는데 해결이 됐다!
해결법
-common.ts
import { http } from 'msw';
export const common = [
http.get('/*', () => {
return;
}),
http.get('/src/*', () => {
return;
}),
http.get('/node_modules/*', () => {
return;
}),
];
common.ts를 만들고 안에 consol 창에서 뜨는 경로들을 다 적어줬다.
그리고 와일드카드(*)를 활용하였다.
-handler.ts
// src/mocks/handlers.ts
import { auth } from '@/mock/api/member/auth.ts';
import { emailController } from '@/mock/api/emailController';
import { common } from '@/mock/api/common.ts';
const handlers = [...auth, ...emailController, ...common];
export default handlers;
common.ts를 handlers.ts에 넣어주니까 해결됐다!
반응형
'UpLog 릴리즈노트 프로젝트' 카테고리의 다른 글
axios interceptors를 활용하여 JWT 관리하기 with MSW2 (0) | 2024.02.13 |
---|---|
Vite에서 Jest를 사용하지 않고 Cypress만 쓰기로 한 이유 (0) | 2024.02.13 |
UpLog 프론트엔드 CI/CD4(URL 카톡 공유, AWS 과금 알람, 적용 후기) (0) | 2023.09.04 |
UpLog 프론트엔드 CI/CD3(도메인 설정 및 Nginx로 SSL 적용하기) (0) | 2023.09.04 |
UpLog 프론트엔드 CI/CD2(AWS CodeDeploy 및 EC2에 코드 올리기) (0) | 2023.09.04 |
Comments