{
  "issueId": "4373",
  "environment": "dev",
  "source": "local checklist",
  "sourceText": "법인·영업점 최신 단일 form·초기 로딩 구현의 실제 dev 반영 확인\n법인·영업점·가맹점 생성/수정의 빠른 입력·교차 변경·커서·붙여넣기·취소\nCO 긴 비고 1,500자 계측 OFF 5회·ON 5회 입력/수수료 변경 후 완전 일치\n초기 로딩·조회 실패·재시도·동일 대상 재조회 시 draft/포커스 유지\n다른 대상·취소 후 재열기의 미저장 draft 분리\n세 화면 정산 제한 시작·종료의 첫 0·시/분 미완성·버튼/ESC 저장 차단\n정산 제한 00:00/23:59·빠른 입력·붙여넣기·일부/전체 삭제·교차 입력\n승인 QA 가맹점 마지막 글자 실제 저장·새로고침·재진입·원복\n승인 QA 가맹점 거래가능·정산 제한 시간 실제 저장·재진입·서버 원복\n법인·영업점 승인 QA 레코드에서 실제 저장·재조회·원복\n법인·영업점 제한없음/자동·제한값·선정산 미사용 0·snapshot 요청 생성(서버 전송 차단)\n계좌 예금주 조회·재입력·잠금 및 주소검색·조회 중 중복/늦은 응답\n수수료·금액·선택·프리셋·휴일·필수값/이메일/등록번호 기존 영향 회귀\n법인 등록/수정 권한 정책·역할/항목별 정상 제한·마스킹 유지\n실제 macOS/Windows 한글 입력기 검증(이전 개인확인과 새 자동실행 구분)",
  "scope": "b1ea8ff3 법인·영업점 단일 form/초기 로딩 및 법인·영업점·가맹점 전체 입력·정산 제한 실제 dev 재QA. 제품 로컬 fixture 결과 제외. 실제 저장 승인 가맹점 박재민_가맹_한결데만 변경·원복.",
  "checklist": [
    "법인·영업점 최신 단일 form·초기 로딩 구현의 실제 dev 반영 확인",
    "법인·영업점·가맹점 생성/수정의 빠른 입력·교차 변경·커서·붙여넣기·취소",
    "CO 긴 비고 1,500자 계측 OFF 5회·ON 5회 입력/수수료 변경 후 완전 일치",
    "초기 로딩·조회 실패·재시도·동일 대상 재조회 시 draft/포커스 유지",
    "다른 대상·취소 후 재열기의 미저장 draft 분리",
    "세 화면 정산 제한 시작·종료의 첫 0·시/분 미완성·버튼/ESC 저장 차단",
    "정산 제한 00:00/23:59·빠른 입력·붙여넣기·일부/전체 삭제·교차 입력",
    "승인 QA 가맹점 마지막 글자 실제 저장·새로고침·재진입·원복",
    "승인 QA 가맹점 거래가능·정산 제한 시간 실제 저장·재진입·서버 원복",
    "법인·영업점 승인 QA 레코드에서 실제 저장·재조회·원복",
    "법인·영업점 제한없음/자동·제한값·선정산 미사용 0·snapshot 요청 생성(서버 전송 차단)",
    "계좌 예금주 조회·재입력·잠금 및 주소검색·조회 중 중복/늦은 응답",
    "수수료·금액·선택·프리셋·휴일·필수값/이메일/등록번호 기존 영향 회귀",
    "법인 등록/수정 권한 정책·역할/항목별 정상 제한·마스킹 유지",
    "실제 macOS/Windows 한글 입력기 검증(이전 개인확인과 새 자동실행 구분)"
  ],
  "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"
      ],
      "description": "사용자 승인 박재민_가맹_한결데만 변경. 최초 UI 및 서버 값 기록, finally에서 원복, 서버 재조회로 정산 시간 null 복구 확인. 법인·영업점 미승인 레코드는 실제 변경하지 않음.",
      "mutation": "temporary",
      "guardEnv": "QA_4373_ALLOW_VENDOR_MUTATION",
      "required": true,
      "spec": "rounds/b1ea8ff3/vendor-save.spec.ts",
      "navigation": {
        "name": "가맹점 관리",
        "path": "/business/vendor-manage"
      },
      "restore": {
        "required": true,
        "description": "finally에서 원래 상호명·비고·선택값·시간을 저장 후 재진입해 동일함을 확인한다."
      }
    }
  ],
  "pages": [
    {
      "name": "법인 등록·수정",
      "application": "admin",
      "path": "/business/corporation",
      "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"
          ]
        }
      ]
    },
    {
      "name": "영업점 등록·수정",
      "application": "admin",
      "path": "/business/branch",
      "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"
          ]
        }
      ]
    },
    {
      "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"
    }
  ],
  "implementationCommit": "b1ea8ff3bc147d27d64c54cccc93cf95ef79d2aa"
}
