fix(backend): 행사 목록에서 끝을 생략한 없는 시작일이 500 이 나던 것 수정

from=2030-13-01 처럼 없는 시작일에 to 를 생략하면 끝 날짜를 계산하다 RangeError 가 나서
VAL_001(400) 대신 SYS_001(500)이 나갔다. from=9999-12-31 은 DB 가 읽지 못하는 끝 날짜를 만들었다.
날짜 계산을 shared/utils/iso-date.ts 순수 함수로 옮기고, 없는 날짜와 네 자리 연도를 넘는 결과는
null 로 알려 VAL_001 로 응답한다. 앱은 항상 두 날짜를 보내므로 사용자에게는 보이지 않았다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-04 23:58:27 +09:00
parent ff56d78022
commit 785afcc53f
5 changed files with 76 additions and 21 deletions
+4
View File
@@ -214,6 +214,10 @@ describe('축제·행사 조회 API (e2e)', () => {
['형식이 틀린 날짜', 'from=2030/05/01'],
['없는 날짜', 'from=2030-02-30&to=2030-03-01'],
['해석이 안 되는 날짜(13월)', 'from=2030-13-01&to=2030-12-31'],
// 2026-11-04 회귀 점검: 끝을 생략하면 시작일로 끝 날짜를 계산하다 500(SYS_001)이 났다
['끝을 생략한 없는 시작일(13월)', 'from=2030-13-01'],
['끝을 생략한 없는 시작일(0월)', 'from=2030-00-10'],
['끝을 생략해 끝 날짜가 네 자리 연도를 넘는 경우', 'from=9999-12-31'],
['없는 분류', `${may}&kind=parade`],
['lat 만 보낸 경우', `${may}&lat=36.6`],
])('%s 는 VAL_001(400)', async (_, query) => {