{
  "issueId": "3378",
  "environment": "dev",
  "source": "Redmine #3378 + user-provided re-QA checklist 2026-05-28",
  "sourceText": "김경주님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3378\n[2] 사전 데이터\n- 개발계에서 계정 복구 화면 접근이 가능한 법인/영업점/가맹점 권한 사용자 준비\n- 잠금 상태 계정(co): 키움페이법인 / 인증정보는 외부 .env.local 및 런타임 환경변수로만 사용\n- 해지 상태 계정(bo): 키움페이영업 / 인증정보는 외부 .env.local 및 런타임 환경변수로만 사용\n- 잠금 상태 계정(ve): 키움페이테스트 / 인증정보는 외부 .env.local 및 런타임 환경변수로만 사용\n- 복구 후 로그인 확인에 사용할 새 비밀번호 조건 확인\n[3] 사전 작업\n- 법인, 영업점, 가맹점 권한 계정으로 비스킷페이 계정 복구 화면 접근 가능 여부 확인\n[4] 권한별 테스트\n- co\n- bo\n- ve\n[5] 검증 대상\n- 비스킷페이 계정 복구 화면\n- 사용자 상태 표시 화면\n[6] 체크리스트\n- 잠금 상태 사용자가 계정 복구를 완료하면 사용자 상태가 정상으로 변경되는지 확인: 키움페이법인, 키움페이테스트 계정으로 복구 시도\n- 복구 완료된 사용자로 새 비밀번호 로그인 시 정상 로그인되는지 확인\n- 복구 완료 후 기존 비밀번호로 로그인되지 않는지 확인\n- 해지 상태 사용자는 계정 복구를 시도해도 정상 상태로 변경되지 않고 로그인되지 않는지 확인: 키움페이영업 계정으로 복구 시도\n- Webhook Bot 봇이 요청을 처리할 수 없어 QA 에이전트가 수동 재진행",
  "scope": "dev 환경에서 CO/BO/VE 권한 기준 비스킷페이 계정 복구 화면 접근, CO/VE 잠금 사용자 복구 가능 흐름, BO 해지 사용자 복구/로그인 차단 흐름과 새/기존 비밀번호 로그인 결과를 확인합니다.",
  "scenario": "account-recovery",
  "checklist": [
    "잠금 상태 사용자가 계정 복구를 완료하면 사용자 상태가 정상으로 변경되는지 확인",
    "복구 완료된 사용자로 새 비밀번호 로그인 시 정상 로그인되는지 확인",
    "복구 완료 후 기존 비밀번호로 로그인되지 않는지 확인",
    "해지 상태 사용자는 계정 복구를 시도해도 정상 상태로 변경되지 않고 로그인되지 않는지 확인"
  ],
  "roles": [
    "CO",
    "BO",
    "VE"
  ],
  "routeCandidates": "../../../../qa-results/issues/3378/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "잠금/해지 테스트 사용자와 복구 인증 준비",
      "kind": "manual-precondition",
      "role": "ADMIN",
      "targetRoles": [
        "CO",
        "BO",
        "VE"
      ],
      "description": "CO 잠금 계정, BO 해지 계정, VE 잠금 계정과 복구 후 사용할 새 비밀번호, 등록 휴대폰으로 발송된 6자리 SMS 인증번호를 외부 .env.local 또는 런타임 환경변수로만 주입합니다. 실제 비밀번호와 인증번호는 repo에 커밋하지 않습니다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "계정 복구 상태 변경 실행 허용",
      "kind": "state-verify",
      "role": "ADMIN",
      "targetRoles": [
        "CO",
        "BO",
        "VE"
      ],
      "description": "계정 복구는 잠금 사용자 상태와 비밀번호를 변경할 수 있으므로 QA_3378_ALLOW_RECOVERY_MUTATION=1일 때만 실제 복구 시도를 수행합니다.",
      "required": true,
      "mutation": "temporary",
      "guardEnv": "QA_3378_ALLOW_RECOVERY_MUTATION",
      "restore": {
        "required": true,
        "description": "잠금 사용자 복구 후에는 QA 전용 계정을 다시 잠금 상태 또는 다음 재검증 가능한 상태로 되돌릴 수 있어야 합니다. 복구를 수행하지 않은 경우 복구 대상이 없습니다."
      }
    }
  ],
  "pages": [
    {
      "name": "비스킷페이 계정 복구",
      "application": "store",
      "authRequired": false,
      "roles": [
        "CO",
        "BO",
        "VE"
      ],
      "path": "/restore",
      "tenantParam": "tenantId",
      "searchButtonSelector": "button:has-text('다음'), button:has-text('확인')",
      "recordsSelector": "main, body",
      "expectedVisibleTextsByRole": {
        "CO": [
          "아이디",
          "다음"
        ],
        "BO": [
          "아이디",
          "다음"
        ],
        "VE": [
          "아이디",
          "다음"
        ]
      }
    }
  ]
}
