{
  "issueId": "4370",
  "environment": "dev",
  "generatedAt": "2026-10-26T15:01:55+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "4370",
    "environment": "dev",
    "generatedAt": "2026-10-26T06:01:51.738Z",
    "exitStatus": 0,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-10-26T06:01:07.154Z",
        "detail": {
          "issueId": "4370",
          "environment": "dev",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-26T06:01:51.738Z",
        "durationMs": 44584,
        "status": "ok"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-10-26T06:01:07.154Z",
        "detail": {},
        "finishedAt": "2026-10-26T06:01:07.157Z",
        "durationMs": 3,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-10-26T06:01:07.157Z",
        "detail": {},
        "finishedAt": "2026-10-26T06:01:11.805Z",
        "durationMs": 4648,
        "status": "ok"
      },
      {
        "name": "auth-refresh:store/dev/KORPAY_VE",
        "startedAt": "2026-10-26T06:01:07.158Z",
        "detail": {
          "application": "store",
          "role": "KORPAY_VE",
          "businessRole": "VE"
        },
        "finishedAt": "2026-10-26T06:01:11.805Z",
        "durationMs": 4647,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-10-26T06:01:11.805Z",
        "detail": {
          "command": "npx playwright test qa/issues/4370/dev --trace retain-on-failure",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-26T06:01:51.738Z",
        "durationMs": 39933,
        "status": "ok"
      }
    ]
  },
  "summary": {
    "status": "PASS",
    "passed": 9,
    "failed": 0,
    "skipped": 1,
    "blocked": 0,
    "flaky": 0,
    "durationMs": 41432
  },
  "rows": [
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 00 로그인 계정과 권한 상태를 확인한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 5080,
      "evidence": [
        "artifacts/screenshots/01-account-profile.png"
      ],
      "screenshots": [
        "artifacts/screenshots/01-account-profile.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "00 로그인 계정과 권한 상태를 확인한다",
      "action": "kjve_korpay_su 계정으로 00 로그인 계정과 권한 상태를 확인한다",
      "expected": "00 로그인 계정과 권한 상태를 확인한다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 01 로그인 세션으로 9월 기간 조회 API와 화면을 확인한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 3809,
      "evidence": [
        "artifacts/screenshots/02-september-list.png"
      ],
      "screenshots": [
        "artifacts/screenshots/02-september-list.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "01 로그인 세션으로 9월 기간 조회 API와 화면을 확인한다",
      "action": "kjve_korpay_su 계정으로 01 로그인 세션으로 9월 기간 조회 API와 화면을 확인한다",
      "expected": "01 로그인 세션으로 9월 기간 조회 API와 화면을 확인한다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 02 채권금액 위치와 동일 정산 건 API 금액을 확인한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 4883,
      "evidence": [
        "artifacts/screenshots/03-ar-dunning-placement.png"
      ],
      "screenshots": [
        "artifacts/screenshots/03-ar-dunning-placement.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "02 채권금액 위치와 동일 정산 건 API 금액을 확인한다",
      "action": "kjve_korpay_su 계정으로 02 채권금액 위치와 동일 정산 건 API 금액을 확인한다",
      "expected": "02 채권금액 위치와 동일 정산 건 API 금액을 확인한다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 03 날짜 정렬·기간 변경·새로고침 후 금액과 기존 항목을 보존한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 11131,
      "evidence": [
        "artifacts/screenshots/04-before-sort.png",
        "artifacts/screenshots/05-after-refresh.png"
      ],
      "screenshots": [
        "artifacts/screenshots/04-before-sort.png",
        "artifacts/screenshots/05-after-refresh.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "03 날짜 정렬·기간 변경·새로고침 후 금액과 기존 항목을 보존한다",
      "action": "kjve_korpay_su 계정으로 03 날짜 정렬·기간 변경·새로고침 후 금액과 기존 항목을 보존한다",
      "expected": "03 날짜 정렬·기간 변경·새로고침 후 금액과 기존 항목을 보존한다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 04 모바일 320·360·390px에서 금액 표시가 넘치지 않는다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 5036,
      "evidence": [
        "artifacts/screenshots/06-mobile-320.png",
        "artifacts/screenshots/07-mobile-360.png",
        "artifacts/screenshots/08-mobile-390.png"
      ],
      "screenshots": [
        "artifacts/screenshots/06-mobile-320.png",
        "artifacts/screenshots/07-mobile-360.png",
        "artifacts/screenshots/08-mobile-390.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "04 모바일 320·360·390px에서 금액 표시가 넘치지 않는다",
      "action": "kjve_korpay_su 계정으로 04 모바일 320·360·390px에서 금액 표시가 넘치지 않는다",
      "expected": "04 모바일 320·360·390px에서 금액 표시가 넘치지 않는다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 04b 개발계 화면에 긴 채권금액을 주입해 모바일 배치를 확인한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 5483,
      "evidence": [
        "artifacts/screenshots/09-synthetic-long-mobile-320.png",
        "artifacts/screenshots/10-synthetic-long-mobile-360.png",
        "artifacts/screenshots/11-synthetic-long-mobile-390.png"
      ],
      "screenshots": [
        "artifacts/screenshots/09-synthetic-long-mobile-320.png",
        "artifacts/screenshots/10-synthetic-long-mobile-360.png",
        "artifacts/screenshots/11-synthetic-long-mobile-390.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "04b 개발계 화면에 긴 채권금액을 주입해 모바일 배치를 확인한다",
      "action": "kjve_korpay_su 계정으로 04b 개발계 화면에 긴 채권금액을 주입해 모바일 배치를 확인한다",
      "expected": "04b 개발계 화면에 긴 채권금액을 주입해 모바일 배치를 확인한다",
      "actual": "개발계 화면과 API 검증 통과. 상세 관측값은 report.md 참조.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/settlement-ar-dunning.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 05 0원 정산 건이 존재하면 0원으로 표시한다",
      "status": "SKIP",
      "statusText": "해당 없음",
      "durationMs": 5444,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "05 0원 정산 건이 존재하면 0원으로 표시한다",
      "action": "kjve_korpay_su 계정으로 05 0원 정산 건이 존재하면 0원으로 표시한다",
      "expected": "05 0원 정산 건이 존재하면 0원으로 표시한다",
      "actual": "9월 정산 2건 모두 채권금액 903원으로 0원 사례 없음.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "해당 없음",
      "reproduction": {
        "required": false,
        "reason": "확인 조건이 부족해 본 시나리오를 끝까지 실행하지 못했습니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/permission-flow.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 06 채권조회만 회수한 상태에서 라벨을 숨기고 기존 금액을 유지한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 0,
      "evidence": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "06 채권조회만 회수한 상태에서 라벨을 숨기고 기존 금액을 유지한다",
      "action": "kjve_korpay_su 계정으로 06 채권조회만 회수한 상태에서 라벨을 숨기고 기존 금액을 유지한다",
      "expected": "06 채권조회만 회수한 상태에서 라벨을 숨기고 기존 금액을 유지한다",
      "actual": "채권조회만 회수 후 새 로그인: 라벨 숨김과 기존 금액 유지 확인.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "권한 변경·원복 Playwright 시나리오 통과.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/permission-flow.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 07 정산조회 없이 채권조회만 있으면 메뉴와 직접 주소 접근을 제한한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 0,
      "evidence": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "07 정산조회 없이 채권조회만 있으면 메뉴와 직접 주소 접근을 제한한다",
      "action": "kjve_korpay_su 계정으로 07 정산조회 없이 채권조회만 있으면 메뉴와 직접 주소 접근을 제한한다",
      "expected": "07 정산조회 없이 채권조회만 있으면 메뉴와 직접 주소 접근을 제한한다",
      "actual": "정산조회만 회수 후 새 로그인: 메뉴와 직접 주소 접근 제한 확인.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "권한 변경·원복 Playwright 시나리오 통과.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4370/dev/permission-flow.spec.ts / [#4370][dev] VE 정산내역 채권금액 / 08 두 권한 복원 및 재로그인 후 표시를 복구한다",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 0,
      "evidence": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/02-permission-flow.md"
      ],
      "files": [],
      "role": "VE",
      "page": "스토어 정산내역",
      "checklistItem": "08 두 권한 복원 및 재로그인 후 표시를 복구한다",
      "action": "kjve_korpay_su 계정으로 08 두 권한 복원 및 재로그인 후 표시를 복구한다",
      "expected": "08 두 권한 복원 및 재로그인 후 표시를 복구한다",
      "actual": "원래 권한 79개 복구 후 새 로그인: 채권금액 표시 확인.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "권한 변경·원복 Playwright 시나리오 통과.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    }
  ]
}
