From 170be20b6d4d96d426381946cf715404c9b31fc7 Mon Sep 17 00:00:00 2001 From: ttipo Date: Tue, 3 Nov 2026 23:27:59 +0900 Subject: [PATCH] =?UTF-8?q?test(backend):=20e2e=20=EC=8A=A4=EC=9C=84?= =?UTF-8?q?=ED=8A=B8=EB=A5=BC=20=EC=88=9C=EC=84=9C=EB=8C=80=EB=A1=9C=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 빈 DB 에서 여러 e2e 스위트가 동시에 마이그레이션하면 같은 테이블을 만들다 pg_class_relname_nsp_index 중복으로 무작위 실패했다(스위트 5개에서 재현, CI 도 빈 DB 라 같은 위험). 스위트들은 한 DB 를 함께 쓰므로 maxWorkers 1 로 순서대로 돌린다. 빈 DB 두 번 연속 통과(약 30초). Co-Authored-By: Claude Opus 5.5 --- .claude/rules/testing.md | 4 ++++ backend/test/jest-e2e.json | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.claude/rules/testing.md b/.claude/rules/testing.md index ee7d97f..648782d 100644 --- a/.claude/rules/testing.md +++ b/.claude/rules/testing.md @@ -59,6 +59,10 @@ describe('formatSomething', () => { > docker exec <프로젝트>-backend npx jest --config ./test/jest-e2e.json > ``` > CI 는 postgres 서비스 컨테이너를 띄워 자동으로 실행한다. +> +> e2e 스위트는 **한 DB 를 함께 쓰므로 순서대로 돈다**(`jest-e2e.json` 의 `maxWorkers: 1`). +> 빈 DB 에서 여러 스위트가 동시에 마이그레이션하면 같은 테이블을 만들다 부딪혀 무작위로 실패한다(2026-11-03, 스위트 5개에서 재현). +> 새 e2e 스위트는 실제 데이터와 겹치지 않는 값(없는 지역 코드 `'99'`, `e2e-` 접두어 id, 2030년 날짜 등)만 쓰고 끝나면 지운다. - 에러 코드를 추가/삭제하면 **세 곳의 기대 목록을 함께 갱신**한다 ([[checklist]] 3절). - 매핑 로직(응답 래퍼·상태 역매핑)을 바꾸면 해당 분기 테스트를 추가한다. diff --git a/backend/test/jest-e2e.json b/backend/test/jest-e2e.json index 9062338..c2cd9ef 100644 --- a/backend/test/jest-e2e.json +++ b/backend/test/jest-e2e.json @@ -12,5 +12,6 @@ "testRegex": "test/.*\\.e2e-spec\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" - } + }, + "maxWorkers": 1 }