[
  {
    "kind": "실행 환경",
    "date": "2026-10-12T08:37:03.548Z",
    "node": "v22.14.0",
    "browser": "154.0.8037.92",
    "channel": "chrome",
    "executable": null,
    "base": "http://127.0.0.1:46277",
    "viewport": {
      "width": 1280,
      "height": 900
    }
  },
  {
    "kind": "브라우저 기능",
    "summary": "통과 16 / 실패 0 / 전체 16",
    "items": [
      "통과: 10만 행: 제한된 렌더링 행 수·마지막 행 이동",
      "통과: 가로 스크롤·폭 변경·순서 변경: 헤더/셀 일치",
      "통과: 가변 높이·독립 align/headerAlign·헤더 높이",
      "통과: 100×100 붙여넣기 전체·실패 원자성·Undo",
      "통과: 라디오: 셀마다 5개·단일 선택·행 독립·dirty",
      "통과: 날짜 입력·달력 7열·팝업 화면 경계·포커스 복원",
      "통과: 트리: 3단계·16px 들여쓰기·버튼 슬롯·연결선·필터",
      "통과: 고정 좌우 컬럼·상하 행·줄바꿈",
      "통과: 로딩 7개 위치: 기존 행 위치·높이 유지",
      "통과: 취소된 늦은 응답·추가 조회 실패 보존·정확한 재시도",
      "통과: 저장 keep·optimistic rollback·저장 중 편집 차단·초기화",
      "통과: 키보드·ARIA·포커스·선택·Undo/Redo",
      "통과: 다중 인스턴스 격리·플러그인 해제·종료",
      "통과: 그룹·상세 하위 그리드·다단 헤더·레이아웃",
      "통과: 반응형·flex·조건부 스타일·CSV·XLSX·인쇄 안전",
      "통과: 비동기 편집기 요청 취소·팝업 적용/취소 정리"
    ],
    "failed": 0,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "basic",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "layout",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "responsive",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "search",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "editors",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "crud",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "paste",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "computed",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "loading",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "server",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "group",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "tree",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "detail",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "pinned",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "headers",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "accessibility",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "매뉴얼 독립 실행",
    "name": "large",
    "gridCount": 1,
    "errors": []
  },
  {
    "kind": "실제 사용자 입력",
    "name": "마우스 드래그·Shift·Ctrl 선택",
    "status": "실패",
    "reason": "locator.click: Timeout 30000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('.zx-cell[data-rid=\\'5\\'][data-field=\\'name\\']')\u001b[22m\n\u001b[2m    60 × locator resolved to <div title=\"행 5\" data-rid=\"5\" class=\"zx-cell\" role=\"gridcell\" data-field=\"name\" aria-colindex=\"2\" id=\"zixo-1-cell-4-1\" aria-readonly=\"false\" aria-selected=\"false\">행 5</div>\u001b[22m\n\u001b[2m     - attempting click action\u001b[22m\n\u001b[2m       - waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m     - element was detached from the DOM, retrying\u001b[22m\n"
  },
  {
    "kind": "실제 사용자 입력",
    "name": "실제 클립보드 복사·붙여넣기·Undo/Redo·Delete",
    "status": "통과"
  },
  {
    "kind": "실제 사용자 입력",
    "name": "Fill Handle 실제 드래그",
    "status": "실패",
    "reason": "Cannot read properties of null (reading 'x')"
  },
  {
    "kind": "실제 사용자 입력",
    "name": "Home/End/Page·F2 편집·Ctrl+F",
    "status": "통과"
  },
  {
    "kind": "실제 사용자 입력",
    "name": "헤더 실제 드래그·마우스/키보드 너비 조절",
    "status": "통과"
  },
  {
    "kind": "실제 사용자 입력",
    "name": "실제 스크롤 Infinite 조회·실패 페이지 재시도",
    "status": "통과"
  },
  {
    "kind": "매뉴얼 iframe",
    "count": 17,
    "errors": []
  },
  {
    "kind": "axe 자동 접근성 검사",
    "violations": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "basic",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "layout",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "responsive",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "search",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "editors",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "crud",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "paste",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "computed",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "loading",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "server",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "group",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "tree",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "detail",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "pinned",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "headers",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "accessibility",
    "errors": []
  },
  {
    "kind": "실제 Vue 실행",
    "name": "large",
    "errors": []
  }
]