{
  "issueId": "4373",
  "environment": "dev",
  "source": "local checklist",
  "sourceText": "상호명·비고 빠른 입력 시 지연·누락·중복 없이 유지\n실제 OS 한글 입력기로 한글·영문·숫자 혼합 입력\n입력 직후 이체수수료·기본 수수료 변경 시 앞선 입력 유지\n중간 삽입·삭제·붙여넣기 시 커서와 내용 유지\n마지막 글자 입력 직후 저장 후 재진입하여 마지막 글자 확인\n대표자·업종·업태·상세주소·연락처·상품명 빠른 입력\n금액·수수료·결제한도·계좌번호 값과 표시 형식 유지\n선택 항목·시간 변경 저장 후 재진입하여 값 유지\n기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시\n프리셋 적용 후 직접 수정한 값 유지\n다른 가맹점에 이전 입력 내용이 섞이지 않음\n예금주 조회·계좌 재입력 전후 잠금 상태\n잘못된 이메일·등록번호 검증 메시지 표시·해제\n휴일정산 변경 안내 유지\n권한·마스킹·읽기 전용 제한 유지\n긴 비고 입력 성능과 화면 항목·버튼·배치 유지",
  "scope": "비스킷링크 전산 개발계 가맹점 등록·수정 실제 화면 검증. 로컬 모의 응답 180건과 구분.",
  "checklist": [
    "상호명·비고 빠른 입력 시 지연·누락·중복 없이 유지",
    "실제 OS 한글 입력기로 한글·영문·숫자 혼합 입력",
    "입력 직후 이체수수료·기본 수수료 변경 시 앞선 입력 유지",
    "중간 삽입·삭제·붙여넣기 시 커서와 내용 유지",
    "마지막 글자 입력 직후 저장 후 재진입하여 마지막 글자 확인",
    "대표자·업종·업태·상세주소·연락처·상품명 빠른 입력",
    "금액·수수료·결제한도·계좌번호 값과 표시 형식 유지",
    "선택 항목·시간 변경 저장 후 재진입하여 값 유지",
    "기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시",
    "프리셋 적용 후 직접 수정한 값 유지",
    "다른 가맹점에 이전 입력 내용이 섞이지 않음",
    "예금주 조회·계좌 재입력 전후 잠금 상태",
    "잘못된 이메일·등록번호 검증 메시지 표시·해제",
    "휴일정산 변경 안내 유지",
    "권한·마스킹·읽기 전용 제한 유지",
    "긴 비고 입력 성능과 화면 항목·버튼·배치 유지"
  ],
  "roles": [
    "ADMIN",
    "TA",
    "CO",
    "BO"
  ],
  "routeCandidates": "../../../../qa-results/issues/4373/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "사용자가 지정한 테스트 가맹점 저장 검증 및 원복",
      "kind": "data-update",
      "role": "ADMIN",
      "application": "admin",
      "targetRoles": [
        "ADMIN",
        "TA",
        "CO"
      ],
      "description": "기존 사용자 지정 가맹점과 기존 법인 QA 보조 계정에서 조회되는 명시적 테스트 가맹점만 변경한다. QA4373_SAVE_ONLY_ROLE/QA4373_SAVE_CO_ENV_ROLE/QA4373_SAVE_TARGET로 이슈 전용 실행을 선택한다. 변경 전 값을 ignored 경로에 기록하고 finally에서 원래 값 저장·재조회로 복구한다.",
      "mutation": "temporary",
      "guardEnv": "QA_4373_ALLOW_VENDOR_MUTATION",
      "required": true,
      "spec": "vendor-save.spec.ts",
      "navigation": {
        "name": "가맹점 관리",
        "path": "/business/vendor-manage"
      },
      "restore": {
        "required": true,
        "description": "finally에서 원래 상호명·비고·선택값·시간을 저장 후 재진입해 동일함을 확인한다."
      }
    }
  ],
  "pages": [
    {
      "name": "가맹점 등록·수정",
      "application": "admin",
      "path": "/business/vendor-manage",
      "tenantParam": "tenantId",
      "searchButtonSelector": "[data-route-keep-alive-active=true] button:has-text(\"검색\")",
      "filters": [
        {
          "name": "가맹점명",
          "selector": "[data-route-keep-alive-active=true] input[type=text]",
          "type": "textbox",
          "value": "QA4373",
          "queryParamCandidates": [
            "name"
          ]
        }
      ]
    }
  ],
  "subjectAccounts": [
    {
      "role": "ADMIN",
      "label": "#4373 사용자 지정 관리자",
      "envRole": "QA4373_ADMIN"
    },
    {
      "role": "CO",
      "label": "기본 법인 QA 계정",
      "envRole": "CO"
    },
    {
      "role": "CO",
      "label": "저장 검증용 기존 법인 QA 보조 계정",
      "envRole": "QA4373_CO_ALT"
    },
    {
      "role": "BO",
      "label": "기본 영업 QA 계정",
      "envRole": "BO"
    },
    {
      "role": "BO",
      "label": "복수 가맹점 검증용 기존 영업 QA 보조 계정(해당 테넌트 사용)",
      "envRole": "QA4373_BO_ALT"
    }
  ]
}
