{
  "issueId": "4331",
  "environment": "dev",
  "source": "user-provided checklist (Redmine #4331)",
  "sourceText": "요청자: 송인준\n[1] QA 요청 배경\n* https://itsm.bix.bz/issues/4331\n[2] 사전 데이터\n* 비스킷페이 CO,BO,VE 계정\n[3] 사전 작업\n* 비스킷페이 CO,BO,VE 계정 로그인\n[4] 권한별 테스트\n* CO,VE,BO\n[5] 검증 대상\n* 정보관리 > 비밀번호 변경 섹션\n[6] 체크리스트\n* 입력 전에는 생성 기준 안내 미표시 확인\n* 기준 미충족 시 새 비밀번호 입력란 하단에 오류 문구 표시\n* 기준 충족 시 오류 문구 해제",
  "scope": "개발계 비스킷페이 정보관리 > 비밀번호 변경 생성 기준 안내 QA",
  "checklist": [
    "비스킷페이 CO·BO·VE 정보관리(/user) > 비밀번호 변경. 세 계정 모두 비밀번호 정책 '높음(HIGH)' → 안내 '특수문자, 영문 대문자·소문자와 숫자를 포함하여 10자리 이상으로 입력해 주세요.'",
    "입력 전에는 생성 기준 안내·불일치 안내 미표시, 입력 중(다른 항목 이동 전)에도 미표시",
    "기준 미충족 값 입력 후 다른 항목으로 이동 → 새 비밀번호 입력란 하단에 정책 안내 표시(입력란 오류 상태). 특수문자 없음·9자 두 경우",
    "기준 충족 값으로 바꾸면 오류 문구 즉시 해제, 이동 후에도 없음",
    "추가: 비밀번호 확인 불일치 시 '비밀번호가 일치하지 않습니다.', 일치 시 해제 / 이동 없이 '비밀번호 변경' 버튼 클릭 시에도 검증",
    "실제 비밀번호는 바꾸지 않음: 검증용 가짜 값만 입력하고 쓰기 요청은 모두 차단(0건). 화면 캡처는 비밀번호 변경 영역만",
    "참고: CO·BO 비스킷페이 로그인은 비스킷링크 CO·BO 계정(jjmco01, jjmbo01) 사용. jjmco01은 비밀번호 변경 권한(CHANGE_PASSWORD_USER)이 없어 1차에 영역 미표시 → 요청자가 권한 부여 후 재확인. 세 계정 모두 정책 '높음'이라 낮음·중간 문구는 미확인"
  ],
  "roles": [
    "CO",
    "BO",
    "VE"
  ],
  "routeCandidates": "../../../../qa-results/issues/4331/dev/route-candidates.json",
  "setupSteps": [],
  "pages": [
    {
      "name": "정보관리",
      "application": "store",
      "path": "/user",
      "tenantParam": "tenantId",
      "roles": [
        "CO",
        "BO",
        "VE"
      ],
      "policies": {
        "LOW": {
          "message": "4자리 이상으로 입력해 주세요.",
          "invalid": [
            "abc"
          ],
          "valid": "abcd"
        },
        "MEDIUM": {
          "message": "영문 대문자·소문자와 숫자를 포함하여 10자리 이상으로 입력해 주세요.",
          "invalid": [
            "abcdefghi1",
            "Abcdefgh1"
          ],
          "valid": "Abcdefghi1"
        },
        "HIGH": {
          "message": "특수문자, 영문 대문자·소문자와 숫자를 포함하여 10자리 이상으로 입력해 주세요.",
          "invalid": [
            "Abcdefghi1",
            "Abcdefg1!"
          ],
          "valid": "Abcdefgh1!"
        }
      },
      "mismatchMessage": "비밀번호가 일치하지 않습니다.",
      "filters": []
    }
  ],
  "scenario": "store-password-rule"
}
