# Showcase Duo E2E report - root: `public` - started: 2026-08-29T12:14:41.758Z - finished: 2026-08-29T12:16:40.746Z - scenarios: 90/90 - assertions: 350/350 (350 passed) - failed scenarios: 0 - visual evidence: 12/12 - contract: PASS ## Scenario results | result | suite | scenario | assertions | | --- | --- | --- | ---: | | PASS | Chromium 반응형 | 한남자리 공개 320px | 7/7 | | PASS | Chromium 반응형 | 한남자리 공개 390px | 7/7 | | PASS | Chromium 반응형 | 한남자리 공개 768px | 7/7 | | PASS | Chromium 반응형 | 한남자리 공개 1440px | 7/7 | | PASS | Chromium 반응형 | 한남자리 관리자 320px | 7/7 | | PASS | Chromium 반응형 | 한남자리 관리자 390px | 7/7 | | PASS | Chromium 반응형 | 한남자리 관리자 768px | 7/7 | | PASS | Chromium 반응형 | 한남자리 관리자 1440px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 공개 320px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 공개 390px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 공개 768px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 공개 1440px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 가맹 320px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 가맹 390px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 가맹 768px | 7/7 | | PASS | Chromium 반응형 | 철판클럽 가맹 1440px | 7/7 | | PASS | WebKit | 한남자리 공개 390px | 4/4 | | PASS | WebKit | 한남자리 공개 1440px | 4/4 | | PASS | WebKit | 한남자리 관리자 390px | 4/4 | | PASS | WebKit | 한남자리 관리자 1440px | 4/4 | | PASS | WebKit | 철판클럽 공개 390px | 4/4 | | PASS | WebKit | 철판클럽 공개 1440px | 4/4 | | PASS | WebKit | 철판클럽 가맹 390px | 4/4 | | PASS | WebKit | 철판클럽 가맹 1440px | 4/4 | | PASS | axe 접근성 | 한남자리 공개 390px | 2/2 | | PASS | axe 접근성 | 한남자리 공개 1440px | 2/2 | | PASS | axe 접근성 | 한남자리 관리자 390px | 2/2 | | PASS | axe 접근성 | 한남자리 관리자 1440px | 2/2 | | PASS | axe 접근성 | 철판클럽 공개 390px | 2/2 | | PASS | axe 접근성 | 철판클럽 공개 1440px | 2/2 | | PASS | axe 접근성 | 철판클럽 가맹 390px | 2/2 | | PASS | axe 접근성 | 철판클럽 가맹 1440px | 2/2 | | PASS | 성능과 자산 | 한남자리 공개 390px | 4/4 | | PASS | 성능과 자산 | 한남자리 공개 1440px | 4/4 | | PASS | 성능과 자산 | 한남자리 관리자 390px | 4/4 | | PASS | 성능과 자산 | 한남자리 관리자 1440px | 4/4 | | PASS | 성능과 자산 | 철판클럽 공개 390px | 4/4 | | PASS | 성능과 자산 | 철판클럽 공개 1440px | 4/4 | | PASS | 성능과 자산 | 철판클럽 가맹 390px | 4/4 | | PASS | 성능과 자산 | 철판클럽 가맹 1440px | 4/4 | | PASS | 점진 향상 | 한남자리 공개 JavaScript 없음 | 4/4 | | PASS | 점진 향상 | 한남자리 공개 감소 모션 | 4/4 | | PASS | 점진 향상 | 한남자리 관리자 JavaScript 없음 | 4/4 | | PASS | 점진 향상 | 한남자리 관리자 감소 모션 | 4/4 | | PASS | 점진 향상 | 철판클럽 공개 JavaScript 없음 | 4/4 | | PASS | 점진 향상 | 철판클럽 공개 감소 모션 | 4/4 | | PASS | 점진 향상 | 철판클럽 가맹 JavaScript 없음 | 4/4 | | PASS | 점진 향상 | 철판클럽 가맹 감소 모션 | 4/4 | | PASS | 한남자리 공개 기능 | 분석 전 다섯 조건과 범위 무결성 | 3/3 | | PASS | 한남자리 공개 기능 | 매매 다섯 조건 briefing compare와 시각 증거 | 3/3 | | PASS | 한남자리 공개 기능 | 전세 예산 면적 입주 주차 변형 | 3/3 | | PASS | 한남자리 공개 기능 | 월세 보증금과 월 납부 분리 | 3/3 | | PASS | 한남자리 공개 기능 | 세 후보 장면 matrix dossier 상담 동기화 | 3/3 | | PASS | 한남자리 공개 기능 | 면적과 가격 단위 왕복 | 3/3 | | PASS | 한남자리 공개 기능 | 서류철 다섯 탭 클릭과 키보드 | 3/3 | | PASS | 한남자리 공개 기능 | 다섯 조건 저장과 상담 무부작용 | 3/3 | | PASS | 철판클럽 공개 기능 | 메뉴 분류 필터 | 3/3 | | PASS | 철판클럽 공개 기능 | 메뉴 빈 상태와 전체 복구 | 3/3 | | PASS | 철판클럽 공개 기능 | 매운 더블 프리셋 | 3/3 | | PASS | 철판클럽 공개 기능 | 세트 조합과 시각 증거 | 3/3 | | PASS | 철판클럽 공개 기능 | 재료 조정과 알레르기 재계산 | 3/3 | | PASS | 철판클럽 공개 기능 | 영업 종료 매장 선택 경계 | 3/3 | | PASS | 철판클럽 공개 기능 | 매장 검색 일치 | 3/3 | | PASS | 철판클럽 공개 기능 | 매장 검색 빈 결과와 복구 | 3/3 | | PASS | 철판클럽 공개 기능 | 조합 저장 성공 | 3/3 | | PASS | 철판클럽 공개 기능 | 조합 저장 실패와 입력 보존 | 3/3 | | PASS | 철판클럽 가맹 기능 | 첫 단계 필수값 오류 | 3/3 | | PASS | 철판클럽 가맹 기능 | 첫 단계 정상 전환 | 3/3 | | PASS | 철판클럽 가맹 기능 | 점포 면적 조건부 환산 | 3/3 | | PASS | 철판클럽 가맹 기능 | 두 번째 단계 오류와 복구 | 3/3 | | PASS | 철판클럽 가맹 기능 | 검토 값과 시각 증거 | 3/3 | | PASS | 철판클럽 가맹 기능 | 문의 체험 동의 오류 | 3/3 | | PASS | 철판클럽 가맹 기능 | 문의 준비 완료와 다시 시작 | 3/3 | | PASS | 철판클럽 가맹 기능 | 문의 준비 실패와 재시도 | 3/3 | | PASS | 한남자리 관리자 기능 | 초기 선택과 조사관 동기화 | 3/3 | | PASS | 한남자리 관리자 기능 | 행 선택 전환 | 3/3 | | PASS | 한남자리 관리자 기능 | 검색 일치 결과 | 3/3 | | PASS | 한남자리 관리자 기능 | 검색 빈 상태와 초기화 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 검수 필요 상태 필터 | 3/3 | | PASS | 한남자리 관리자 기능 | 매물명 오름차순 정렬 | 3/3 | | PASS | 한남자리 관리자 기능 | 불러오는 중과 정상 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 강제 빈 대기열과 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 불러오기 실패와 마지막 자료 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 자료 오래됨과 정상 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 버전 충돌 저장 실패와 정상 재시도 | 3/3 | | PASS | 한남자리 관리자 기능 | 권한 제한과 정상 복구 | 3/3 | | PASS | 한남자리 관리자 기능 | 키보드 탭과 첫 누락 초점 | 3/3 | | PASS | 한남자리 관리자 기능 | 실제 광고 차단 대화상자와 시각 증거 | 3/3 | | PASS | 한남자리 관리자 기능 | AI 주장 검토 완료 | 3/3 | | PASS | 한남자리 관리자 기능 | 새 예시 초안 생성 | 3/3 | ## Visual evidence | name | file | geometry | bytes | sha256 | | --- | --- | ---: | ---: | --- | | estate-public-390 | `tools/.gen/showcase-duo/estate-public-390.png` | 390x844 | 189923 | `df0c70be772242b30390249ea3f2289dcaf718ec5c0f7d0a3bf12aa2b8d05ee1` | | estate-public-1440 | `tools/.gen/showcase-duo/estate-public-1440.png` | 1440x900 | 552244 | `349f593d64e0a5dcf549ab7344166dca590c38b48c6a3e5d9517b2ab38af0f91` | | estate-admin-390 | `tools/.gen/showcase-duo/estate-admin-390.png` | 390x844 | 101662 | `c61b6a0c5df7a1b518a45d36f46cfe5746c75e6cb202320fee56c66911db540b` | | estate-admin-1440 | `tools/.gen/showcase-duo/estate-admin-1440.png` | 1440x900 | 216108 | `1aba620a23ccb0abca843f15c25d835db18c7f7fc61e34137419ae1ed47382ed` | | burger-public-390 | `tools/.gen/showcase-duo/burger-public-390.png` | 390x844 | 204547 | `015c028b153385cf355d5828a4bfded2135a148222a2beff20d750b09ba99e55` | | burger-public-1440 | `tools/.gen/showcase-duo/burger-public-1440.png` | 1440x900 | 773543 | `86d82b8a54295b5dc63c9be98820a0a186b2b27fd5506bd383b23c5285ef0701` | | burger-franchise-390 | `tools/.gen/showcase-duo/burger-franchise-390.png` | 390x844 | 87915 | `18f5e9ad12800605c870b0aa1975b7c2a98116484fa0d72b12309510466da676` | | burger-franchise-1440 | `tools/.gen/showcase-duo/burger-franchise-1440.png` | 1440x900 | 782399 | `a551bb80ede996b0ab163ff4e875f1d073adc6fce2b14cd00c93171e08720483` | | estate-ai-adjusted-1440 | `tools/.gen/showcase-duo/estate-ai-adjusted-1440.png` | 1440x900 | 98628 | `ed0388bb5294e5b59aede0adc2c5b6c994a73bc371f9c0b047fd7bee70f444a8` | | burger-builder-valid-1440 | `tools/.gen/showcase-duo/burger-builder-valid-1440.png` | 1440x900 | 332505 | `64ddde0ed45b5ea942dd9f4a0eb51faadaf2ebf93c51247aa15f540d1e0bcb97` | | burger-franchise-review-1440 | `tools/.gen/showcase-duo/burger-franchise-review-1440.png` | 1440x900 | 82943 | `b5f3d1f19d0f099c1443ecf0e90c6f80718c82cd9183c92c4995e1f8eed64546` | | estate-admin-block-dialog-1440 | `tools/.gen/showcase-duo/estate-admin-block-dialog-1440.png` | 1440x900 | 240971 | `89973d8d55e74915b5f770a576d93d0022476b9477662ed5adf7859095df5a71` | ## Assertion ledger ### PASS · Chromium 반응형 · 한남자리 공개 320px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 320 - actual: 320 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 844 - actual: 7004 ### PASS · Chromium 반응형 · 한남자리 공개 390px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 390x844, >10KB, sha256 - actual: {"pass":true,"name":"estate-public-390","file":"tools/.gen/showcase-duo/estate-public-390.png","exists":true,"width":390,"height":844,"bytes":189923,"sha256":"df0c70be772242b30390249ea3f2289dcaf718ec5c0f7d0a3bf12aa2b8d05ee1"} ### PASS · Chromium 반응형 · 한남자리 공개 768px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 768 - actual: 768 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 900 - actual: 6005 ### PASS · Chromium 반응형 · 한남자리 공개 1440px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 1440x900, >10KB, sha256 - actual: {"pass":true,"name":"estate-public-1440","file":"tools/.gen/showcase-duo/estate-public-1440.png","exists":true,"width":1440,"height":900,"bytes":552244,"sha256":"349f593d64e0a5dcf549ab7344166dca590c38b48c6a3e5d9517b2ab38af0f91"} ### PASS · Chromium 반응형 · 한남자리 관리자 320px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 320 - actual: 320 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 1 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 844 - actual: 2129 ### PASS · Chromium 반응형 · 한남자리 관리자 390px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 1 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 390x844, >10KB, sha256 - actual: {"pass":true,"name":"estate-admin-390","file":"tools/.gen/showcase-duo/estate-admin-390.png","exists":true,"width":390,"height":844,"bytes":101662,"sha256":"c61b6a0c5df7a1b518a45d36f46cfe5746c75e6cb202320fee56c66911db540b"} ### PASS · Chromium 반응형 · 한남자리 관리자 768px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 768 - actual: 768 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 1 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 900 - actual: 1743 ### PASS · Chromium 반응형 · 한남자리 관리자 1440px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 1 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 1440x900, >10KB, sha256 - actual: {"pass":true,"name":"estate-admin-1440","file":"tools/.gen/showcase-duo/estate-admin-1440.png","exists":true,"width":1440,"height":900,"bytes":216108,"sha256":"1aba620a23ccb0abca843f15c25d835db18c7f7fc61e34137419ae1ed47382ed"} ### PASS · Chromium 반응형 · 철판클럽 공개 320px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 320 - actual: 320 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 844 - actual: 11179 ### PASS · Chromium 반응형 · 철판클럽 공개 390px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 390x844, >10KB, sha256 - actual: {"pass":true,"name":"burger-public-390","file":"tools/.gen/showcase-duo/burger-public-390.png","exists":true,"width":390,"height":844,"bytes":204547,"sha256":"015c028b153385cf355d5828a4bfded2135a148222a2beff20d750b09ba99e55"} ### PASS · Chromium 반응형 · 철판클럽 공개 768px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 768 - actual: 768 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 900 - actual: 10278 ### PASS · Chromium 반응형 · 철판클럽 공개 1440px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 상태 시각 증거 - expected: 1440x900, >10KB, sha256 - actual: {"pass":true,"name":"burger-public-1440","file":"tools/.gen/showcase-duo/burger-public-1440.png","exists":true,"width":1440,"height":900,"bytes":773543,"sha256":"86d82b8a54295b5dc63c9be98820a0a186b2b27fd5506bd383b23c5285ef0701"} ### PASS · Chromium 반응형 · 철판클럽 가맹 320px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 320 - actual: 320 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 844 - actual: 10747 ### PASS · Chromium 반응형 · 철판클럽 가맹 390px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 시각 증거와 영웅 행동 정렬 - expected: 390x844, controls >=44px, center diff <=2px - actual: {"shot":{"pass":true,"name":"burger-franchise-390","file":"tools/.gen/showcase-duo/burger-franchise-390.png","exists":true,"width":390,"height":844,"bytes":87915,"sha256":"18f5e9ad12800605c870b0aa1975b7c2a98116484fa0d72b12309510466da676"},"heroActions":[{"selector":"button button-light","height":48,"centerY":527.375},{"selector":"text-link light-link","height":48,"centerY":527.375}]} ### PASS · Chromium 반응형 · 철판클럽 가맹 768px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 768 - actual: 768 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 문서가 뷰포트를 채움 - expected: height >= 900 - actual: 8723 ### PASS · Chromium 반응형 · 철판클럽 가맹 1440px - PASS · HTTP 상태 - expected: 200 - actual: 200 - PASS · 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · 문서 h1 정확히 하나 - expected: 1 - actual: 1 - PASS · h1 최대 두 줄 - expected: 1~2 lines - actual: 2 - PASS · 보이는 텍스트 대비 AA - expected: 0 violations - actual: [] - PASS · 이미지와 런타임 무결성 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} - PASS · 기본 시각 증거와 영웅 행동 정렬 - expected: 1440x900, controls >=44px, center diff <=2px - actual: {"shot":{"pass":true,"name":"burger-franchise-1440","file":"tools/.gen/showcase-duo/burger-franchise-1440.png","exists":true,"width":1440,"height":900,"bytes":782399,"sha256":"a551bb80ede996b0ab163ff4e875f1d073adc6fce2b14cd00c93171e08720483"},"heroActions":[{"selector":"button button-light","height":48,"centerY":612.15625},{"selector":"text-link light-link","height":48,"centerY":612.15625}]} ### PASS · WebKit · 한남자리 공개 390px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 한남자리 공개 1440px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 한남자리 관리자 390px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":1} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 한남자리 관리자 1440px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":1} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 철판클럽 공개 390px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 철판클럽 공개 1440px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 철판클럽 가맹 390px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 390 - actual: 390 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · WebKit · 철판클럽 가맹 1440px - PASS · WebKit HTTP 상태 - expected: 200 - actual: 200 - PASS · WebKit 가로 오버플로 없음 - expected: <= 1440 - actual: 1440 - PASS · WebKit 제목 구조 - expected: 1 h1 / 1~2 lines - actual: {"count":1,"lines":2} - PASS · WebKit 이미지와 런타임 - expected: 0 broken / 0 errors - actual: {"broken":[],"errors":[]} ### PASS · axe 접근성 · 한남자리 공개 390px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 한남자리 공개 1440px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 한남자리 관리자 390px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 한남자리 관리자 1440px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 철판클럽 공개 390px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 철판클럽 공개 1440px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 철판클럽 가맹 390px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · axe 접근성 · 철판클럽 가맹 1440px - PASS · 중대 접근성 위반 없음 - expected: 0 critical/serious - actual: [] - PASS · 보통 접근성 위반 없음 - expected: 0 moderate - actual: [] ### PASS · 성능과 자산 · 한남자리 공개 390px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..266240 bytes - actual: 60102 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 25242 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 35387 ### PASS · 성능과 자산 · 한남자리 공개 1440px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..358400 bytes - actual: 125514 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 25242 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 160901 ### PASS · 성능과 자산 · 한남자리 관리자 390px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..266240 bytes - actual: 44804 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 25095 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 41774 ### PASS · 성능과 자산 · 한남자리 관리자 1440px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..358400 bytes - actual: 44804 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 25095 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 41774 ### PASS · 성능과 자산 · 철판클럽 공개 390px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..266240 bytes - actual: 85848 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 11177 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 28832 ### PASS · 성능과 자산 · 철판클럽 공개 1440px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0.0105 - PASS · 첫 화면 이미지 예산 - expected: 0..358400 bytes - actual: 99272 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 11177 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 28832 ### PASS · 성능과 자산 · 철판클럽 가맹 390px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0 - PASS · 첫 화면 이미지 예산 - expected: 0..266240 bytes - actual: 119384 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 11756 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 44919 ### PASS · 성능과 자산 · 철판클럽 가맹 1440px - PASS · CLS 예산 - expected: <= 0.1 - actual: 0.0043 - PASS · 첫 화면 이미지 예산 - expected: 0..358400 bytes - actual: 119384 - PASS · 로컬 자바스크립트 예산 - expected: 1..180KB - actual: 11756 - PASS · 로컬 CSS 예산 - expected: 1..180KB - actual: 44919 ### PASS · 점진 향상 · 한남자리 공개 JavaScript 없음 - PASS · 무자바스크립트 HTTP 상태 - expected: 200 - actual: 200 - PASS · 핵심 문서 구조 유지 - expected: visible h1 and main - actual: {"h1":true,"main":true} - PASS · 읽기 가능한 정적 대안 - expected: true - actual: true - PASS · 무자바스크립트 깨진 이미지 - expected: 0 - actual: 0 ### PASS · 점진 향상 · 한남자리 공개 감소 모션 - PASS · 감소 모션 미디어 일치 - expected: true - actual: true - PASS · 부드러운 스크롤 해제 - expected: auto - actual: auto - PASS · 반복 애니메이션 제거 - expected: <= 0.01s - actual: 0.00001 - PASS · 감소 모션에서도 핵심 작동 - expected: route-specific state changed - actual: 35.8평 ### PASS · 점진 향상 · 한남자리 관리자 JavaScript 없음 - PASS · 무자바스크립트 HTTP 상태 - expected: 200 - actual: 200 - PASS · 핵심 문서 구조 유지 - expected: visible h1 and main - actual: {"h1":true,"main":true} - PASS · 읽기 가능한 정적 대안 - expected: true - actual: true - PASS · 무자바스크립트 깨진 이미지 - expected: 0 - actual: 0 ### PASS · 점진 향상 · 한남자리 관리자 감소 모션 - PASS · 감소 모션 미디어 일치 - expected: true - actual: true - PASS · 부드러운 스크롤 해제 - expected: auto - actual: auto - PASS · 반복 애니메이션 제거 - expected: <= 0.01s - actual: 0.00001 - PASS · 감소 모션에서도 핵심 작동 - expected: route-specific state changed - actual: true ### PASS · 점진 향상 · 철판클럽 공개 JavaScript 없음 - PASS · 무자바스크립트 HTTP 상태 - expected: 200 - actual: 200 - PASS · 핵심 문서 구조 유지 - expected: visible h1 and main - actual: {"h1":true,"main":true} - PASS · 읽기 가능한 정적 대안 - expected: true - actual: true - PASS · 무자바스크립트 깨진 이미지 - expected: 0 - actual: 0 ### PASS · 점진 향상 · 철판클럽 공개 감소 모션 - PASS · 감소 모션 미디어 일치 - expected: true - actual: true - PASS · 부드러운 스크롤 해제 - expected: auto - actual: auto - PASS · 반복 애니메이션 제거 - expected: <= 0.01s - actual: 0.00001 - PASS · 감소 모션에서도 핵심 작동 - expected: route-specific state changed - actual: 2 ### PASS · 점진 향상 · 철판클럽 가맹 JavaScript 없음 - PASS · 무자바스크립트 HTTP 상태 - expected: 200 - actual: 200 - PASS · 핵심 문서 구조 유지 - expected: visible h1 and main - actual: {"h1":true,"main":true} - PASS · 읽기 가능한 정적 대안 - expected: true - actual: true - PASS · 무자바스크립트 깨진 이미지 - expected: 0 - actual: 0 ### PASS · 점진 향상 · 철판클럽 가맹 감소 모션 - PASS · 감소 모션 미디어 일치 - expected: true - actual: true - PASS · 부드러운 스크롤 해제 - expected: auto - actual: auto - PASS · 반복 애니메이션 제거 - expected: <= 0.01s - actual: 0.00001 - PASS · 감소 모션에서도 핵심 작동 - expected: route-specific state changed - actual: 예시 호칭을 두 글자 이상 입력해 주세요. ### PASS · 한남자리 공개 기능 · 분석 전 다섯 조건과 범위 무결성 - PASS · 보이는 의사결정 필드 집합 - expected: ["budget","minArea","moveIn","parking","trade"] - actual: [{"name":"trade","visible":true},{"name":"budget","visible":true},{"name":"minArea","visible":true},{"name":"moveIn","visible":true},{"name":"parking","visible":true}] - PASS · 분석 전 briefing matrix dossier 미실행 상태 - expected: empty visible / groups hidden / five 분석 후 notes / no 적합 claim - actual: {"emptyVisible":true,"groupsHidden":true,"listItems":0,"analysisHome":"아직 분석하지 않았습니다","analysisText":"\n 예시 AI 브리핑 · 모의 조건 비교 · 공인중개사 확인 전아직 분석하지 않았습니다\n \n 01\n 내 조건을 먼저 알려 주세요.분석을 실행하면 세 후보 가운데 조건과 가까운 집을 고르고, 이유를 세 묶음으로 정리합니다.\n 조건 입력으로 이동\n \n \n 01조건과 맞는 점\n 02조정이 필요한 점\n 03중개사와 확인할 점\n \n ","matrixNotes":["분석 후 거래 조건 대조","분석 후 예산과 대조","분석 후 면적과 대조","분석 후 주차와 대조","분석 후 입주일과 대조"],"dossierFit":"브리핑을 실행하면 입력 조건과의 관계를 표시합니다."} - PASS · 공개 범위 고지와 금지 토큰 - expected: scoped 예시 labels / every image 연출 / footer limits / no legacy tokens - actual: {"forbidden":[],"candidateScopes":1,"dossierScopes":1,"imageCount":4,"imageProvenance":["연출 이미지","연출 이미지","연출 이미지","연출 이미지"],"demoStrip":"디자인 쇼케이스 · 가상 브랜드 · 상담은 접수되지 않습니다","limitItems":2,"footer":"한남자리는 가상 브랜드이며 등록 공인중개사무소나 거래 서비스를 제공하지 않습니다."} ### PASS · 한남자리 공개 기능 · 매매 다섯 조건 briefing compare와 시각 증거 - PASS · 브리핑 세 묶음 생성 - expected: empty hidden / groups visible / all lists populated - actual: {"emptyHidden":true,"groupsVisible":true,"counts":[1,4,2],"home":"정원형 연립주택 브리핑"} - PASS · 선택 후보와 다섯 조건 compare dossier 동기화 - expected: home-1 / 5 resolved matrix notes / dossier recomputed - actual: {"selected":"home-1","matrixValues":["매매","38억 원","118.42㎡","2대","2026.12.20 이후 협의"],"matrixNotes":["입력과 같음","예산보다 18억 높음","최소보다 11.58㎡ 작음","1대 부족","희망일보다 늦음"],"dossier":"정원형 연립주택","dossierFit":"매매 조건과 같습니다."} - PASS · 새 briefing compare 시각 증거 - expected: exists / 1440x900 / >10KB / sha256 - actual: {"pass":true,"name":"estate-ai-adjusted-1440","file":"tools/.gen/showcase-duo/estate-ai-adjusted-1440.png","exists":true,"width":1440,"height":900,"bytes":98628,"sha256":"ed0388bb5294e5b59aede0adc2c5b6c994a73bc371f9c0b047fd7bee70f444a8"} ### PASS · 한남자리 공개 기능 · 전세 예산 면적 입주 주차 변형 - PASS · 전세 후보와 서류철 선택 - expected: home-2 / 복층형 공동주택 - actual: {"selected":"home-2","analysis":"복층형 공동주택 브리핑","dossier":"복층형 공동주택"} - PASS · 다섯 입력만 의사결정 주장에 반영 - expected: trade/price/area/parking/move and no commute/sunlight - actual: {"titles":["거래 형태","가격 상한","전용면적","주차","입주 시점"],"text":"\n 01조건과 맞는 점거래 형태전세 조건과 같습니다.입력한 조건 · 매물 정보\n 02조정이 필요한 점가격 상한입력한 상한보다 1억 원 높습니다.입력한 조건 · 매물 정보전용면적최소 면적보다 2.20㎡ 작습니다.입력한 조건 · 매물 정보주차필요한 수보다 1대 부족합니다.입력한 조건 · 매물 정보입주 시점2027.01.15 이후 협의으로 입력한 희망일보다 늦습니다.입력한 조건 · 매물 정보\n 03중개사와 확인할 점권리 관계등기와 계약 조건은 서류를 통해 다시 살펴야 합니다.공인중개사 확인현장 상태소음, 마감과 채광은 방문해서 확인해야 합니다.현장 확인\n "} - PASS · 전세 다섯 조건 matrix 판정 - expected: same / +1억 / -2.20㎡ / -1 car / late - actual: ["입력과 같음","예산보다 1억 높음","최소보다 2.20㎡ 작음","1대 부족","희망일보다 늦음"] ### PASS · 한남자리 공개 기능 · 월세 보증금과 월 납부 분리 - PASS · 월세 후보와 서류철 선택 - expected: home-3 / 테라스형 다세대주택 - actual: {"selected":"home-3","analysis":"테라스형 다세대주택 브리핑","dossier":"테라스형 다세대주택"} - PASS · 보증금만으로 가격 적합 처리 금지 - expected: no price fit / 월 납부 조건 in adjust - actual: {"fitTitles":["거래 형태","전용면적","주차","입주 시점"],"adjustTitles":["월 납부 조건"],"adjustText":"월 납부 조건보증금은 상한 안쪽이지만 월 1,200만 원을 별도로 살펴야 합니다.입력한 조건 · 매물 정보"} - PASS · 월세 matrix dossier에 별도 확인 유지 - expected: deposit + monthly / monthly note in matrix and dossier - actual: {"price":"보증금 5억 · 월 1,200만","note":"보증금은 상한 안쪽 · 월 납부 별도","dossierRisk":"보증금은 상한 안쪽이지만 월 1,200만 원을 별도로 살펴야 합니다.등기와 계약 조건은 서류를 통해 다시 살펴야 합니다.소음, 마감과 채광은 방문해서 확인해야 합니다."} ### PASS · 한남자리 공개 기능 · 세 후보 장면 matrix dossier 상담 동기화 - PASS · 정원형 연립주택 전체 표면 동기화 - expected: home-1 / image / five matrix / dossier / consult - actual: {"snapshot":{"selected":"home-1","selectedCount":1,"scene":"정원형 연립주택","image":"./assets/hannam-interior-1200.webp","imageAlt":"큰 창과 목재 수납이 있는 거실을 표현한 이미지","matrix":["매매","38억 원","118.42㎡","2대","2026.12.20 이후 협의"],"dossier":"정원형 연립주택","specs":["매매","38억 원","118.42㎡","2대","2026.12.20 이후 협의"],"consult":"정원형 연립주택"},"expected":{"id":"home-1","name":"정원형 연립주택","image":"hannam-interior-1200.webp","matrix":["매매","38억 원","118.42㎡","2대","2026.12.20 이후 협의"]}} - PASS · 복층형 공동주택 전체 표면 동기화 - expected: home-2 / image / five matrix / dossier / consult - actual: {"snapshot":{"selected":"home-2","selectedCount":1,"scene":"복층형 공동주택","image":"./assets/hannam-evening-1600.webp","imageAlt":"서울 언덕 생활권의 현대 주거 외관을 표현한 이미지","matrix":["전세","22억 원","142.80㎡","2대","2027.01.15 이후 협의"],"dossier":"복층형 공동주택","specs":["전세","22억 원","142.80㎡","2대","2027.01.15 이후 협의"],"consult":"복층형 공동주택"},"expected":{"id":"home-2","name":"복층형 공동주택","image":"hannam-evening-1600.webp","matrix":["전세","22억 원","142.80㎡","2대","2027.01.15 이후 협의"]}} - PASS · 테라스형 다세대주택 전체 표면 동기화 - expected: home-3 / image / five matrix / dossier / consult - actual: {"snapshot":{"selected":"home-3","selectedCount":1,"scene":"테라스형 다세대주택","image":"./assets/hannam-interior-1200.webp","imageAlt":"큰 창과 목재 수납이 있는 거실을 표현한 이미지","matrix":["월세","보증금 5억 · 월 1,200만","140.84㎡","1대","2026.11.01 이후 협의"],"dossier":"테라스형 다세대주택","specs":["월세","보증금 5억 · 월 1,200만","140.84㎡","1대","2026.11.01 이후 협의"],"consult":"테라스형 다세대주택"},"expected":{"id":"home-3","name":"테라스형 다세대주택","image":"hannam-interior-1200.webp","matrix":["월세","보증금 5억 · 월 1,200만","140.84㎡","1대","2026.11.01 이후 협의"]}} ### PASS · 한남자리 공개 기능 · 면적과 가격 단위 왕복 - PASS · 평 단위 전체 비교 표면 - expected: pressed / 3 candidate areas / matrix and dossier 35.8평 - actual: {"pressed":"true","candidates":["매매 · 35.8평","전세 · 43.2평","월세 · 42.6평"],"matrix":"35.8평","spec":"35.8평"} - PASS · 면적 단가 matrix dossier 반영 - expected: unit pressed / both price values are per-pyeong - actual: {"pressed":"true","matrix":"평당 약 10,610만 원","spec":"평당 약 10,610만 원"} - PASS · 총액과 제곱미터 복원 - expected: m2 and total pressed / 118.42㎡ / 38억 원 - actual: {"areaPressed":"true","pricePressed":"true","area":"118.42㎡","price":"38억 원"} ### PASS · 한남자리 공개 기능 · 서류철 다섯 탭 클릭과 키보드 - PASS · 가격 탭 클릭 상태 - expected: price selected/focused/sole visible/tabstop - actual: {"selected":"price","selectedCount":1,"visible":["price"],"focus":"price","tabStops":["price"]} - PASS · 화살표와 Home 키보드 순환 - expected: rights → location → facility → basic with focus - actual: [{"selected":"rights","selectedCount":1,"visible":["rights"],"focus":"rights","tabStops":["rights"]},{"selected":"location","selectedCount":1,"visible":["location"],"focus":"location","tabStops":["location"]},{"selected":"facility","selectedCount":1,"visible":["facility"],"focus":"facility","tabStops":["facility"]},{"selected":"basic","selectedCount":1,"visible":["basic"],"focus":"basic","tabStops":["basic"]}] - PASS · 다섯 탭 aria-controls 관계 - expected: 5 unique tabs map to 5 panels - actual: [{"name":"basic","controls":"dossier-basic","panel":"basic","role":"tab"},{"name":"price","controls":"dossier-price","panel":"price","role":"tab"},{"name":"rights","controls":"dossier-rights","panel":"rights","role":"tab"},{"name":"location","controls":"dossier-location","panel":"location","role":"tab"},{"name":"facility","controls":"dossier-facility","panel":"facility","role":"tab"}] ### PASS · 한남자리 공개 기능 · 다섯 조건 저장과 상담 무부작용 - PASS · 로컬 저장은 다섯 필드만 - expected: exact fields and typed values / no network mutation - actual: {"saved":{"trade":"monthly","budget":31,"minArea":135,"moveIn":"2027-02-01","parking":1},"externalMutations":[]} - PASS · 새로고침 뒤 다섯 입력 복원 - expected: monthly / 31 / 135 / 2027-02-01 / 1 - actual: {"trade":"monthly","budget":"31","minArea":"135","moveIn":"2027-02-01","parking":"1"} - PASS · 상담 완료 바깥 클릭 Escape와 초점 복귀 - expected: preview only / both close / trigger focus / storage unchanged / no requests - actual: {"finished":"준비할 순서권리 관계와 계약 조건현장 방문 때 볼 항목","outside":{"open":false,"locked":false,"focus":true},"escape":{"open":false,"locked":false,"focus":true,"storage":"{\"trade\":\"monthly\",\"budget\":31,\"minArea\":135,\"moveIn\":\"2027-02-01\",\"parking\":1}"},"saved":"{\"trade\":\"monthly\",\"budget\":31,\"minArea\":135,\"moveIn\":\"2027-02-01\",\"parking\":1}","externalMutations":[]} ### PASS · 철판클럽 공개 기능 · 메뉴 분류 필터 - PASS · 곁들임 필터 선택 - expected: true - actual: true - PASS · 곁들임 두 항목만 노출 - expected: 2 side items - actual: ["side","side"] - PASS · 필터 결과가 있어 빈 상태 숨김 - expected: true - actual: true ### PASS · 철판클럽 공개 기능 · 메뉴 빈 상태와 전체 복구 - PASS · 메뉴 빈 상태 노출 - expected: true - actual: true - PASS · 빈 상태에서 메뉴 0개 - expected: 0 - actual: 0 - PASS · 모든 메뉴 보기로 복구 - expected: fixture removed and six items visible - actual: {"query":"","count":6} ### PASS · 철판클럽 공개 기능 · 매운 더블 프리셋 - PASS · 매운 맛과 더블 동시 선택 - expected: 2 - actual: 2 - PASS · 프리셋 이름 반영 - expected: 고추 피클 더블 - actual: 고추 피클 더블 - PASS · 매운 조합 알레르기 반영 - expected: contains 토마토 - actual: 알, 우유, 대두, 밀, 쇠고기, 토마토 ### PASS · 철판클럽 공개 기능 · 세트 조합과 시각 증거 - PASS · 세트 선택 뒤 곁들임 입력 활성 - expected: side and drink enabled - actual: [false,false] - PASS · 세트 예시 총액 계산 - expected: 13,000원 - actual: 13,000원 - PASS · 유효 버거 조합 시각 증거 - expected: 1440x900, >10KB, sha256 - actual: {"pass":true,"name":"burger-builder-valid-1440","file":"tools/.gen/showcase-duo/burger-builder-valid-1440.png","exists":true,"width":1440,"height":900,"bytes":332505,"sha256":"64ddde0ed45b5ea942dd9f4a0eb51faadaf2ebf93c51247aa15f540d1e0bcb97"} ### PASS · 철판클럽 공개 기능 · 재료 조정과 알레르기 재계산 - PASS · 재료 문장 동기화 - expected: no cheese / extra onion / sauce side - actual: 패티 두 장 / 치즈 없음 / 양파 많이 / 피클 기본 / 소스 따로 - PASS · 우유 알레르기 제거 - expected: does not contain 우유 - actual: 알, 대두, 밀, 쇠고기 - PASS · 재료 변경 총액 계산 - expected: 8,500원 - actual: 8,500원 ### PASS · 철판클럽 공개 기능 · 영업 종료 매장 선택 경계 - PASS · 목록과 지도 연남 선택 - expected: yeonnam selected in both - actual: {"card":"yeonnam","pin":"yeonnam"} - PASS · 종료 상태 요약 - expected: contains 영업 종료 - actual: 오늘 영업 종료 예시 - PASS · 저장 행동 차단과 이유 - expected: disabled / choose another store - actual: {"disabled":true,"text":"다른 매장을 골라 주세요"} ### PASS · 철판클럽 공개 기능 · 매장 검색 일치 - PASS · 검색 결과 한 매장 - expected: 1 - actual: 1 - PASS · 검색 결과와 지도 핀 일치 - expected: yeonnam - actual: yeonnam - PASS · 검색어가 있어 지우기 노출 - expected: false - actual: false ### PASS · 철판클럽 공개 기능 · 매장 검색 빈 결과와 복구 - PASS · 매장 빈 상태 노출 - expected: true - actual: true - PASS · 빈 검색 결과 0개 - expected: 0 - actual: 0 - PASS · 검색 조건 초기화로 세 매장 복구 - expected: blank query / 3 stores - actual: {"query":"","count":3} ### PASS · 철판클럽 공개 기능 · 조합 저장 성공 - PASS · 현재 탭에 조합 스냅샷 저장 - expected: classic / patty 2 / seongsu - actual: {"flavor":"classic","patty":"2","cheese":"1","onion":"regular","pickle":"regular","sauce":"regular","serving":"single","store":"seongsu"} - PASS · 실제 주문 미전송 안내 - expected: contains 실제 주문으로 전송되지 않습니다 - actual: 이 기기의 현재 탭에 선택 내용을 남겼어요. 실제 주문으로 전송되지 않습니다. - PASS · 성공 상태 오류 스타일 없음 - expected: false - actual: false ### PASS · 철판클럽 공개 기능 · 조합 저장 실패와 입력 보존 - PASS · 저장 실패 안내 - expected: contains 남기지 못했어요 - actual: 선택 내용을 남기지 못했어요. 고른 내용은 화면에 그대로 두었습니다. - PASS · 저장 실패 오류 스타일 - expected: true - actual: true - PASS · 실패 뒤 조합과 저장소 상태 - expected: onion extra retained / no snapshot - actual: {"onion":"extra","stored":null} ### PASS · 철판클럽 가맹 기능 · 첫 단계 필수값 오류 - PASS · 첫 단계 오류 세 가지 - expected: name / region / area kind - actual: ["예시 호칭을 두 글자 이상 입력해 주세요.","희망 지역을 골라 주세요.","희망 상권을 골라 주세요."] - PASS · 첫 오류 입력으로 초점 - expected: demo-name - actual: demo-name - PASS · 오류 뒤 첫 단계 유지 - expected: 1 - actual: 1 ### PASS · 철판클럽 가맹 기능 · 첫 단계 정상 전환 - PASS · 두 번째 단계 노출 - expected: 2 - actual: 2 - PASS · 단계 표시 aria-current - expected: 2 - actual: 2 - PASS · 두 번째 제목으로 초점 이동 - expected: step-two-heading - actual: step-two-heading ### PASS · 철판클럽 가맹 기능 · 점포 면적 조건부 환산 - PASS · 협의 중이면 면적 입력 노출 - expected: true - actual: true - PASS · 면적 입력 필수 전환 - expected: true - actual: true - PASS · 제곱미터와 평 환산 병기 - expected: contains 약 30평 - actual: 99.2㎡ · 약 30평 ### PASS · 철판클럽 가맹 기능 · 두 번째 단계 오류와 복구 - PASS · 두 번째 단계 누락 오류 - expected: possession / opening / experience - actual: ["점포 상태를 골라 주세요.","희망 시작 시기를 골라 주세요.","운영 경험 여부를 골라 주세요."] - PASS · 입력 뒤 오류 속성 해제 - expected: all aria-invalid removed - actual: 0 - PASS · 복구 뒤 검토 단계 진입 - expected: 3 - actual: 3 ### PASS · 철판클럽 가맹 기능 · 검토 값과 시각 증거 - PASS · 검토 원장에 입력값 반영 - expected: name / region / possession - actual: {"demoName":"예시점주","region":"서울 동쪽","areaKind":"주거지","storePossession":"협의 중","exclusiveArea":"99.2㎡ · 약 30평","openingWindow":"석 달에서 여섯 달","experience":"없음"} - PASS · 검토 원장에 면적 환산 - expected: contains 약 30평 - actual: 99.2㎡ · 약 30평 - PASS · 가맹 검토 단계 시각 증거 - expected: 1440x900, >10KB, sha256 - actual: {"pass":true,"name":"burger-franchise-review-1440","file":"tools/.gen/showcase-duo/burger-franchise-review-1440.png","exists":true,"width":1440,"height":900,"bytes":82943,"sha256":"b5f3d1f19d0f099c1443ecf0e90c6f80718c82cd9183c92c4995e1f8eed64546"} ### PASS · 철판클럽 가맹 기능 · 문의 체험 동의 오류 - PASS · 동의 입력 aria-invalid - expected: true - actual: true - PASS · 동의 오류 이유 - expected: contains 확인해 주세요 - actual: 문의 체험 안내를 확인해 주세요. - PASS · 동의 입력으로 초점 - expected: demo-consent - actual: demo-consent ### PASS · 철판클럽 가맹 기능 · 문의 준비 완료와 다시 시작 - PASS · 성공 패널로 전환 - expected: success visible / form hidden - actual: {"success":true,"form":true} - PASS · 입력 내용 다시 보기 3단계 - expected: 3 - actual: 3 - PASS · 처음부터 보기 입력 초기화 - expected: step 1 / blank name - actual: {"step":"1","name":""} ### PASS · 철판클럽 가맹 기능 · 문의 준비 실패와 재시도 - PASS · 제출 실패 이유 - expected: contains 바꾸지 못했어요 - actual: 지금은 문의 준비 상태를 바꾸지 못했어요. 입력 내용은 화면에 그대로 두었습니다. - PASS · 재시도 버튼 복구 - expected: enabled / 다시 시도하기 - actual: {"disabled":false,"text":"다시 시도하기"} - PASS · 실패 뒤 입력과 단계 보존 - expected: step 3 / name retained - actual: {"step":"3","name":"예시점주"} ### PASS · 한남자리 관리자 기능 · 초기 선택과 조사관 동기화 - PASS · 첫 행 선택 상태 - expected: DEMO-HJ-101 selected / aria-selected true - actual: {"id":"DEMO-HJ-101","selected":"true"} - PASS · 조사관 제목과 식별자 동기화 - expected: 한남 생활권 정원 주거 / DEMO-HJ-101 - actual: {"title":"한남 생활권 정원 주거","id":"DEMO-HJ-101 · 예시 매물"} - PASS · 초기 대기열 원장 - expected: 6 rows / 6개 예시 - actual: {"rows":6,"count":"6개 예시"} ### PASS · 한남자리 관리자 기능 · 행 선택 전환 - PASS · 닫힌 단일 대기열과 행 선택 뒤 분할 복구 - expected: closed edge <=2px / open split 0..20px - actual: {"closed":{"inspectorOpen":false,"selectedCount":0,"rightEdgeDiff":0},"restored":{"inspectorOpen":true,"gap":12,"inspectorRightDiff":0}} - PASS · 새 행만 선택 - expected: 102 true / 101 false - actual: {"next":"true","previous":"false","selectedCount":1} - PASS · 선택 제목과 상태 조사관 반영 - expected: 한강 가까운 복층 주거 / 쇼케이스 공개 - actual: {"title":"한강 가까운 복층 주거","status":"쇼케이스 공개"} ### PASS · 한남자리 관리자 기능 · 검색 일치 결과 - PASS · 검색 결과 한 행 - expected: 1 - actual: 1 - PASS · 검색 결과 식별자 - expected: DEMO-HJ-105 - actual: DEMO-HJ-105 - PASS · 검색 결과 수와 빈 상태 - expected: 1개 예시 / empty hidden - actual: {"count":"1개 예시","empty":true} ### PASS · 한남자리 관리자 기능 · 검색 빈 상태와 초기화 복구 - PASS · 검색 빈 상태 원인 안내 - expected: 0개 예시 / 현재 조건 - actual: {"count":"0개 예시","title":"현재 조건에 맞는 예시가 없습니다.","visible":true} - PASS · 빈 검색에서 보이는 행 없음 - expected: 0 - actual: 0 - PASS · 필터 초기화로 전체 복구 - expected: blank / all / 6 rows - actual: {"query":"","status":"all","rows":6} ### PASS · 한남자리 관리자 기능 · 검수 필요 상태 필터 - PASS · 검수 필요 결과 수 - expected: 2 - actual: 2 - PASS · 검수 필요 식별자 집합 - expected: DEMO-HJ-101, DEMO-HJ-106 - actual: ["DEMO-HJ-101","DEMO-HJ-106"] - PASS · 상태 필터 결과 문구 - expected: 2개 예시 - actual: 2개 예시 ### PASS · 한남자리 관리자 기능 · 매물명 오름차순 정렬 - PASS · 정렬 뒤 원장 보존 - expected: 6 - actual: 6 - PASS · 한국어 매물명 오름차순 - expected: every previous <= next - actual: ["남산 가까운 가족 주거","독서당길 안쪽 복층 주거","언덕 위 작은 정원 주거","조용한 골목의 테라스 주거","한강 가까운 복층 주거","한남 생활권 정원 주거"] - PASS · 정렬 변경 라이브 안내 - expected: contains 정렬을 바꿨습니다 - actual: 대기열 정렬을 바꿨습니다. ### PASS · 한남자리 관리자 기능 · 불러오는 중과 정상 복구 - PASS · 대기열 로딩 상태 - expected: aria-busy true / loading visible - actual: {"busy":"true","loading":true} - PASS · 로딩 라이브 안내 - expected: contains 불러오는 중 - actual: 대기열을 불러오는 중입니다. - PASS · 정상 선택으로 로딩 종료 - expected: aria-busy false / loading hidden / 6 rows - actual: {"busy":"false","loading":true,"rows":6} ### PASS · 한남자리 관리자 기능 · 강제 빈 대기열과 복구 - PASS · 강제 빈 대기열 노출 - expected: true - actual: true - PASS · 강제 빈 상태 설명 - expected: contains 아직 접수된 - actual: 아직 접수된 예시 매물이 없습니다. - PASS · 정상 선택으로 빈 상태 해제 - expected: empty hidden / 6개 예시 - actual: {"empty":true,"count":"6개 예시"} ### PASS · 한남자리 관리자 기능 · 불러오기 실패와 마지막 자료 복구 - PASS · 불러오기 실패 배너 - expected: visible / 대기열 일부 - actual: {"visible":true,"title":"대기열 일부를 불러오지 못했습니다."} - PASS · 실패 중 마지막 여섯 행 유지 - expected: 6 - actual: 6 - PASS · 정상 선택으로 실패 배너 해제 - expected: banner hidden / normal state - actual: {"hidden":true,"state":"normal"} ### PASS · 한남자리 관리자 기능 · 자료 오래됨과 정상 복구 - PASS · 자료 오래됨 차단 상태 - expected: body stale / banner visible - actual: {"stale":true,"banner":true} - PASS · 조사관 오래됨 상태 - expected: 자료 오래됨 - actual: 자료 오래됨 - PASS · 정상 선택으로 오래됨 전역 상태 해제 - expected: body normal / banner hidden - actual: {"stale":false,"hidden":true} ### PASS · 한남자리 관리자 기능 · 버전 충돌 저장 실패와 정상 재시도 - PASS · 충돌 저장 실패 배너 - expected: 버전 충돌로 저장하지 않았습니다. - actual: 버전 충돌로 저장하지 않았습니다. - PASS · 충돌 저장 실패 라이브 안내 - expected: contains 저장하지 않았습니다 - actual: 버전 충돌로 저장하지 않았습니다. - PASS · 정상 재시도는 외부 저장 없음 - expected: contains 실제 저장하지 않았습니다 - actual: 수정 시연을 마쳤습니다. 서버가 없는 데모라 실제 저장하지 않았습니다. ### PASS · 한남자리 관리자 기능 · 권한 제한과 정상 복구 - PASS · 권한 제한 행동 비활성 - expected: review/save/draft disabled - actual: [true,true,true] - PASS · 권한 제한 근거 배너 - expected: body limited / permission title - actual: {"limited":true,"title":"중개보조 예시 권한으로 보는 중입니다."} - PASS · 정상 선택으로 행동 복구 - expected: body normal / all enabled - actual: {"limited":false,"disabled":0} ### PASS · 한남자리 관리자 기능 · 키보드 탭과 첫 누락 초점 - PASS · 오른쪽 화살표로 표시 광고 탭 활성 - expected: legal selected / focused - actual: {"selected":"true","focused":"tab-legal"} - PASS · 탭과 패널 상태 동기화 - expected: legal visible / basic hidden - actual: {"legal":false,"basic":true} - PASS · 첫 누락 입력으로 초점 - expected: missing-orientation - actual: missing-orientation ### PASS · 한남자리 관리자 기능 · 실제 광고 차단 대화상자와 시각 증거 - PASS · 게시 차단 대화상자와 배경 잠금 - expected: dialog open / body locked / inspector open - actual: {"open":true,"locked":true,"inspector":true} - PASS · 게시 차단 조사관 시각 증거 - expected: exists / 1440x900 / >10KB / sha256 - actual: {"pass":true,"name":"estate-admin-block-dialog-1440","file":"tools/.gen/showcase-duo/estate-admin-block-dialog-1440.png","exists":true,"width":1440,"height":900,"bytes":240971,"sha256":"89973d8d55e74915b5f770a576d93d0022476b9477662ed5adf7859095df5a71"} - PASS · 대화상자 닫힘과 선택 상태 동시 해제 - expected: dialog closed / unlocked / inspector closed / no selected row - actual: {"open":false,"locked":false,"inspector":false,"selectedRows":0} ### PASS · 한남자리 관리자 기능 · AI 주장 검토 완료 - PASS · 지원되지 않은 주장 수정 반영 - expected: disabled / 수정 반영 - actual: {"disabled":true,"text":"수정 반영"} - PASS · 사람 검토 완료 상태 - expected: disabled / 수정 후 승인됨 / pass badge - actual: {"disabled":true,"text":"수정 후 승인됨","badge":"수정 후 승인","pass":true} - PASS · AI 검토 라이브 안내 - expected: contains 데모 외부에는 게시하지 않았습니다 - actual: AI 참고 분석을 수정 후 승인 상태로 바꿨습니다. 데모 외부에는 게시하지 않았습니다. ### PASS · 한남자리 관리자 기능 · 새 예시 초안 생성 - PASS · 초안 행 한 번만 추가 - expected: 7 rows / DEMO-HJ-NEW once - actual: {"rows":7,"drafts":1} - PASS · 새 초안 선택과 조사관 유지 - expected: draft selected / inspector open - actual: {"selected":"true","inspector":true} - PASS · 새 초안 조사관 기본값 - expected: title / 입력 전 / 7개 예시 - actual: {"title":"제목 없는 새 예시 초안","price":"미선택","count":"7개 예시"}