{
  "issueId": "3350",
  "environment": "dev",
  "scenario": "biscuit-card-activation",
  "source": "local checklist",
  "sourceText": "요청자 송인준\\n조지민프로님 안녕하세요, 비스킷 무기명 카드 활성화 API 개발계 QA 요청드립니다.\\n\\n[1] QA 요청 배경\\nhttps://itsm.bix.bz/issues/3350\\n비스킷 측 신규 API 연동으로, 어드민에서 선택한 무기명 카드 ID 목록을 비스킷에 전달해 카드를 활성화하는 API가 추가되었습니다.\\n[2] 사전 데이터\\n개발계에서 활성화 가능한 무기명 카드 데이터 준비\\n이미 활성화된 카드 또는 활성화 실패가 예상되는 카드 데이터 준비\\n비스킷 페이 테스트 계정 2개는 별도 전달된 인증정보를 .env.local에 입력해 store 반영을 확인\\n[3] 사전 작업\\nADMIN 계정으로 로그인 가능 여부 확인\\nTA 계정으로 로그인 가능 여부 확인\\nCO 계정으로 로그인 가능 여부 확인\\n개발계 백엔드와 프론트가 최신 반영 상태인지 확인\\n비스킷 개발계 API 연동 설정 및 응답 가능 여부 확인\\n[4] 권한별 테스트\\nadmin\\nta\\nco\\n[5] 검증 대상\\n비스킷 관리 > 비스킷카드관리 화면의 등록 완료 처리\\n[6] 체크리스트\\nADMIN 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인\\nTA 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인\\nCO 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인\\n활성화 대상 카드를 1개 선택 후 활성화 요청 시 정상 처리되는지 확인\\n활성화 대상 카드를 여러 개 선택 후 요청 시 request body의 cardIds에 선택한 카드 ID가 모두 포함되는지 확인\\ncardIds가 빈 배열인 상태로 요청되지 않도록 프론트에서 방어되는지 확인\\n빈 배열 요청이 발생하는 경우 백엔드에서 400 오류로 처리되는지 확인\\n활성화 성공 카드의 success가 true로 표시되는지 확인\\n활성화 실패 카드의 success가 false로 표시되는지 확인\\n실패 카드의 message가 화면에서 확인 가능한 형태로 표시되는지 확인\\n응답의 totalCount가 요청/처리 대상 카드 수와 일치하는지 확인\\n응답의 successCount가 성공 건수와 일치하는지 확인\\n응답의 failureCount가 실패 건수와 일치하는지 확인\\n성공/실패가 섞인 응답에서 성공 건과 실패 건이 각각 올바르게 구분되어 표시되는지 확인\\n카드 상태가 ACTIVE로 내려온 경우 화면에 활성 상태로 표시되는지 확인\\n활성화 요청 완료 후 카드 목록 또는 상세 상태가 최신 상태로 갱신되는지 확인\\n비스킷 페이에서 테스트 계정으로 로그인 후 카드 등록 상태가 정상 반영되었는지 확인",
  "scope": "dev 환경 ADMIN -> TA -> CO 계정으로 비스킷카드관리 등록 완료 처리 접근과 요청/응답/상태 갱신을 검증하고, store 테스트 계정 2개로 카드 상태 반영을 확인",
  "checklist": [
    "ADMIN 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인",
    "TA 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인",
    "CO 계정으로 무기명 카드 활성화 기능 진입 및 활성화 요청이 가능한지 확인",
    "활성화 대상 카드를 1개 선택 후 활성화 요청 시 정상 처리되는지 확인",
    "활성화 대상 카드를 여러 개 선택 후 요청 시 request body의 cardIds에 선택한 카드 ID가 모두 포함되는지 확인",
    "cardIds가 빈 배열인 상태로 요청되지 않도록 프론트에서 방어되는지 확인",
    "빈 배열 요청이 발생하는 경우 백엔드에서 400 오류로 처리되는지 확인",
    "활성화 성공 카드의 success가 true로 표시되는지 확인",
    "활성화 실패 카드의 success가 false로 표시되는지 확인",
    "실패 카드의 message가 화면에서 확인 가능한 형태로 표시되는지 확인",
    "응답의 totalCount가 요청/처리 대상 카드 수와 일치하는지 확인",
    "응답의 successCount가 성공 건수와 일치하는지 확인",
    "응답의 failureCount가 실패 건수와 일치하는지 확인",
    "성공/실패가 섞인 응답에서 성공 건과 실패 건이 각각 올바르게 구분되어 표시되는지 확인",
    "카드 상태가 ACTIVE로 내려온 경우 화면에 활성 상태로 표시되는지 확인",
    "활성화 요청 완료 후 카드 목록 또는 상세 상태가 최신 상태로 갱신되는지 확인",
    "비스킷 페이에서 테스트 계정으로 로그인 후 카드 등록 상태가 정상 반영되었는지 확인"
  ],
  "roles": [
    "TA",
    "CO"
  ],
  "routeCandidates": "../../../../qa-results/issues/3350/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "store 테스트 계정 2개 인증정보 입력",
      "kind": "manual-precondition",
      "application": "store",
      "description": ".env.local에 BIX_STORE_DEV_STORE_CARD_ACTIVE_1_USERNAME/PASSWORD와 BIX_STORE_DEV_STORE_CARD_ACTIVE_2_USERNAME/PASSWORD를 입력한다. 실제 계정과 비밀번호는 repo에 커밋하지 않는다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "등록 대기 무기명 카드 준비",
      "kind": "manual-precondition",
      "application": "admin",
      "description": "store 테스트 계정 2개와 매칭되는 개발계 무기명 카드가 비스킷카드관리 목록에서 등록 대기 상태로 조회되어야 한다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "성공/실패 혼합 응답 표시 검증",
      "kind": "manual-precondition",
      "application": "admin",
      "description": "화면 표시 검증은 실제 데이터 소모를 막기 위해 Playwright가 등록 완료 처리 API 응답을 가로채 성공 1건/실패 1건 응답으로 렌더링을 검증한다. 실제 활성화 요청은 별도 케이스에서 수행한다.",
      "required": true,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "비스킷카드관리",
      "application": "admin",
      "path": "/admin/biscuit-card/card-manage",
      "tenantParam": "tenantId",
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회'), [data-testid='search-button']",
      "dataRequestUrlPattern": "/api/v1/biscuit/admin/cards"
    }
  ]
}
