import { isSendMessageRequest } from './app.setup'; describe('발송 요청 판정 (발송만 JSON 본문 4MB)', () => { it('POST /api/messages 는 발송 요청이다 — 대소문자·끝의 / ·쿼리는 가리지 않는다 (라우터와 같다)', () => { for (const url of [ '/api/messages', '/api/messages/', '/API/Messages', '/api/messages?draft=1', ]) { expect(isSendMessageRequest({ method: 'POST', url })).toBe(true); } }); it('다른 메서드·다른 경로는 1MB 그대로다 — 메일 수정·첨부 업로드·로그인 포함', () => { for (const [method, url] of [ ['PATCH', '/api/messages/eaaaaab'], ['GET', '/api/messages'], ['PUT', '/api/messages'], ['POST', '/api/messages/eaaaaab'], ['POST', '/api/messages/eaaaaab/attachments'], ['POST', '/api/mail-attachments'], ['POST', '/api/auth/login'], ['POST', '/messages'], ['POST', '/api/messagesx'], ] as const) { expect(isSendMessageRequest({ method, url })).toBe(false); } expect(isSendMessageRequest({ method: 'POST', url: undefined })).toBe( false, ); }); });