{
  "issue": 4274,
  "environment": "dev",
  "method": "logged-in Codex in-app browser + dev notification HTTP requests",
  "testedAt": "2026-10-13 Asia/Seoul",
  "totalChecklistItems": 9,
  "executedFunctionalItems": 9,
  "passed": 9,
  "failed": 0,
  "blocked": 0,
  "notRun": 0,
  "overall": "PASS",
  "items": [
    {
      "id": 1,
      "name": "계약/MID PG 선택",
      "status": "PASS",
      "actual": "계약관리·MID 관리에 브룸과 기존 PG 20개 표시. 브룸 계약과 MID의 가맹점 연결 일치.",
      "evidence": [
        "17-contract-pg-options",
        "19-mid-pg-options",
        "18-contract-match",
        "20-mid-match"
      ]
    },
    {
      "id": 2,
      "name": "브룸·MID·일자 검색",
      "status": "PASS",
      "actual": "2026-10-13 브룸 + MID 1234567890 검색 URL과 조회 결과 확인. 최종 8건.",
      "evidence": [
        "02-mid-filter",
        "03-original-mid",
        "25-final-summary"
      ]
    },
    {
      "id": 3,
      "name": "신규 승인 정보",
      "status": "PASS",
      "actual": "원거래 BROOM-QA-4274-20261013201458, 승인일시 20:14:58, 브룸·A_주홍석_가맹_브룸·BP100678·승인번호 87654321·1,004원·일시불 일치.",
      "evidence": [
        "05-new-approval",
        "06-approval-identity",
        "13-cancel-original-link"
      ]
    },
    {
      "id": 4,
      "name": "전체취소 원승인 연결",
      "status": "PASS",
      "actual": "wRootTid가 원승인 wTid와 동일. 20:17:02 전체취소 -1,004원, 원승인도 취소 상태. 두 행 TID·주문번호·MID 동일.",
      "evidence": [
        "13-cancel-original-link",
        "14-cancel-status-control",
        "24-cancel-timestamps"
      ]
    },
    {
      "id": 5,
      "name": "다른 승인 거래 영향",
      "status": "PASS",
      "actual": "비교 거래 BROOM-QA-4274-20261013201550-CONTROL은 대상 거래 취소·재통보 후에도 승인 1,004원 유지. 검증 후 별도 취소로 정리.",
      "evidence": [
        "07-duplicate-approval-control",
        "14-cancel-status-control",
        "15-duplicate-cancel",
        "23-approval-replay-after-cancel"
      ]
    },
    {
      "id": 6,
      "name": "목록/합계 일치",
      "status": "PASS",
      "actual": "초기 4건/승인2/취소2/각2,008원 → 신규승인 5건/순1,004원 → 비교승인+승인재통보 6건/순2,008원 → 대상취소 7건/순1,004원 → 정리취소 8건/승인4/취소4/각4,016원/순0원.",
      "evidence": [
        "01-initial",
        "05-new-approval",
        "07-duplicate-approval-control",
        "15-duplicate-cancel",
        "25-final-summary"
      ]
    },
    {
      "id": 7,
      "name": "동일 통보 중복 방지",
      "status": "PASS",
      "actual": "승인 appDtm/wTid 등 모든 값, 취소 ccDnt/wTid/wRootTid 등 모든 값을 고정해 각 1회 재전송. 승인 재전송 후 기대 6건, 취소 재전송 후 7건 유지. 취소 이후 승인 재전송 추가 확인에서도 7건·취소상태 유지. 모든 실제 요청 HTTP200/OK.",
      "evidence": [
        "07-duplicate-approval-control",
        "15-duplicate-cancel",
        "23-approval-replay-after-cancel"
      ]
    },
    {
      "id": 8,
      "name": "재조회/새로고침 유지",
      "status": "PASS",
      "actual": "검색 재조회와 브라우저 새로고침 후 7건·결제4,016원·취소3,012원·순1,004원 및 대상취소/비교승인 유지. 정리 후 재새로고침에서도 8건·순0원 확인.",
      "evidence": [
        "15-duplicate-cancel",
        "16-refresh-persist",
        "25-final-summary",
        "26-final-status"
      ]
    },
    {
      "id": 9,
      "name": "기존 PG 회귀",
      "status": "PASS",
      "actual": "기존 코페이 거래 2건을 브룸 취소/재통보 전후 비교. 승인일시16:59:09·취소일시16:59:37, 승인번호00509223, 각±9,900원, 두행 취소상태 및 결제/취소 합계 각9,900원 유지. 다른 PG 전체를 포괄한 회귀는 아님.",
      "evidence": [
        "09-kopay-before-amount",
        "10-kopay-before-status",
        "21-kopay-after-amount",
        "22-kopay-after-status"
      ]
    }
  ],
  "issueId": "4274",
  "generatedAt": "2026-10-13T20:26:13.010288+09:00",
  "summary": {
    "status": "PASS",
    "passed": 9,
    "failed": 0,
    "blocked": 0,
    "skipped": 0,
    "flaky": 0,
    "manualConfirmed": 0
  },
  "rows": [
    {
      "title": "[dev][ADMIN] 계약/MID PG 선택",
      "role": "ADMIN",
      "page": "계약관리 / TID·MID관리",
      "checklistItem": "계약/MID PG 선택",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "계약관리·MID 관리에 브룸과 기존 PG 20개 표시. 브룸 계약과 MID의 가맹점 연결 일치.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/17-contract-pg-options.jpg",
        "artifacts/screenshots/19-mid-pg-options.jpg",
        "artifacts/screenshots/18-contract-match.jpg",
        "artifacts/screenshots/20-mid-match.jpg"
      ],
      "logs": [
        "artifacts/logs/17-contract-pg-options.txt",
        "artifacts/logs/19-mid-pg-options.txt",
        "artifacts/logs/18-contract-match.txt",
        "artifacts/logs/20-mid-match.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 브룸·MID·일자 검색",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "브룸·MID·일자 검색",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "2026-10-13 브룸 + MID 1234567890 검색 URL과 조회 결과 확인. 최종 8건.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/03-original-mid.jpg",
        "artifacts/screenshots/25-final-summary.jpg"
      ],
      "logs": [
        "artifacts/logs/02-mid-filter.txt",
        "artifacts/logs/03-original-mid.txt",
        "artifacts/logs/25-final-summary.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 신규 승인 정보",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "신규 승인 정보",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "원거래 BROOM-QA-4274-20261013201458, 승인일시 20:14:58, 브룸·A_주홍석_가맹_브룸·BP100678·승인번호 87654321·1,004원·일시불 일치.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/05-new-approval.jpg",
        "artifacts/screenshots/06-approval-identity.jpg",
        "artifacts/screenshots/13-cancel-original-link.jpg"
      ],
      "logs": [
        "artifacts/logs/05-new-approval.txt",
        "artifacts/logs/06-approval-identity.txt",
        "artifacts/logs/13-cancel-original-link.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 전체취소 원승인 연결",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "전체취소 원승인 연결",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "wRootTid가 원승인 wTid와 동일. 20:17:02 전체취소 -1,004원, 원승인도 취소 상태. 두 행 TID·주문번호·MID 동일.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/13-cancel-original-link.jpg",
        "artifacts/screenshots/14-cancel-status-control.jpg",
        "artifacts/screenshots/24-cancel-timestamps.jpg"
      ],
      "logs": [
        "artifacts/logs/13-cancel-original-link.txt",
        "artifacts/logs/14-cancel-status-control.txt",
        "artifacts/logs/24-cancel-timestamps.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 다른 승인 거래 영향",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "다른 승인 거래 영향",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "비교 거래 BROOM-QA-4274-20261013201550-CONTROL은 대상 거래 취소·재통보 후에도 승인 1,004원 유지. 검증 후 별도 취소로 정리.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/07-duplicate-approval-control.jpg",
        "artifacts/screenshots/14-cancel-status-control.jpg",
        "artifacts/screenshots/15-duplicate-cancel.jpg",
        "artifacts/screenshots/23-approval-replay-after-cancel.jpg"
      ],
      "logs": [
        "artifacts/logs/07-duplicate-approval-control.txt",
        "artifacts/logs/14-cancel-status-control.txt",
        "artifacts/logs/15-duplicate-cancel.txt",
        "artifacts/logs/23-approval-replay-after-cancel.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 목록/합계 일치",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "목록/합계 일치",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "초기 4건/승인2/취소2/각2,008원 → 신규승인 5건/순1,004원 → 비교승인+승인재통보 6건/순2,008원 → 대상취소 7건/순1,004원 → 정리취소 8건/승인4/취소4/각4,016원/순0원.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/01-initial.jpg",
        "artifacts/screenshots/05-new-approval.jpg",
        "artifacts/screenshots/07-duplicate-approval-control.jpg",
        "artifacts/screenshots/15-duplicate-cancel.jpg",
        "artifacts/screenshots/25-final-summary.jpg"
      ],
      "logs": [
        "artifacts/logs/01-initial.txt",
        "artifacts/logs/05-new-approval.txt",
        "artifacts/logs/07-duplicate-approval-control.txt",
        "artifacts/logs/15-duplicate-cancel.txt",
        "artifacts/logs/25-final-summary.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 동일 통보 중복 방지",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "동일 통보 중복 방지",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "승인 appDtm/wTid 등 모든 값, 취소 ccDnt/wTid/wRootTid 등 모든 값을 고정해 각 1회 재전송. 승인 재전송 후 기대 6건, 취소 재전송 후 7건 유지. 취소 이후 승인 재전송 추가 확인에서도 7건·취소상태 유지. 모든 실제 요청 HTTP200/OK.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/07-duplicate-approval-control.jpg",
        "artifacts/screenshots/15-duplicate-cancel.jpg",
        "artifacts/screenshots/23-approval-replay-after-cancel.jpg"
      ],
      "logs": [
        "artifacts/logs/07-duplicate-approval-control.txt",
        "artifacts/logs/15-duplicate-cancel.txt",
        "artifacts/logs/23-approval-replay-after-cancel.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 재조회/새로고침 유지",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "재조회/새로고침 유지",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "검색 재조회와 브라우저 새로고침 후 7건·결제4,016원·취소3,012원·순1,004원 및 대상취소/비교승인 유지. 정리 후 재새로고침에서도 8건·순0원 확인.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/15-duplicate-cancel.jpg",
        "artifacts/screenshots/16-refresh-persist.jpg",
        "artifacts/screenshots/25-final-summary.jpg",
        "artifacts/screenshots/26-final-status.jpg"
      ],
      "logs": [
        "artifacts/logs/15-duplicate-cancel.txt",
        "artifacts/logs/16-refresh-persist.txt",
        "artifacts/logs/25-final-summary.txt",
        "artifacts/logs/26-final-status.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    },
    {
      "title": "[dev][ADMIN] 기존 PG 회귀",
      "role": "ADMIN",
      "page": "거래내역",
      "checklistItem": "기존 PG 회귀",
      "action": "로그인된 인앱 관리자에서 항목별 실행 후 화면과 응답 증거 확인",
      "expected": "요청된 검증 조건과 일치한다.",
      "actual": "기존 코페이 거래 2건을 브룸 취소/재통보 전후 비교. 승인일시16:59:09·취소일시16:59:37, 승인번호00509223, 각±9,900원, 두행 취소상태 및 결제/취소 합계 각9,900원 유지. 다른 PG 전체를 포괄한 회귀는 아님.",
      "status": "PASS",
      "statusText": "통과",
      "screenshots": [
        "artifacts/screenshots/09-kopay-before-amount.jpg",
        "artifacts/screenshots/10-kopay-before-status.jpg",
        "artifacts/screenshots/21-kopay-after-amount.jpg",
        "artifacts/screenshots/22-kopay-after-status.jpg"
      ],
      "logs": [
        "artifacts/logs/09-kopay-before-amount.txt",
        "artifacts/logs/10-kopay-before-status.txt",
        "artifacts/logs/21-kopay-after-amount.txt",
        "artifacts/logs/22-kopay-after-status.txt"
      ],
      "traces": [],
      "files": [],
      "error": ""
    }
  ]
}
