From 81fcd9a8a2c59e45434fa63a869b2b7f0e86ffc7 Mon Sep 17 00:00:00 2001 From: ClarusIubar Date: Sat, 13 Jun 2026 10:34:49 +0900 Subject: [PATCH 1/2] test: lock event tab to festivals --- ...-012-04-event-tab-festival-only-cleanup.md | 38 +++++++++++++++++++ test/e2e/event-tab.spec.ts | 24 ++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md create mode 100644 test/e2e/event-tab.spec.ts diff --git a/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md b/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md new file mode 100644 index 0000000..ee21356 --- /dev/null +++ b/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md @@ -0,0 +1,38 @@ +# TSK-012-04 Event Tab Festival-Only Cleanup + +Scope-ID: `TSK-012-04-EVENT-TAB-FESTIVAL-ONLY-CLEANUP` +Issue: https://github.com/STH-1-Class-One-Group/JamIssue/issues/408 +PR: `TBD-TSK-012-04` +Branch: `event-tab-festival-only-cleanup` +Status: `validated-local` +Parent Issue: https://github.com/STH-1-Class-One-Group/JamIssue/issues/404 +Child Issue: https://github.com/STH-1-Class-One-Group/JamIssue/issues/408 + +## 목적 + +2차 UI/UX 구현 명세의 행사 탭 범위를 완료 근거로 고정한다. 행사 탭은 행사 콘텐츠만 표시하고 KTO 관광장소 세그먼트와 `/api/tourism/places` 호출을 소유하지 않는다. + +## 변경 요약 + +- 현재 코드 기준 `EventTab`이 이미 festival-only 상태임을 확인했다. +- `EventTab`은 `FestivalItem[]`만 props로 받고 tourism API/client/type을 import하지 않는다. +- `UIUX-016` e2e 테스트를 추가해 행사 탭에서 tourism segment가 없고 `/api/tourism/places` 요청이 발생하지 않음을 고정했다. +- KTO 지도 레이어와 InfoSheet 구현은 #409 범위로 유지했다. + +## Architecture Boundary Gate + +- Responsibility map: `EventTab`은 festival/event presentation만 소유한다. KTO tourism presentation은 지도 레이어 #409가 소유한다. +- Dependency direction: event tab UI는 tourism API/client/types에 의존하지 않는다. +- Test seam: `test/e2e/event-tab.spec.ts`가 browser-level event tab behavior와 network request absence를 검증한다. +- Scope map: 변경 파일은 e2e regression test와 completion report로 제한했다. +- Architecture risk: KTO tourism contract가 main에 아직 없으면 #409에서 consumer contract gap을 다시 확인해야 한다. + +## 검증 결과 + +- [x] `npm.cmd run test:e2e -- event-tab` + +## 남은 후속 작업 + +- #409: KTO tourism map layer와 InfoSheet 구현. +- #410: app shell CSS offset cleanup. +- #411: 2차 UI/UX traceability docs. diff --git a/test/e2e/event-tab.spec.ts b/test/e2e/event-tab.spec.ts new file mode 100644 index 0000000..8b9e357 --- /dev/null +++ b/test/e2e/event-tab.spec.ts @@ -0,0 +1,24 @@ +import { expect, test } from '@playwright/test'; +import { createE2EAppState, installApiFixtures } from './fixtures'; + +test('UIUX-016 keeps the event tab festival-only and does not request tourism places', async ({ page }) => { + const tourismRequests: string[] = []; + page.on('request', (request) => { + const url = request.url(); + if (url.includes('/api/tourism/places')) { + tourismRequests.push(url); + } + }); + + await installApiFixtures(page, createE2EAppState({ authenticated: false })); + + await page.goto('/'); + await page.locator('[data-tab-key="event"]').click(); + + const eventSurface = page.locator('[data-page-surface="event"]'); + + await expect(eventSurface).toBeVisible(); + await expect(eventSurface.locator('.sheet-card')).toBeVisible(); + await expect(eventSurface.locator('[role="tab"], [data-tourism-segment]')).toHaveCount(0); + expect(tourismRequests).toEqual([]); +}); From c43db70bf7281eee945f000994c3ba4166a6d1c5 Mon Sep 17 00:00:00 2001 From: ClarusIubar Date: Sat, 13 Jun 2026 10:35:26 +0900 Subject: [PATCH 2/2] docs: record event tab PR evidence --- .../completion/TSK-012-04-event-tab-festival-only-cleanup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md b/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md index ee21356..de5a090 100644 --- a/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md +++ b/reports/completion/TSK-012-04-event-tab-festival-only-cleanup.md @@ -2,7 +2,7 @@ Scope-ID: `TSK-012-04-EVENT-TAB-FESTIVAL-ONLY-CLEANUP` Issue: https://github.com/STH-1-Class-One-Group/JamIssue/issues/408 -PR: `TBD-TSK-012-04` +PR: https://github.com/STH-1-Class-One-Group/JamIssue/pull/415 Branch: `event-tab-festival-only-cleanup` Status: `validated-local` Parent Issue: https://github.com/STH-1-Class-One-Group/JamIssue/issues/404