{
  "issueId": "3316",
  "environment": "dev",
  "source": "local checklist",
  "sourceText": "주홍석님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3316\n- 사용자 프리셋 관리와 역할별 사용 가능 권한 관리 화면의 권한/테넌트 기준 동작 변경 검증 요청\n\n[2] 사전 데이터\n- 개발계에서 검증할 테넌트, 법인, 영업점, 가맹점과 각 권한별 테스트 계정 준비\n\n[3] 사전 작업\n- admin, ta, co, bo, ve 계정으로 로그인 가능 여부와 대상 메뉴 접근 가능 여부 확인\n- 시스템 기본 설정 변경 가능 여부 정책을 켜고 끈 상태를 각각 확인할 수 있도록 준비\n\n[4] 권한별 테스트\n- admin\n- ta\n- co\n- bo\n- ve\n\n[5] 검증 대상\n- 사용자 프리셋 관리 화면\n- 역할별 사용 가능 권한 관리 화면\n- 시스템 메뉴와 운영 메뉴의 메뉴 노출 및 접근 권한\n\n[6] 체크리스트\n- admin 계정에서 전체 역할의 사용자 프리셋을 조회할 수 있고, 테넌트 선택 시 선택한 테넌트 기준 목록과 상세가 보이는지 확인\n- ta 계정에서 법인, 영업점, 가맹점 역할의 사용자 프리셋만 보이고 생성/수정/삭제 시 선택한 테넌트 기준으로 처리되는지 확인\n- co 계정에서 영업점, 가맹점 역할의 사용자 프리셋만 보이고 소속 범위 밖 프리셋이 보이지 않는지 확인\n- bo, ve 계정에서 권한이 없는 역할 프리셋 생성/수정/삭제 버튼 또는 접근이 차단되는지 확인\n- 프리셋 생성, 수정, 삭제 시 사유 입력이 필수로 동작하고 처리 후 목록/상세에 변경된 권한 구성이 반영되는지 확인\n- 역할별 사용 가능 권한 관리 화면에서 시스템 기본 설정은 admin 계정에서만 변경 가능하고, 정책이 꺼져 있을 때 저장이 차단되는지 확인\n- 정책이 켜져 있을 때 admin 계정에서 시스템 기본 설정 저장이 가능하고, 정책 상태 확인 후 화면 버튼 상태가 알맞게 바뀌는지 확인\n- 운영 메뉴에서는 운영 메뉴용 역할별 사용 가능 권한 메뉴가 노출되고, 시스템 메뉴의 기존 권한 메뉴 노출은 유지되는지 확인",
  "scope": "dev 환경에서 사용자 프리셋 관리와 역할별 사용 가능 권한 관리 화면의 role별 권한, 테넌트 기준, 시스템/운영 메뉴 노출을 검증",
  "checklist": [
    "admin 계정에서 전체 역할의 사용자 프리셋을 조회할 수 있고, 테넌트 선택 시 선택한 테넌트 기준 목록과 상세가 보이는지 확인",
    "ta 계정에서 법인, 영업점, 가맹점 역할의 사용자 프리셋만 보이고 생성/수정/삭제 시 선택한 테넌트 기준으로 처리되는지 확인",
    "co 계정에서 영업점, 가맹점 역할의 사용자 프리셋만 보이고 소속 범위 밖 프리셋이 보이지 않는지 확인",
    "bo 계정에서 권한이 없는 역할 프리셋 생성/수정/삭제 버튼 또는 접근이 차단되는지 확인",
    "프리셋 생성, 수정, 삭제 시 사유 입력이 필수로 동작하고 처리 후 목록/상세에 변경된 권한 구성이 반영되는지 확인",
    "역할별 사용 가능 권한 관리 화면에서 시스템 기본 설정은 admin 계정에서만 변경 가능하고, 정책이 꺼져 있을 때 저장이 차단되는지 확인",
    "정책이 켜져 있을 때 admin 계정에서 시스템 기본 설정 저장이 가능하고, 정책 상태 확인 후 화면 버튼 상태가 알맞게 바뀌는지 확인",
    "운영 메뉴에서는 운영 메뉴용 역할별 사용 가능 권한 메뉴가 노출되고, 시스템 메뉴의 기존 권한 메뉴 노출은 유지되는지 확인"
  ],
  "roles": [
    "TA",
    "CO",
    "BO"
  ],
  "routeCandidates": "../../../../qa-results/issues/3316/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "시스템 기본 설정 변경 가능 여부 정책 상태 준비",
      "kind": "permission-toggle",
      "role": "ADMIN",
      "application": "admin",
      "description": "정책이 꺼진 상태와 켜진 상태를 각각 확인할 수 있어야 합니다. 자동화는 정책 상태 확인과 버튼 상태 증거를 남기며, 정책 변경이 필요한 경우 QA_ALLOW_PERMISSION_MUTATION=1일 때만 수행합니다.",
      "required": true,
      "mutation": "temporary",
      "guardEnv": "QA_ALLOW_PERMISSION_MUTATION",
      "restore": {
        "required": true,
        "description": "정책 상태를 변경한 경우 QA 종료 후 시작 전 상태로 복구합니다. QA_ALLOW_PERMISSION_MUTATION=1 없이 실행한 경우 변경하지 않았으므로 복구 대상이 없습니다."
      }
    }
  ],
  "pages": [
    {
      "name": "사용자 프리셋 관리",
      "application": "admin",
      "roles": [
        "TA",
        "CO",
        "BO"
      ],
      "path": "/business/member-preset",
      "tenantParam": "tenantId",
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회')",
      "tenantFilterSelector": "input[placeholder*='테넌트'], [role='combobox']:has-text('테넌트'), button:has-text('테넌트')",
      "tenantOptionSelector": "[role='option'], [role='menuitem'], .MuiAutocomplete-option, .MuiMenuItem-root, li",
      "recordsSelector": "table tbody tr, [role='row'], main",
      "expectedVisibleTextsByRole": {
        "ADMIN": [
          "사용자 프리셋",
          "관리자",
          "업체",
          "법인",
          "영업점",
          "가맹점"
        ],
        "TA": [
          "사용자 프리셋",
          "법인",
          "영업점",
          "가맹점"
        ],
        "CO": [
          "사용자 프리셋",
          "영업점",
          "가맹점"
        ]
      },
      "forbiddenVisibleTextsByRole": {
        "TA": [
          "관리자"
        ],
        "CO": [
          "관리자",
          "테넌트 관리자"
        ]
      }
    },
    {
      "name": "역할별 사용 가능 권한 관리",
      "application": "admin",
      "roles": [
        "TA",
        "CO",
        "BO"
      ],
      "path": "/business/permission-available",
      "tenantParam": "tenantId",
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회')",
      "recordsSelector": "table tbody tr, [role='row'], main",
      "expectedVisibleTextsByRole": {
        "ADMIN": [
          "역할별 사용 가능 권한",
          "시스템 기본 설정"
        ]
      }
    }
  ],
  "scenario": "user-preset-permission"
}
