Some checks are pending
ci / build (push) Waiting to run
Measured convergence before: split hero 13/19, top-bar nav 19/19, one-line notice footer 14/19, body Pretendard 17/21, 10 similarity pairs above 0.78. Each showcase got a pre-assigned hero family, nav form, footer form, type pair, background, accent hue, radius, motion grammar and material from outputs/rework-2026-10-06/plan.md; direction cards and the chosen reason are recorded in every design.md. After: 0 similarity warnings, 19 distinct display faces, 7 hero families, 5 nav forms, 5 footer forms, no scroll reveals, 5 showcases with SVG filter materials. Example contact values replace bracket placeholders under the existing fictional-brand notices. Thumbnails, OG images, card copy and three e2e assertions updated; dead CSS in dure-enrollment and hannam-jari removed; similarity.mjs learns the new font families.
58 KiB
58 KiB
Showcase Duo E2E report
- root:
public - started: 2026-10-06T07:52:47.277Z
- finished: 2026-10-06T07:54:06.729Z
- 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 | 105194 | 629d2d01d8667468bdd85847fc7e616b140aecc15a224f95f41b06b2a34c4fed |
| estate-public-1440 | tools/.gen/showcase-duo/estate-public-1440.png |
1440x900 | 640293 | f486eb99eb230346649cb9d2bfcb0d516f839667773d78402501aa3444c49433 |
| estate-admin-390 | tools/.gen/showcase-duo/estate-admin-390.png |
390x844 | 89860 | 52ffd23cbeab4e5a4b8bda7f6f4550fe6a2944b17520e857cc28a3570631cabc |
| estate-admin-1440 | tools/.gen/showcase-duo/estate-admin-1440.png |
1440x900 | 165758 | f45525bccfbc182ddd1c0b73785a8c404d6b0554fd84b30c42e6f8035b5721dc |
| burger-public-390 | tools/.gen/showcase-duo/burger-public-390.png |
390x844 | 139669 | 7a40e55d7ff011f567802388662270554642e1bf5bd7c8124fbe7a982f75c639 |
| burger-public-1440 | tools/.gen/showcase-duo/burger-public-1440.png |
1440x900 | 567922 | 35adbb3e26109e8abba8bfd047ebf32c5f24d57ecb6525c324c9219244b949fc |
| burger-franchise-390 | tools/.gen/showcase-duo/burger-franchise-390.png |
390x844 | 164874 | 7e5eaf098e1a34cb100fed7830723008335d1c5e051b00f613848ad53c8b13ea |
| burger-franchise-1440 | tools/.gen/showcase-duo/burger-franchise-1440.png |
1440x900 | 469301 | f9016c9d9fdb081aafcbe5f3edae5851221b523c608461e18d46244a25888788 |
| estate-ai-adjusted-1440 | tools/.gen/showcase-duo/estate-ai-adjusted-1440.png |
1440x900 | 55216 | 88790d166f9748141e21643211c808c538e2ed8a1dcbb88f185e1582a07cd017 |
| burger-builder-valid-1440 | tools/.gen/showcase-duo/burger-builder-valid-1440.png |
1440x900 | 81082 | 4bc72f685d438610460f8bf49ec0d1c93625ac7ed6c1f239af78e5614acc9867 |
| burger-franchise-review-1440 | tools/.gen/showcase-duo/burger-franchise-review-1440.png |
1440x900 | 110776 | d50e8562a9c3fa2055470c80e4bc97435d78b8b8966b08e9bbffa3d9116ca2dc |
| estate-admin-block-dialog-1440 | tools/.gen/showcase-duo/estate-admin-block-dialog-1440.png |
1440x900 | 227618 | 4c58ce7e0f15336ac6a00698449f1f9db49c62706d7acdc5e7796e6d29b7d59b |
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: 6836
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-public-390","file":"tools/.gen/showcase-duo/estate-public-390.png","exists":true,"width":390,"height":844,"bytes":105194,"sha256":"629d2d01d8667468bdd85847fc7e616b140aecc15a224f95f41b06b2a34c4fed"}
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: 5914
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-public-1440","file":"tools/.gen/showcase-duo/estate-public-1440.png","exists":true,"width":1440,"height":900,"bytes":640293,"sha256":"f486eb99eb230346649cb9d2bfcb0d516f839667773d78402501aa3444c49433"}
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: 2039
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":89860,"sha256":"52ffd23cbeab4e5a4b8bda7f6f4550fe6a2944b17520e857cc28a3570631cabc"}
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: 1681
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":165758,"sha256":"f45525bccfbc182ddd1c0b73785a8c404d6b0554fd84b30c42e6f8035b5721dc"}
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: 10441
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":139669,"sha256":"7a40e55d7ff011f567802388662270554642e1bf5bd7c8124fbe7a982f75c639"}
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: 8652
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":567922,"sha256":"35adbb3e26109e8abba8bfd047ebf32c5f24d57ecb6525c324c9219244b949fc"}
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: 10546
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":164874,"sha256":"7e5eaf098e1a34cb100fed7830723008335d1c5e051b00f613848ad53c8b13ea"},"heroActions":[{"selector":"button button-primary","height":52,"centerY":389.109375},{"selector":"button button-ghost","height":52,"centerY":389.109375}]}
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: 8988
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":469301,"sha256":"f9016c9d9fdb081aafcbe5f3edae5851221b523c608461e18d46244a25888788"},"heroActions":[{"selector":"button button-primary","height":52,"centerY":623},{"selector":"button button-ghost","height":52,"centerY":623}]}
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":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: 111090
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 27928
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 37338
PASS · 성능과 자산 · 한남자리 공개 1440px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..358400 bytes
- actual: 214514
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 27928
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 37338
PASS · 성능과 자산 · 한남자리 관리자 390px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..266240 bytes
- actual: 44804
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 25025
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 45921
PASS · 성능과 자산 · 한남자리 관리자 1440px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..358400 bytes
- actual: 44804
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 25025
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 45921
PASS · 성능과 자산 · 철판클럽 공개 390px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..266240 bytes
- actual: 173120
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 10858
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 39420
PASS · 성능과 자산 · 철판클럽 공개 1440px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..358400 bytes
- actual: 251772
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 10858
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 39420
PASS · 성능과 자산 · 철판클럽 가맹 390px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0
- PASS · 첫 화면 이미지 예산
- expected: 0..266240 bytes
- actual: 119384
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 11769
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 57270
PASS · 성능과 자산 · 철판클럽 가맹 1440px
- PASS · CLS 예산
- expected: <= 0.1
- actual: 0.0025
- PASS · 첫 화면 이미지 예산
- expected: 0..358400 bytes
- actual: 119384
- PASS · 로컬 자바스크립트 예산
- expected: 1..180KB
- actual: 11769
- PASS · 로컬 CSS 예산
- expected: 1..180KB
- actual: 57270
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 공인중개사 확인 전 안내용 비교아직 분석하지 않았습니다\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":6,"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":55216,"sha256":"88790d166f9748141e21643211c808c538e2ed8a1dcbb88f185e1582a07cd017"}
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":81082,"sha256":"4bc72f685d438610460f8bf49ec0d1c93625ac7ed6c1f239af78e5614acc9867"}
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: #stores / 가상 매장 안내 보기
- actual: {"href":"#stores","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: contains 양파 많이
- actual: 패티 두 장 / 치즈 한 장 / 양파 많이 / 피클 기본 / 소스 기본
- PASS · 선택 내용은 브라우저에 저장하지 않음
- expected: null
- actual: null
- PASS · 주문 미제공 안내
- expected: contains 주문과 결제는 진행되지 않습니다
- actual: 이 페이지는 메뉴 조합을 살펴보는 안내 페이지이며, 주문과 결제는 진행되지 않습니다.
PASS · 철판클럽 공개 기능 · 선택 결과에서 가상 매장 안내로 이동
- PASS · 가상 매장 안내 앵커 이동
- expected: #stores
- actual: #stores
- PASS · 가상 매장 안내 섹션이 보임
- expected: true
- actual: true
- PASS · 이동 뒤에도 선택 내용을 저장하지 않음
- expected: null
- actual: 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":110776,"sha256":"d50e8562a9c3fa2055470c80e4bc97435d78b8b8966b08e9bbffa3d9116ca2dc"}
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: 한남 생활권 정원 주거 / 자료번호 101
- actual: {"title":"한남 생활권 정원 주거","id":"자료번호 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":227618,"sha256":"4c58ce7e0f15336ac6a00698449f1f9db49c62706d7acdc5e7796e6d29b7d59b"}
- 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건"}