# QA Report - Redmine #4041 (dev)

- Generated: 2026-08-26T15:09:53+09:00
- Redmine: https://itsm.bix.bz/issues/4041
- QA Redmine: https://itsm.bix.bz/issues/4058
- Subject: 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA
- Workflow Status: 완료
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> TA -> VE
- Route Candidates: not recorded

## Scope

dev ADMIN(bigs_jjm)과 TA(jjmta01)가 BP100060 현재 영업라인 모달에서 수기/ISP 결제 MID를 타입별 한 개 선택·저장하는지 검증하고, ADMIN UI로 기본 VE(jjmve01) 소속 BP100488의 수기 MID를 저장했을 때 스토어 가맹점 상세 API에 반영되는지 검증한다.

## Checklist

1. ADMIN(bigs_jjm), TA(jjmta01) 각각 실제 UI에서 업체관리 > 가맹점관리 > 현재 영업라인 조회 모달을 열고 MID를 선택/저장한다.
2. 수기/ISP MID만 선택할 수 있고 단말기 MID selector는 비활성 상태여야 한다.
3. 수기 후보가 3개이므로 두 번째 수기 선택 시 첫 번째가 해제되어 타입별 1개임을 확인한다.
4. ISP 1개 선택 후 저장하고 모달 재오픈 시 유지 확인.
5. ADMIN UI에서 기본 VE 계정 jjmve01 소속 BP100488의 수기 MID를 저장한 뒤 jjmve01 인증 context의 payload.paymentMethods MANUAL 값이 저장값과 일치하는지 확인.
6. 각 테스트는 최초 null selection을 확인하고 검증 후 공식 MID 선택 DELETE API로 정리한 다음 관리자 API/UI에서 null·미선택을 확인하고 스토어 API 원복 후 값을 기록.
7. 선택 저장은 실제 UI의 저장 버튼으로만 수행하며, 데이터 정리는 제품의 공식 선택 해제 DELETE API로 수행한다.
8. 역할별 테스트를 serial로 실행하고 실패 시 trace와 JSON/text/screenshot 증거를 남긴다.

## Setup Steps

1. [required] 가맹점 결제 MID 선택 및 null 원복 (admin/ADMIN / targets: ADMIN, TA / kind: data-update / mutation: temporary / guard: QA_4041_ALLOW_MID_SELECTION_MUTATION / restore: required) - ADMIN/TA는 BP100060의 수기/ISP MID를 실제 UI에서 임시 선택·저장한다. ADMIN은 jjmve01 소속 BP100488의 수기 MID도 실제 UI로 저장한다. 검증 종료 시 공식 선택 해제 DELETE API로 임시 선택을 제거한다. / spec: sales-line-payment-method-selection.spec.ts

## Source Text

ADMIN(bigs_jjm), TA(jjmta01) 각각 실제 UI에서 업체관리 > 가맹점관리 > 현재 영업라인 조회 모달을 열고 BP100060의 MID를 선택/저장한다.
수기/ISP MID만 활성 선택할 수 있고 단말기 MID selector는 비활성 상태여야 한다.
수기 후보가 3개이므로 두 번째 수기 선택 시 첫 번째가 해제되어 타입별 1개임을 확인한다.
ISP 1개 선택 후 저장하고 모달 재오픈 시 유지 확인.
기본 VE 계정 jjmve01 소속 BP100488은 ADMIN UI에서 수기 MID를 저장한 뒤 jjmve01 인증 context로 GET /api/v1/store/departments/{departmentId}를 호출해 payload.paymentMethods의 MANUAL MID ID와 available 값이 저장값과 일치하는지 확인한다.
저장은 실제 UI로만 수행하고, 검증 종료 후 제품이 제공하는 공식 MID 선택 DELETE API로 선택값을 제거한 뒤 관리자 API/UI에서 null·미선택을 확인한다. 스토어 API는 선택값이 null이어도 활성 영업라인을 기본 결제수단으로 반환할 수 있으므로 원복 후 값은 증거로 기록한다.
serial; retain-on-failure trace; JSON/text/screenshot evidence.

## Execution Summary

- Passed: 3
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 99950ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| [ADMIN] 수기/ISP MID만 타입별 한 개 선택·저장 | ADMIN - 수기/ISP MID만 타입별 한 개 선택·저장 | [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA | ADMIN - 수기/ISP MID만 타입별 한 개 선택·저장 계정으로 [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-sales-line-payment-method-selection-ADMIN-selection-persisted.png)<br>[스크린샷 2](artifacts/screenshots/02-sales-line-payment-method-selection-ADMIN-selection-restored-null.png)<br>[실행 기록 1](artifacts/logs/01-sales-line-payment-method-selection-ADMIN.md) |
| [TA] 수기/ISP MID만 타입별 한 개 선택·저장 | TA - 수기/ISP MID만 타입별 한 개 선택·저장 | [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA | TA - 수기/ISP MID만 타입별 한 개 선택·저장 계정으로 [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-sales-line-payment-method-selection-TA-selection-persisted.png)<br>[스크린샷 2](artifacts/screenshots/04-sales-line-payment-method-selection-TA-selection-restored-null.png)<br>[실행 기록 1](artifacts/logs/02-sales-line-payment-method-selection-TA.md) |
| [VE] 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 | VE - 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 | [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA | VE - 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 계정으로 [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/05-sales-line-payment-method-selection-VE-store-payment-method-persisted.png)<br>[스크린샷 2](artifacts/screenshots/06-sales-line-payment-method-selection-VE-store-payment-method-restored-null.png)<br>[실행 기록 1](artifacts/logs/03-sales-line-payment-method-selection-VE.md) |

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

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

## 수동 재현 필요

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

## 스크린샷

- ADMIN - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [ADMIN] 수기/ISP MID만 타입별 한 개 선택·저장: [스크린샷 1](artifacts/screenshots/01-sales-line-payment-method-selection-ADMIN-selection-persisted.png)
- ADMIN - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [ADMIN] 수기/ISP MID만 타입별 한 개 선택·저장: [스크린샷 2](artifacts/screenshots/02-sales-line-payment-method-selection-ADMIN-selection-restored-null.png)
- TA - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [TA] 수기/ISP MID만 타입별 한 개 선택·저장: [스크린샷 1](artifacts/screenshots/03-sales-line-payment-method-selection-TA-selection-persisted.png)
- TA - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [TA] 수기/ISP MID만 타입별 한 개 선택·저장: [스크린샷 2](artifacts/screenshots/04-sales-line-payment-method-selection-TA-selection-restored-null.png)
- VE - 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [VE] 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영: [스크린샷 1](artifacts/screenshots/05-sales-line-payment-method-selection-VE-store-payment-method-persisted.png)
- VE - 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [VE] 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영: [스크린샷 2](artifacts/screenshots/06-sales-line-payment-method-selection-VE-store-payment-method-restored-null.png)

## 화면 재현 기록

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

## 실행 기록

- ADMIN - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [ADMIN] 수기/ISP MID만 타입별 한 개 선택·저장: [실행 기록 1](artifacts/logs/01-sales-line-payment-method-selection-ADMIN.md)
- TA - 수기/ISP MID만 타입별 한 개 선택·저장 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [TA] 수기/ISP MID만 타입별 한 개 선택·저장: [실행 기록 1](artifacts/logs/02-sales-line-payment-method-selection-TA.md)
- VE - 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [VE] 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영: [실행 기록 1](artifacts/logs/03-sales-line-payment-method-selection-VE.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4041/dev/sales-line-payment-method-selection.spec.ts / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [ADMIN] 수기/ISP MID만 타입별 한 개 선택·저장 | PASS | 39281ms | [스크린샷 1](artifacts/screenshots/01-sales-line-payment-method-selection-ADMIN-selection-persisted.png)<br>[스크린샷 2](artifacts/screenshots/02-sales-line-payment-method-selection-ADMIN-selection-restored-null.png) |  | [로그 1](artifacts/logs/01-sales-line-payment-method-selection-ADMIN.md) |  |
| 4041/dev/sales-line-payment-method-selection.spec.ts / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [TA] 수기/ISP MID만 타입별 한 개 선택·저장 | PASS | 24988ms | [스크린샷 1](artifacts/screenshots/03-sales-line-payment-method-selection-TA-selection-persisted.png)<br>[스크린샷 2](artifacts/screenshots/04-sales-line-payment-method-selection-TA-selection-restored-null.png) |  | [로그 1](artifacts/logs/02-sales-line-payment-method-selection-TA.md) |  |
| 4041/dev/sales-line-payment-method-selection.spec.ts / [4041][dev] 가맹점 영업라인 결제 MID 선택 및 스토어 반영 QA / [VE] 기본 jjmve01 부서 API paymentMethods에 UI 저장 MID 반영 | PASS | 35078ms | [스크린샷 1](artifacts/screenshots/05-sales-line-payment-method-selection-VE-store-payment-method-persisted.png)<br>[스크린샷 2](artifacts/screenshots/06-sales-line-payment-method-selection-VE-store-payment-method-restored-null.png) |  | [로그 1](artifacts/logs/03-sales-line-payment-method-selection-VE.md) |  |

## Notes

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