{
  "issueId": "3154",
  "environment": "dev",
  "source": "local checklist",
  "sourceText": "주홍석님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3154\n- 더즌 예금주 조회를 헥토파이낸셜 예금주 조회로 전환하는 건입니다. 스토어와 전산의 예금주 조회 사용 화면에서 정상 조회, 실패 안내, 저장/진행 제한 흐름 확인 부탁드립니다.\n[2] 사전 데이터\n- 개발계에서 예금주 조회가 가능한 은행과 정상 계좌번호 준비\n- 조회 실패를 확인할 수 있는 잘못된 계좌번호 또는 은행/계좌 조합 준비\n[3] 사전 작업\n- VE, admin, ta 계정으로 대상 화면 접근 가능 여부 확인\n[4] 권한별 테스트\n- ve\n- admin\n- ta\n[5] 검증 대상\n- 스토어(VE): 송금 예금주 확인\n- 스토어(VE): 송금 예금주 확인 V2\n- 스토어(VE): 링크샵 상품구입 내 예금주 조회\n- 스토어(VE): 큐브 링크샵 상품구입 내 예금주 조회\n- 전산(admin/ta): 계좌 조회\n- 전산(admin/ta): 이체하기\n- 전산(admin/ta): 계좌\n- 전산(admin/ta): 계좌 생성\n- 전산(admin/ta): 계좌 수정\n- 전산(admin/ta): 통합 계좌 관리\n- 전산(admin/ta): 법인계좌 관리\n- 전산(admin/ta): 지급계좌 관리\n- 전산(admin/ta): 모계좌 관리\n- 전산(admin/ta): 시스템 지급계좌 관리\n- 전산(admin/ta): 블랙리스트 관리\n- 전산(admin/ta): 법인 등록\n- 전산(admin/ta): 법인 수정\n- 전산(admin/ta): 영업점 등록\n- 전산(admin/ta): 영업점 수정\n- 전산(admin/ta): 가맹점 관리\n- 전산(admin/ta): 법인계좌 관리 v2\n[6] 체크리스트\n- 스토어(VE) 대상 화면에서 은행과 계좌번호 입력 후 예금주 조회 시 예금주명이 정상 표시되는지 확인\n- 스토어(VE) 링크샵 상품구입 화면에서 예금주 조회 성공 후 다음 단계 진행이 정상 동작하는지 확인\n- 전산(admin/ta) 계좌 관련 조회/생성/수정 화면에서 예금주 조회 결과가 정상 표시되는지 확인\n- 전산(admin/ta) 이체하기 화면에서 수취 계좌 예금주 확인 후 이체 진행 흐름이 정상 동작하는지 확인\n- 법인/영업점/가맹점 등록·수정 화면에서 계좌 입력 후 예금주 조회와 저장 흐름이 정상 동작하는지 확인\n- 잘못된 계좌번호 또는 은행/계좌 조합으로 조회 시 실패 안내 문구가 표시되고 저장 또는 다음 단계 진행이 제한되는지 확인\n- 같은 화면에서 예금주 조회를 반복하거나 계좌번호를 변경해 재조회할 때 이전 조회 결과가 잘못 남지 않는지 확인\n- VE, admin, ta 권한별로 접근 가능한 화면의 버튼 노출과 예금주 조회 흐름이 권한에 맞게 동작하는지 확인",
  "scope": "dev VE(store), ADMIN/TA(admin) 계정으로 스토어와 전산의 헥토파이낸셜 예금주 조회 성공/실패/재조회/진행 제한 흐름을 검증",
  "scenario": "account-holder-lookup",
  "checklist": [
    "스토어(VE) 대상 화면에서 은행과 계좌번호 입력 후 예금주 조회 시 예금주명이 정상 표시되는지 확인",
    "스토어(VE) 링크샵 상품구입 화면에서 예금주 조회 성공 후 다음 단계 진행이 정상 동작하는지 확인",
    "전산(admin/ta) 계좌 관련 조회/생성/수정 화면에서 예금주 조회 결과가 정상 표시되는지 확인",
    "전산(admin/ta) 이체하기 화면에서 수취 계좌 예금주 확인 후 이체 진행 흐름이 정상 동작하는지 확인",
    "법인/영업점/가맹점 등록·수정 화면에서 계좌 입력 후 예금주 조회와 저장 흐름이 정상 동작하는지 확인",
    "잘못된 계좌번호 또는 은행/계좌 조합으로 조회 시 실패 안내 문구가 표시되고 저장 또는 다음 단계 진행이 제한되는지 확인",
    "같은 화면에서 예금주 조회를 반복하거나 계좌번호를 변경해 재조회할 때 이전 조회 결과가 잘못 남지 않는지 확인",
    "VE, admin, ta 권한별로 접근 가능한 화면의 버튼 노출과 예금주 조회 흐름이 권한에 맞게 동작하는지 확인"
  ],
  "roles": [
    "VE",
    "TA"
  ],
  "routeCandidates": "../../../../qa-results/issues/3154/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "헥토 예금주 조회 정상/실패 계좌 데이터 준비",
      "kind": "manual-precondition",
      "role": "ADMIN",
      "application": "admin",
      "description": "정상 조회용 은행/계좌/예금주명은 QA_3154_VALID_BANK_NAME, QA_3154_VALID_ACCOUNT_NUMBER, QA_3154_EXPECTED_HOLDER_NAME에, 실패 조회용 계좌는 QA_3154_INVALID_ACCOUNT_NUMBER에 .env.local로만 설정한다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "링크샵/큐브 링크샵 결제 URL 준비",
      "kind": "manual-precondition",
      "role": "VE",
      "application": "store",
      "description": "링크샵 상품구입 화면 검증 URL이 고정 URL이면 QA_3154_LINK_SHOP_URL, 큐브 링크샵은 QA_3154_CUBE_LINK_SHOP_URL에 .env.local로만 설정한다.",
      "required": false,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "스토어 송금 예금주 확인",
      "application": "store",
      "path": "/remittance/account-holder",
      "roles": [
        "VE"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "스토어 송금 예금주 확인 V2",
      "application": "store",
      "path": "/remittance/account-holder-v2",
      "roles": [
        "VE"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "링크샵 상품구입",
      "application": "store",
      "path": "/link-shop-payment",
      "roles": [
        "VE"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "큐브 링크샵 상품구입",
      "application": "store",
      "path": "/cube/link-shop-payment",
      "roles": [
        "VE"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "계좌조회",
      "application": "admin",
      "path": "/account/account-inquiry",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "이체하기",
      "application": "admin",
      "path": "/account/remittance-manage",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('수취'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('확인')"
    },
    {
      "name": "계좌 관리",
      "application": "admin",
      "path": "/account",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "통합 계좌 관리",
      "application": "admin",
      "path": "/account/integrated-account-management",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "모계좌관리",
      "application": "admin",
      "path": "/master-accounting/master-accounts",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "시스템 지급계좌 관리",
      "application": "admin",
      "path": "/master-accounting/system-disbursement-accounts",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "법인계좌관리",
      "application": "admin",
      "path": "/master-accounting/corporation-accounts",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "지급계좌관리",
      "application": "admin",
      "path": "/master-accounting/disbursement-accounts",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "법인관리",
      "application": "admin",
      "path": "/business/corporation",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "영업점관리",
      "application": "admin",
      "path": "/business/branch",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "가맹점관리",
      "application": "admin",
      "path": "/business/vendor-manage",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "블랙리스트 관리",
      "application": "admin",
      "path": "/admin/blacklist-manage",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    },
    {
      "name": "법인계좌관리V2",
      "application": "admin",
      "path": "/master-accounting/corporation-accounts-v2",
      "roles": [
        "TA"
      ],
      "tenantParam": "tenantId",
      "dataRequestUrlPattern": "account|holder|owner|depositor|hecto|dozn|bank",
      "searchButtonSelector": "button:has-text('예금주'), button:has-text('계좌 조회'), button:has-text('계좌조회'), button:has-text('등록'), button:has-text('수정')"
    }
  ]
}
