Skip to content

[feat] 기부 예약 이유 팝업과 금액 선택 변경 - #16

Merged
DevDon-iOS merged 1 commit into
mainfrom
feat/#15-reservation-flow
Sep 15, 2026
Merged

DevDon-iOS merged 1 commit into
mainfrom
feat/#15-reservation-flow

Conversation

@DevDon-iOS

Copy link
Copy Markdown
Collaborator

문제와 결과

기부 예약 이유가 초기 화면의 첫 문항으로 표시되고 이름·연락처가 스토리보다 앞에 있었습니다. 이제 스토리 → 이름·연락처 → 결제방법 → 3,000원/5,000원 선택 순서로 입력합니다. 기부 예약 접수하기를 눌러야 예약 이유 팝업이 열리고, 이유를 답한 뒤 최종 접수합니다.

주요 변경 사항

  • 초기 예약 화면에서 예약 이유 제거, 접수 버튼 이후 네이티브 dialog로 표시
  • 기존 이유 선택지 및 기타 입력 유지, 이유 선택 후 예약 접수 완료하기에서 API 요청
  • 팝업 닫기/Escape 및 실패 후 재진입 시 입력·사진·선택 보존, 포커스 복귀
  • 접수 중 중복 클릭 차단, 변경 없는 재시도에서 같은 접수 UUID 재사용
  • 제목·스토리·사진 아래에 이름·연락처 배치 및 문항 번호 정리
  • 자유 금액 입력을 3,000원/5,000원 라디오 선택으로 변경하고 공통 클라이언트·서버 스키마 검증 적용
  • 기존 자유 입력 금액은 변경 없이 관리자 조회 유지
  • 최초 버튼 클릭·이유 팝업 노출·실제 접수 요청을 구분해 기록하고 이유 응답 내용은 활동 로그에서 제외
  • 005_reservation_flow_activity.sql과 운영 문서 및 회귀 테스트 추가

검증

격리된 Node 26.3.1 / PostgreSQL 18 / Next production 서버에서 실행했습니다.

  • npm run typecheck — 통과
  • npm run lint — 통과
  • npm test — 16개 통과
  • npm run build — 통과
  • node --env-file=.env.test --import tsx apps/web/scripts/migrate.ts — 전체 마이그레이션 적용 통과
  • node --env-file=.env.test --import tsx --test apps/web/tests/*.integration.ts — 3개 통과
  • cd apps/web 후 node --env-file=../../.env.test ../../node_modules/@playwright/test/cli.js test — 5개 통과
  • git diff --check — 통과

초기 이유 비노출, 문항 순서, 필수 이유/기타 입력, 버튼을 통한 팝업 표시, Escape/닫기 후 포커스·내용 보존, 실패 후 같은 UUID 재접수, 관리자 금액 표시를 브라우저에서 검증했습니다. API에서는 두 금액 저장·임의 금액 거부·동시 요청 중복 제거·기존 7,200원 자료 보존을 확인했습니다. 1,000바이트 스토리 상한과 로그·카메라 회귀 테스트도 통과했습니다.

화면

검증용 데이터로 생성한 화면입니다.

예약 입력 순서
예약 이유 팝업 모바일
예약 이유 팝업 데스크톱

한계 및 배포

  • 운영 배포는 하지 않았습니다. 배포 전 기존 절차대로 npm run db:migrate로 새 활동 이벤트를 허용해야 합니다.
  • 실제 모바일 Safari와 화면 읽기 도구의 실기기 검증은 별도입니다. 이번 검증은 headless Chrome의 모바일 크기·키보드·실제 HTTP/DB 검증입니다.
  • 요청대로 최신 main(9d63ab2)에서 브랜치를 생성했고 PR 대상도 main입니다. 저장소 기본 브랜치는 develop이므로 main 병합만으로 아래 이슈가 자동 종료되지 않을 수 있습니다.
  • 검증 자원은 최대 3개 그룹(DB·Next·headless 브라우저)이었으며 전부 종료하고 전용 PID·포트 해제를 확인했습니다.

관련 이슈

Closes #15

@DevDon-iOS
DevDon-iOS marked this pull request as ready for review September 15, 2026 11:29
@DevDon-iOS
DevDon-iOS merged commit 3a8aec0 into main Sep 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant