# QA Report - Redmine #4158 (dev)

- Generated: 2026-10-11T02:51:37+09:00
- Redmine: https://itsm.bix.bz/issues/4158
- QA Redmine: https://itsm.bix.bz/issues/4277
- Subject: QA checklist for #4158
- Workflow Status: 완료
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> BO
- Route Candidates: not recorded

## Scope

개발계 공지사항 노출 대상 영업점·가맹점 지정과 영업라인 하위 노출, 기존 테넌트·법인 노출 유지 QA

## Checklist

1. ADMIN 공지 등록(관리 화면과 같은 API)으로 노출 대상 영업점(A_주홍석_영업1, A_주홍석_영업2, 다른 영업라인 최인석 영업)·가맹점(A_주홍석_가맹3) 지정 공지 등록, 관리 화면 수정 모달에 지정값 표시
2. 영업점 지정 시 해당 영업점 + 영업라인 하위 영업점·가맹점에만 노출: BO A_주홍석_영업1(jjmbo01, 영업2 하위이자 본인), VE A_주홍석_가맹1(jjmve02, 영업1·영업2 하위, ADMIN 가상로그인)
3. 다른 영업라인 미노출: 영업라인에 영업점이 없는 VE A_주홍석_가맹3(jjmve01), 다른 영업라인(최인석 영업) 지정 공지는 BO·VE 모두 미노출, 예전 영업1 하위였던 A_주홍석_가맹4_루시페이먼츠(현재 법인 직속)는 영업점 지정 공지 미노출(휴면 잠금으로 가상로그인 불가 시 확인 불가)
4. 기존 테넌트 전체·법인(A_주홍석_법인) 지정 공지는 BO·VE 모두 그대로 노출
5. 테스트 공지는 확인 후 삭제
6. VE(스토어)는 비스킷페이 VE 세션(jjmve01)과 ADMIN 가상로그인(가맹1·가맹4)으로 확인
7. 1차 QA(2026-10-11 02:0x) 가맹점 지정 500·예전 영업라인 노출 FAIL → deaa5eecea(삭제된 영업라인 공지 노출 제외, 가맹점 제약) 후 재QA

## Setup Steps

- 없음

## Source Text

요청자: 송인준
[1] QA 요청 배경
* https://itsm.bix.bz/issues/4158
[2] 사전 데이터
* 비스킷링크 BO 계정
* 비스킷페이 VE 계정
[3] 사전 작업
* 비스킷링크 BO 계정 로그인
* 비스킷페이 VE 계정 로그인
[4] 권한별 테스트
* BO,VE 계정 로그인
[5] 검증 대상
* 공지사항
[6] 체크리스트
* 공지사항 노출 대상을 특정 영업점, 가맹점 단위 지정 등록 확인
* 영업점 선택 시 해당 영업점 및 하위 영업점 , 가맹점에게만 공지 노출 되는지 확인
* 선택한 영업점 외 다른 영업라인에는 공지가 노출 되지않도록 처리 됐는지 확인
* 기존 테넌트 및 법인 단위 노출은 변함 없는지 확인

## Execution Summary

- Passed: 6
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 50476ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| ADMIN 공지 등록(관리 화면과 같은 API)으로 노출 대상 영업점(A_주홍석_영업1, A_주홍석_영업2, 다른 영업라인 최인석 영업)·가맹점(A_주홍석_가맹3) 지정 공지 등록, 관리 화면 수정 모달에 지정값 표시 | ADMIN - 공지 노출 대상 영업점·가맹점 지정 등록 | [4158][dev] QA checklist for #4158 | ADMIN - 공지 노출 대상 영업점·가맹점 지정 등록 계정으로 [4158][dev] QA checklist for #4158 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-admin-notice-list.png)<br>[실행 기록 1](artifacts/logs/01-notice-created.md) |
| 공지 노출 범위 | BO - BO A_주홍석_영업1 (jjmbo01) | [BO] BO A_주홍석_영업1 (jjmbo01) | BO - BO A_주홍석_영업1 (jjmbo01) 계정으로 [BO] BO A_주홍석_영업1 (jjmbo01) 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/02-viewer-bo-branch1.md) |
| 공지 노출 범위 | VE - VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) | [VE] VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) | VE - VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) 계정으로 [VE] VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/03-viewer-ve-vendor3.md) |
| 공지 노출 범위 | VE - VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) | [VE] VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) | VE - VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) 계정으로 [VE] VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-viewer-ve-vendor1-store.png)<br>[실행 기록 1](artifacts/logs/04-viewer-ve-vendor1.md) |
| 공지 노출 범위 | VE - VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) | [VE] VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) | VE - VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) 계정으로 [VE] VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-viewer-ve-vendor4-store.png)<br>[실행 기록 1](artifacts/logs/05-viewer-ve-vendor4.md) |
| [ADMIN] 테스트 공지 삭제 | ADMIN - 테스트 공지 삭제 | [4158][dev] QA checklist for #4158 | ADMIN - 테스트 공지 삭제 계정으로 정책을 생성하고 삭제한 뒤 목록 반영 여부를 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/06-notice-cleanup.md) |

## 실패 또는 확인 불가 상세

- 실패 또는 확인 불가 항목이 없습니다.

## 수동 재현 필요

- 수동 재현이 필요한 항목이 없습니다.

## 스크린샷

- ADMIN - 공지 노출 대상 영업점·가맹점 지정 등록 / [4158][dev] QA checklist for #4158 / ADMIN 공지 등록(관리 화면과 같은 API)으로 노출 대상 영업점(A_주홍석_영업1, A_주홍석_영업2, 다른 영업라인 최인석 영업)·가맹점(A_주홍석_가맹3) 지정 공지 등록, 관리 화면 수정 모달에 지정값 표시: [스크린샷 1](artifacts/screenshots/01-admin-notice-list.png)
- VE - VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) / [VE] VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) / 공지 노출 범위: [스크린샷 1](artifacts/screenshots/02-viewer-ve-vendor1-store.png)
- VE - VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) / [VE] VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) / 공지 노출 범위: [스크린샷 1](artifacts/screenshots/03-viewer-ve-vendor4-store.png)

## 화면 재현 기록

- 화면 재현 기록 자료가 없습니다.
- 화면 재현 기록은 기본적으로 실패/확인불가 항목에 한해 포함합니다. PASS 항목 trace까지 필요하면 `QA_PUBLISH_TRACE=1 npm run qa:report -- --issue <id> --env <env>`로 내부 제출용 산출물을 생성합니다.

## 실행 기록

- ADMIN - 공지 노출 대상 영업점·가맹점 지정 등록 / [4158][dev] QA checklist for #4158 / ADMIN 공지 등록(관리 화면과 같은 API)으로 노출 대상 영업점(A_주홍석_영업1, A_주홍석_영업2, 다른 영업라인 최인석 영업)·가맹점(A_주홍석_가맹3) 지정 공지 등록, 관리 화면 수정 모달에 지정값 표시: [실행 기록 1](artifacts/logs/01-notice-created.md)
- BO - BO A_주홍석_영업1 (jjmbo01) / [BO] BO A_주홍석_영업1 (jjmbo01) / 공지 노출 범위: [실행 기록 1](artifacts/logs/02-viewer-bo-branch1.md)
- VE - VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) / [VE] VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) / 공지 노출 범위: [실행 기록 1](artifacts/logs/03-viewer-ve-vendor3.md)
- VE - VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) / [VE] VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) / 공지 노출 범위: [실행 기록 1](artifacts/logs/04-viewer-ve-vendor1.md)
- VE - VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) / [VE] VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) / 공지 노출 범위: [실행 기록 1](artifacts/logs/05-viewer-ve-vendor4.md)
- ADMIN - 테스트 공지 삭제 / [4158][dev] QA checklist for #4158 / [ADMIN] 테스트 공지 삭제: [실행 기록 1](artifacts/logs/06-notice-cleanup.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [ADMIN] 공지 노출 대상 영업점·가맹점 지정 등록 | PASS | 8680ms | [스크린샷 1](artifacts/screenshots/01-admin-notice-list.png) |  | [로그 1](artifacts/logs/01-notice-created.md) |  |
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [BO] BO A_주홍석_영업1 (jjmbo01) / 공지 노출 범위 | PASS | 206ms |  |  | [로그 1](artifacts/logs/02-viewer-bo-branch1.md) |  |
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [VE] VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인) / 공지 노출 범위 | PASS | 190ms |  |  | [로그 1](artifacts/logs/03-viewer-ve-vendor3.md) |  |
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [VE] VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위) / 공지 노출 범위 | PASS | 21455ms | [스크린샷 1](artifacts/screenshots/02-viewer-ve-vendor1-store.png) |  | [로그 1](artifacts/logs/04-viewer-ve-vendor1.md) |  |
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [VE] VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속) / 공지 노출 범위 | PASS | 18059ms | [스크린샷 1](artifacts/screenshots/03-viewer-ve-vendor4-store.png) |  | [로그 1](artifacts/logs/05-viewer-ve-vendor4.md) |  |
| 4158/dev/notice-branch-target.spec.ts / [4158][dev] QA checklist for #4158 / [ADMIN] 테스트 공지 삭제 | PASS | 963ms |  |  | [로그 1](artifacts/logs/06-notice-cleanup.md) |  |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- QA subissue에 report/evidence 업로드와 완료 상태 갱신이 반영되었습니다.
