{
  "issueId": "3983",
  "environment": "dev",
  "generatedAt": "2026-08-13T15:06:39+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "3983",
    "environment": "dev",
    "generatedAt": "2026-08-13T05:52:19.959Z",
    "exitStatus": 1,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-08-13T05:46:56.565Z",
        "detail": {
          "issueId": "3983",
          "environment": "dev",
          "exitStatus": 1
        },
        "finishedAt": "2026-08-13T05:52:19.959Z",
        "durationMs": 323394,
        "status": "failed"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-08-13T05:46:56.566Z",
        "detail": {},
        "finishedAt": "2026-08-13T05:46:56.594Z",
        "durationMs": 28,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-08-13T05:46:56.594Z",
        "detail": {},
        "finishedAt": "2026-08-13T05:47:05.653Z",
        "durationMs": 9059,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/ADMIN",
        "startedAt": "2026-08-13T05:46:56.595Z",
        "detail": {
          "application": "admin",
          "role": "ADMIN",
          "businessRole": "ADMIN"
        },
        "finishedAt": "2026-08-13T05:47:04.448Z",
        "durationMs": 7853,
        "status": "ok"
      },
      {
        "name": "auth-refresh:store/dev/QA3983_VE",
        "startedAt": "2026-08-13T05:46:56.600Z",
        "detail": {
          "application": "store",
          "role": "QA3983_VE",
          "businessRole": "VE"
        },
        "finishedAt": "2026-08-13T05:47:05.653Z",
        "durationMs": 9053,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-08-13T05:47:05.653Z",
        "detail": {
          "command": "npx playwright test qa/issues/3983/dev --trace retain-on-failure",
          "exitStatus": 1
        },
        "finishedAt": "2026-08-13T05:52:19.959Z",
        "durationMs": 314306,
        "status": "failed"
      }
    ]
  },
  "summary": {
    "status": "FAIL",
    "passed": 9,
    "failed": 2,
    "skipped": 0,
    "blocked": 0,
    "flaky": 0,
    "durationMs": 368084
  },
  "rows": [
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 한결데테스트 가맹점 수정 화면의 동일카드 제한시간에서 제한 없음, 30분, 1시간, 3시간, 6시간, 12시간, 24시간, 48시간, 72시간, 1주일, 1개월을 선택해 저장할 수 있는지 확인",
      "status": "FAIL",
      "statusText": "실패",
      "durationMs": 115719,
      "evidence": [
        "artifacts/screenshots/01-fixed-options-final.png",
        "artifacts/logs/01-fixed-options.md",
        "artifacts/logs/02-cleanup.md",
        "artifacts/screenshots/02-screenshot.png",
        "artifacts/screenshots/03-screenshot.png",
        "artifacts/logs/03-error-context.md",
        "artifacts/screenshots/04-screenshot.png",
        "artifacts/logs/04-error-context.md",
        "artifacts/traces/01-trace.zip"
      ],
      "screenshots": [
        "artifacts/screenshots/01-fixed-options-final.png",
        "artifacts/screenshots/02-screenshot.png",
        "artifacts/screenshots/03-screenshot.png",
        "artifacts/screenshots/04-screenshot.png"
      ],
      "traces": [
        "artifacts/traces/01-trace.zip"
      ],
      "logs": [
        "artifacts/logs/01-fixed-options.md",
        "artifacts/logs/02-cleanup.md",
        "artifacts/logs/03-error-context.md",
        "artifacts/logs/04-error-context.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "한결데테스트 가맹점 수정 화면의 동일카드 제한시간에서 제한 없음, 30분, 1시간, 3시간, 6시간, 12시간, 24시간, 48시간, 72시간, 1주일, 1개월을 선택해 저장할 수 있는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 달랐습니다: Error: 요청된 고정 옵션명이 모두 그대로 노출되어야 합니다. 실제 화면의 1주 옵션은 1주일과 다릅니다.  expect(received).toEqual(expected) // deep equality",
      "error": "Error: 요청된 고정 옵션명이 모두 그대로 노출되어야 합니다. 실제 화면의 1주 옵션은 1주일과 다릅니다.  expect(received).toEqual(expected) // deep equality",
      "failureCategory": "assertion",
      "failureCategoryText": "기대 결과와 다름",
      "reproduction": {
        "required": true,
        "reason": "화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.",
        "debugCommand": "npm run qa:debug -- --issue \"3983\" --env \"dev\" --role \"전체\" --case \"한결데테스트 가맹점 수정 화면의 동일카드 제한시간에서 제한 없음, 30분, 1시간, 3시간, 6시간, 12시간, 24시간, 48시간, 72시간, 1주일, 1개월을 선택해 저장할 수 있는지 확인\"",
        "notifyMessage": "[QA 확인 요청] 전체 / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 한결데테스트 가맹점 수정 화면의 동일카드 제한시간에서 제한 없음, 30분, 1시간, 3시간, 6시간, 12시간, 24시간, 48시간, 72시간, 1주일, 1개월을 선택해 저장할 수 있는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue \"3983\" --env \"dev\" --role \"전체\" --case \"한결데테스트 가맹점 수정 화면의 동일카드 제한시간에서 제한 없음, 30분, 1시간, 3시간, 6시간, 12시간, 24시간, 48시간, 72시간, 1주일, 1개월을 선택해 저장할 수 있는지 확인\" 로 동일 계정과 항목을 다시 열어 확인하세요.",
        "manualSteps": [
          "작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.",
          "브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.",
          "확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다."
        ]
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 직접입력을 선택하면 분 단위 입력란이 표시되고 1분부터 525600분까지 저장되는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 23926,
      "evidence": [
        "artifacts/screenshots/05-custom-valid-range.png",
        "artifacts/logs/05-custom-valid-range.md",
        "artifacts/logs/06-cleanup.md"
      ],
      "screenshots": [
        "artifacts/screenshots/05-custom-valid-range.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/05-custom-valid-range.md",
        "artifacts/logs/06-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "직접입력을 선택하면 분 단위 입력란이 표시되고 1분부터 525600분까지 저장되는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 직접입력에 공백, 소수, 0, 음수, 525601분 이상을 입력하면 저장되지 않고 안내가 표시되는지 확인",
      "status": "FAIL",
      "statusText": "실패",
      "durationMs": 16070,
      "evidence": [
        "artifacts/screenshots/06-custom-invalid-values.png",
        "artifacts/logs/07-custom-invalid-values.md",
        "artifacts/logs/08-cleanup.md",
        "artifacts/screenshots/07-screenshot.png",
        "artifacts/screenshots/08-screenshot.png",
        "artifacts/logs/09-error-context.md",
        "artifacts/screenshots/09-screenshot.png",
        "artifacts/logs/10-error-context.md",
        "artifacts/traces/02-trace.zip"
      ],
      "screenshots": [
        "artifacts/screenshots/06-custom-invalid-values.png",
        "artifacts/screenshots/07-screenshot.png",
        "artifacts/screenshots/08-screenshot.png",
        "artifacts/screenshots/09-screenshot.png"
      ],
      "traces": [
        "artifacts/traces/02-trace.zip"
      ],
      "logs": [
        "artifacts/logs/07-custom-invalid-values.md",
        "artifacts/logs/08-cleanup.md",
        "artifacts/logs/09-error-context.md",
        "artifacts/logs/10-error-context.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "직접입력에 공백, 소수, 0, 음수, 525601분 이상을 입력하면 저장되지 않고 안내가 표시되는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 달랐습니다: Error: 공백·소수·0·음수·상한 초과 입력은 저장 가능한 값으로 조용히 변환되지 않고 안내가 보여야 합니다.  expect(received).toEqual(expected) // deep equality",
      "error": "Error: 공백·소수·0·음수·상한 초과 입력은 저장 가능한 값으로 조용히 변환되지 않고 안내가 보여야 합니다.  expect(received).toEqual(expected) // deep equality",
      "failureCategory": "assertion",
      "failureCategoryText": "기대 결과와 다름",
      "reproduction": {
        "required": true,
        "reason": "화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.",
        "debugCommand": "npm run qa:debug -- --issue \"3983\" --env \"dev\" --role \"전체\" --case \"직접입력에 공백, 소수, 0, 음수, 525601분 이상을 입력하면 저장되지 않고 안내가 표시되는지 확인\"",
        "notifyMessage": "[QA 확인 요청] 전체 / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 직접입력에 공백, 소수, 0, 음수, 525601분 이상을 입력하면 저장되지 않고 안내가 표시되는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue \"3983\" --env \"dev\" --role \"전체\" --case \"직접입력에 공백, 소수, 0, 음수, 525601분 이상을 입력하면 저장되지 않고 안내가 표시되는지 확인\" 로 동일 계정과 항목을 다시 열어 확인하세요.",
        "manualSteps": [
          "작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.",
          "브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.",
          "확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다."
        ]
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 한결데테스트 가맹점 수정 화면을 다시 열었을 때 저장한 제한시간과 직접입력 분 값이 동일하게 표시되는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 17005,
      "evidence": [
        "artifacts/screenshots/10-custom-persistence.png",
        "artifacts/logs/11-custom-persistence.md",
        "artifacts/logs/12-cleanup.md"
      ],
      "screenshots": [
        "artifacts/screenshots/10-custom-persistence.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/11-custom-persistence.md",
        "artifacts/logs/12-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "한결데테스트 가맹점 수정 화면을 다시 열었을 때 저장한 제한시간과 직접입력 분 값이 동일하게 표시되는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 제한시간 1분, 동일카드 결제횟수 1회로 설정한 뒤 비스킷페이 수기결제에서 첫 결제는 성공하고 1분 안의 두 번째 동일카드 결제는 횟수 초과로 차단되는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 14199,
      "evidence": [
        "artifacts/logs/13-count-limit-one.md",
        "artifacts/logs/14-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/13-count-limit-one.md",
        "artifacts/logs/14-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "제한시간 1분, 동일카드 결제횟수 1회로 설정한 뒤 비스킷페이 수기결제에서 첫 결제는 성공하고 1분 안의 두 번째 동일카드 결제는 횟수 초과로 차단되는지 확인",
      "action": "전체 계정으로 스토어 수기결제를 완료하고 응답의 거래 ID와 완료 화면을 확인",
      "expected": "수기결제 성공 후 결제 완료 화면과 후속 동작에 사용할 거래 ID가 확인되어야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 제한시간 1분, 동일카드 결제횟수 3회로 설정한 뒤 비스킷페이 수기결제에서 동일카드 결제는 3회까지 성공하고 1분 안의 네 번째 결제가 차단되는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 32912,
      "evidence": [
        "artifacts/logs/15-count-limit-three.md",
        "artifacts/logs/16-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/15-count-limit-three.md",
        "artifacts/logs/16-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "제한시간 1분, 동일카드 결제횟수 3회로 설정한 뒤 비스킷페이 수기결제에서 동일카드 결제는 3회까지 성공하고 1분 안의 네 번째 결제가 차단되는지 확인",
      "action": "전체 계정으로 스토어 수기결제를 완료하고 응답의 거래 ID와 완료 화면을 확인",
      "expected": "수기결제 성공 후 결제 완료 화면과 후속 동작에 사용할 거래 ID가 확인되어야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 설정한 제한시간 내 동일카드 승인금액 합계에 새 결제금액을 더했을 때 결제한도를 초과하면 차단되는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 17020,
      "evidence": [
        "artifacts/logs/17-amount-limit.md",
        "artifacts/logs/18-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/17-amount-limit.md",
        "artifacts/logs/18-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "설정한 제한시간 내 동일카드 승인금액 합계에 새 결제금액을 더했을 때 결제한도를 초과하면 차단되는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 제한시간이 지난 뒤에는 이전 동일카드 승인 건이 횟수와 금액 계산에서 제외되어 다시 결제할 수 있는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 87150,
      "evidence": [
        "artifacts/logs/19-window-expiry.md",
        "artifacts/logs/20-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/19-window-expiry.md",
        "artifacts/logs/20-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "제한시간이 지난 뒤에는 이전 동일카드 승인 건이 횟수와 금액 계산에서 제외되어 다시 결제할 수 있는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 제한 없음으로 설정하면 동일카드 결제횟수와 결제금액 제한이 적용되지 않는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 21118,
      "evidence": [
        "artifacts/logs/21-unlimited.md",
        "artifacts/logs/22-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/21-unlimited.md",
        "artifacts/logs/22-cleanup.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "제한 없음으로 설정하면 동일카드 결제횟수와 결제금액 제한이 적용되지 않는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 엑셀의 동일카드 제한시간은 고정 선택지만 제공되고 임의의 분 값으로 새로 변경할 수 없는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 4925,
      "evidence": [
        "artifacts/files/01-빅스페이먼츠_가맹점목록_20260813145854.xlsx",
        "artifacts/logs/23-excel-fixed-options.md",
        "artifacts/logs/24-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/23-excel-fixed-options.md",
        "artifacts/logs/24-cleanup.md"
      ],
      "files": [
        "artifacts/files/01-빅스페이먼츠_가맹점목록_20260813145854.xlsx"
      ],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "엑셀의 동일카드 제한시간은 고정 선택지만 제공되고 임의의 분 값으로 새로 변경할 수 없는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "전체 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "3983/dev/url-search.spec.ts / [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA / 기존 직접입력 90분 가맹점을 내려받아 90분을 유지한 채 다시 올리면 성공하고, 120분으로 변경하면 실패하며, 1시간 같은 고정 선택값으로 변경하면 성공하는지 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 7007,
      "evidence": [
        "artifacts/files/02-빅스페이먼츠_가맹점목록_20260813145900.xlsx",
        "artifacts/files/03-qa3983-custom-120-invalid.xlsx",
        "artifacts/files/04-qa3983-fixed-1hour-valid.xlsx",
        "artifacts/logs/25-excel-custom-roundtrip.md",
        "artifacts/logs/26-cleanup.md"
      ],
      "screenshots": [],
      "traces": [],
      "logs": [
        "artifacts/logs/25-excel-custom-roundtrip.md",
        "artifacts/logs/26-cleanup.md"
      ],
      "files": [
        "artifacts/files/02-빅스페이먼츠_가맹점목록_20260813145900.xlsx",
        "artifacts/files/03-qa3983-custom-120-invalid.xlsx",
        "artifacts/files/04-qa3983-fixed-1hour-valid.xlsx"
      ],
      "role": "전체",
      "page": "[3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA",
      "checklistItem": "기존 직접입력 90분 가맹점을 내려받아 90분을 유지한 채 다시 올리면 성공하고, 120분으로 변경하면 실패하며, 1시간 같은 고정 선택값으로 변경하면 성공하는지 확인",
      "action": "전체 계정으로 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 항목을 확인",
      "expected": "전체 계정에서 [3983][dev] 가맹점 동일카드 결제 제한시간 선택·직접입력·엑셀·결제 집계 QA 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    }
  ]
}
