[QA] #532 formatRegion 검증 통과 — 단위 테스트 추가
- frontend/__tests__/region.test.ts: 설계서(docs/design/532-region-display) 엣지케이스 8종(falsy/계층조인/null토큰/빈토큰/더미제거/단일토큰/전량더미/trim) 검증 - tsc --noEmit, jest 전체 스위트 통과 확인 - 실제 dev DB region 데이터로 엣지케이스 재확인 Refs #532
This commit is contained in:
@@ -4,6 +4,15 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-27
|
||||
|
||||
### ✅ [QA] #532 지역 표시 계층화 — 검증 통과
|
||||
- `formatRegion()` 설계서(docs/design/532-region-display/README.md) 명세대로 구현됨을 확인
|
||||
- 단위 테스트 추가: `frontend/__tests__/region.test.ts` (falsy, 계층 조인, `null`/빈 토큰/더미 `나라` 제거, 단일 토큰, 전량 더미, trim 8케이스) — 전부 통과
|
||||
- `tsc --noEmit` 통과, 프론트 전체 jest 스위트(4 suites, 21 tests) 통과
|
||||
- 실제 dev DB 데이터(`region: "한국|서울|"` 등)로 엣지케이스 재확인 — 설계서 예시와 일치
|
||||
- 04-QA → 05-Designer 로 전진
|
||||
|
||||
## 2026-07-19
|
||||
|
||||
### 📋 설계서/Redmine 현행화 — #545/#533/#532 파이프라인 정지 점검
|
||||
|
||||
44
frontend/__tests__/region.test.ts
Normal file
44
frontend/__tests__/region.test.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* #532 — formatRegion() 순수 함수 단위 테스트.
|
||||
* 설계서: docs/design/532-region-display/README.md
|
||||
*/
|
||||
import { formatRegion } from "@/lib/region";
|
||||
|
||||
describe("formatRegion", () => {
|
||||
it("falsy 입력은 빈 문자열", () => {
|
||||
expect(formatRegion("")).toBe("");
|
||||
expect(formatRegion(null)).toBe("");
|
||||
expect(formatRegion(undefined)).toBe("");
|
||||
});
|
||||
|
||||
it("파이프 구분 지역을 계층(breadcrumb)으로 변환한다", () => {
|
||||
expect(formatRegion("한국|서울|강남구")).toBe("한국 › 서울 › 강남구");
|
||||
});
|
||||
|
||||
it("'null' 토큰(대소문자 무시)은 제거한다", () => {
|
||||
expect(formatRegion("일본|null")).toBe("일본");
|
||||
expect(formatRegion("일본|NULL")).toBe("일본");
|
||||
});
|
||||
|
||||
it("빈 토큰은 제거한다", () => {
|
||||
expect(formatRegion("한국||관악구")).toBe("한국 › 관악구");
|
||||
});
|
||||
|
||||
it("더미 토큰 '나라'는 제거한다", () => {
|
||||
expect(formatRegion("나라|서울")).toBe("서울");
|
||||
});
|
||||
|
||||
it("단일 토큰은 그대로 반환한다", () => {
|
||||
expect(formatRegion("한국")).toBe("한국");
|
||||
});
|
||||
|
||||
it("모든 토큰이 더미/빈 값이면 빈 문자열", () => {
|
||||
expect(formatRegion("한국|")).toBe("한국");
|
||||
expect(formatRegion("|")).toBe("");
|
||||
expect(formatRegion("나라|null|")).toBe("");
|
||||
});
|
||||
|
||||
it("토큰 앞뒤 공백은 trim 된다", () => {
|
||||
expect(formatRegion(" 한국 | 서울 ")).toBe("한국 › 서울");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user