Skip to content

feat: cover every proposed e2e case and fix bugs found - #8

Merged
pangil5634 merged 13 commits into
mainfrom
feat/e2e-full-coverage
Oct 27, 2026
Merged

pangil5634 merged 13 commits into
mainfrom
feat/e2e-full-coverage

Conversation

@pangil5634

Copy link
Copy Markdown
Member

무엇을 했나

e2e/cases/*.md 에 "제안" 으로 남아 있던 P2·P3 케이스 43건을 모두 구현했습니다. 이제 80개 케이스가 데스크톱·모바일로 160개 돕니다.

  • 이름 없는 요소 5곳에 이름을 붙이고, seed 를 넓혔습니다 (종료한 카테고리, 루틴 요일 이력·종료일, 할 일 시간, 월간 통계, 공지).
  • npm run e2e:record 로 클릭해서 테스트를 만드는 녹화 모드를 추가했습니다.
  • 끌기 도우미가 정해 둔 시간 대신 끌기가 실제로 시작될 때까지 기다려, 부하가 클 때도 안정적입니다.

테스트로 찾아 고친 버그

  • 모달 안의 날짜 선택기에서 Esc 를 누르면 모달까지 닫히거나 수정 확인이 뜨던 문제
  • 모바일에서 소개 화면이 자리 잡기 전·떠나는 순간 0/0 = NaN 이 체크 모양 좌표로 들어가 콘솔 에러가 나던 문제
  • 홈 섹션 이름이 머리줄에만 걸려 본문이 영역 밖에 있던 문제 (직전 변경의 바로잡기)

회귀 케이스는 고친 코드를 되돌리면 실패하는 것을 확인했습니다.

접근성 변경

홈 네 섹션이 제목을 이름으로 갖는 영역이 되었고, 이전·다음 화살표와 공지 항목이 버튼, 리스트 메뉴가 radio 가 되었습니다. 루틴의 날짜 선택기는 "시작 날짜 2026. 10. 28." 처럼 지금 값과 함께 이름을 갖고, 마이 화면 월별 달성률은 목록이 되었습니다.

남은 일

e2e/TODO.md: 부하가 클 때 한 번 관찰한 "다시 받아 온 집계가 진행 중인 체크 표시를 덮는" 동작. 56번 재현을 시도했으나 나오지 않아 관찰 메모로 남겼습니다.

홈의 네 섹션이 제목을 이름으로 갖는 영역이 되어, 같은 이름의 오늘·새로고침·이전·다음 버튼을 섹션으로 구분할 수 있습니다.
클릭만 되던 이전·다음 화살표와 공지 항목을 버튼으로 바꿨습니다.
리스트 메뉴는 줄 전체가 하나의 선택지(radio)가 되어 선택 상태를 알 수 있습니다.
루틴 종료 날짜 토글은 "종료 날짜 추가"처럼 다른 추가·삭제 버튼과 겹치지 않는 이름을 갖습니다.
…nd notices

종료한 카테고리, 루틴 종료일과 요일 변경 이력, 할 일 시간, 월간 통계 문서, 공지를 시드로 넣을 수 있게 했습니다.
공지는 모든 사용자가 함께 보는 컬렉션이라 사용자 시드와 따로 둡니다.
종료 뒤 새 카테고리의 순서, 복구, 이름 검증, 연타 방지, 수정 중 닫기 확인, 저장·순서 저장 실패, 빈 상태와 목록 읽기 실패를 확인하는 케이스를 추가했습니다.
목록 조회 요청은 users/{uid}:runQuery 로 나가므로 network.ts 의 설명을 바로잡았습니다.
앞서 섹션 이름을 머리줄(제목과 버튼)에만 걸어, 캘린더 칸이나 루틴 표 같은 본문이 그 영역 밖에 있었습니다.
네 섹션의 최상위 요소를 제목을 이름으로 갖는 section 으로 바꾸고, TitleSection 은 제목에 id 만 답니다.
이동으로 날짜 옮기기, 리스트 메뉴의 오늘 하기와 모든 할 일 삭제, 한 주 보기 끌기와 그 실패, 루틴 표 체크, 캘린더 날짜 선택, 빈 상태, 루틴 목록 읽기 실패 케이스를 추가했습니다.
끌기 도우미는 정해 둔 시간을 기다리는 대신 끌기가 실제로 시작될 때까지 기다려, 부하가 클 때 끌기가 취소되지 않습니다.
모달 안의 날짜 선택기에서 Esc 를 누르면 선택기와 함께 모달도 Esc 를 받아, 고친 게 있으면 수정 확인이 뜨고 없으면 모달이 닫혔습니다.
선택기가 열려 있을 때의 Esc 는 선택기만 닫고 모달로 전달하지 않습니다.
한 모달에 선택기가 둘이면 구분되지 않아, 루틴의 시작·변경 적용·종료 날짜 선택기에 "시작 날짜 2026. 10. 28." 처럼 지금 값과 함께 이름을 붙였습니다.
입력 검증, 시작일에 따라 밀리는 종료일, 저장 실패와 연타 방지, 지난 날로 종료, 확인을 거친 삭제의 화면 간 반영, 수정 중 닫기 확인, 요일을 그대로 둔 수정의 시작일 잠금, 기록 창, 빈 상태, 순서 저장 실패 케이스를 추가했습니다.
기간 이동과 미래 기간, 연도가 바뀌는 달, 월간에서 주간으로 바꿀 때의 기준 날짜, 루틴 기록 창의 캐시 갱신, 홈에서 추가·삭제·일괄 이동한 할 일의 반영, 남은 할 일 접기, 빈 상태 케이스를 추가했습니다.
…ight

소개 화면은 스크롤 위치를 무대 높이로 나눠 애니메이션 시점을 정하는데, 모바일에서 무대가 자리 잡기 전이나 화면을 떠나는 순간에는 높이가 0 이라 0/0 = NaN 이 됐습니다.
NaN 이 체크 모양의 좌표로 흘러 들어가 콘솔 에러가 났습니다. 높이가 없을 때는 첫 장면에 둡니다.
월별 달성률의 각 줄을 목록 항목으로 그려, "9월 70%" 가 스크린 리더에 한 줄 단위로 전달되고 테스트도 줄로 찾을 수 있습니다.
다크 테마 유지, 프로필과 6개월 달성률, 탈퇴 확인 취소, 로그인한 사용자의 소개·로그인 화면 이동, 공지 정렬과 이전·다음 이동, 푸터 링크 케이스를 추가했습니다.
공지는 모든 사용자가 함께 보는 데이터라 고유 제목과 1ms 간격의 시각으로 다른 실행과 섞이지 않게 합니다.
npm run e2e:record 는 평소 테스트와 같은 앱·에뮬레이터·로그인으로 예시 데이터를 넣은 홈을 열고 멈춥니다.
Playwright Inspector 의 Record 로 화면을 조작하면 그 조작이 테스트 코드로 쌓입니다.
TODO 에는 아직 재현하지 못한 앱 동작과 그동안의 재현 시도를 남겼습니다.
녹화 모드로 직접 만든 흐름(리스트 메뉴 → 미완료 할 일을 다른 날 하기 → 완료 → 이동)에 결과 확인을 붙였습니다.
완료한 할 일은 남고 미완료만 다음 날로 옮겨지는지, 캘린더 숫자와 옮길 것이 없을 때의 안내를 확인합니다.
@pangil5634
pangil5634 merged commit 89b5d4a into main Oct 27, 2026
2 checks passed
@pangil5634
pangil5634 deleted the feat/e2e-full-coverage branch October 27, 2026 14:10
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