{
  "issueId": "3966",
  "environment": "dev",
  "source": "Redmine #3966 + user-provided QA checklist 2026-08-11",
  "scenario": "deposit-confirmation-firm-bank-scope",
  "sourceText": "김경주님의 QA 요청입니다. 비스킷 링크 개발계 계좌관리 > 입금확인에서 펌뱅킹명 다중 검색, 계좌번호 부분 검색, 기존 조건과의 조합 검색, ADMIN/TA 펌뱅크 접근 범위 및 같은 조건의 엑셀 일치 여부를 검증합니다. 검증 테넌트는 빅스페이먼츠이며 TA 계정은 ta_test_gj입니다. 비밀번호와 2FA는 로컬 환경변수로만 주입합니다. Redmine: https://itsm.bix.bz/issues/3966",
  "scope": "dev 빅스페이먼츠 테넌트에서 ADMIN 기본 계정과 요청에 명시된 TA ta_test_gj 계정으로 입금확인 목록·펌뱅크 등록 범위, 펌뱅킹명/계좌번호/조합 필터, 비동기 엑셀 결과를 실제 API 응답과 교차 검증한다.",
  "roles": [
    "ADMIN",
    "TA"
  ],
  "subjectAccounts": [
    {
      "role": "ADMIN",
      "label": "bigs_jjm",
      "envRole": "ADMIN"
    },
    {
      "role": "TA",
      "label": "ta_test_gj",
      "envRole": "TA_3966"
    }
  ],
  "checklist": [
    "admin 계정에서는 계좌관리 > 입금확인에서 빅스페이먼츠 테넌트의 입금확인이 펌뱅크 연결 여부와 관계없이 모두 조회되는지 확인",
    "ta 계정에서는 계좌관리 > 펌뱅크 등록에서 확인 가능한 테넌트 및 할당 법인의 펌뱅크가 연결된 입금확인만 조회되고, 접근할 수 없는 펌뱅크와 펌뱅크 미연결 내역은 보이지 않는지 확인",
    "펌뱅킹명을 여러 개 선택하면 현재 권한으로 조회 가능한 범위 안에서 선택한 이름 중 하나와 일치하는 내역만 조회되는지 확인",
    "계좌번호 일부를 입력하면 현재 권한으로 조회 가능한 범위 안에서 해당 번호를 포함한 내역만 조회되는지 확인",
    "펌뱅킹명·계좌번호 조건을 상태·기간·제목·공급자 조건과 함께 사용해도 권한별 조회 범위가 유지되는지 확인",
    "admin 계정에서 현재 검색 조건으로 엑셀을 다운로드했을 때, 빅스페이먼츠 테넌트의 입금확인 목록 전체와 엑셀의 내역이 일치하는지 확인",
    "ta 계정에서 현재 검색 조건으로 엑셀을 다운로드했을 때, 접근 가능한 펌뱅크의 입금확인 목록 전체와 엑셀의 내역이 일치하는지 확인"
  ],
  "setupSteps": [
    {
      "name": "ADMIN/TA 로그인 및 입금확인·펌뱅크 등록 접근",
      "kind": "state-verify",
      "role": "ADMIN",
      "application": "admin",
      "targetRoles": [
        "ADMIN",
        "TA"
      ],
      "description": "ADMIN은 기본 계정 bigs_jjm, TA는 요청에 명시된 ta_test_gj 계정으로 로그인한다. 두 계정 모두 빅스페이먼츠 테넌트에서 입금확인 및 펌뱅크 등록 데이터 API에 접근 가능해야 한다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "역할별 펌뱅크 연결 입금확인 데이터",
      "kind": "state-verify",
      "role": "ADMIN/TA",
      "application": "admin",
      "description": "2025-01-01~2026-12-31 범위에 펌뱅크 연결 건과 미연결 건이 함께 존재하고, TA에는 조회 가능한 복수 펌뱅크 연결 건과 비교 가능한 접근 불가 펌뱅크 건이 존재해야 한다. 실제 연결 유형과 건수는 실행 증거에 기록한다.",
      "required": true,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "입금확인",
      "application": "admin",
      "path": "/account/deposit-confirmation",
      "tenantParam": "tenantId",
      "roles": [
        "ADMIN",
        "TA"
      ],
      "searchButtonSelector": "button:has-text('검색')",
      "dataRequestUrlPattern": "/api/v1/deposit-checks",
      "excelDocumentPath": "/document",
      "excelDocumentReadyTimeoutMs": 120000
    },
    {
      "name": "펌뱅크 등록",
      "application": "admin",
      "path": "/account/account-inquiry",
      "tenantParam": "tenantId",
      "roles": [
        "ADMIN",
        "TA"
      ],
      "dataRequestUrlPattern": "/api/v2/firm-banks"
    }
  ]
}
