# QA Report - Redmine #3341 (dev)

- Generated: 2026-05-22T14:03:07+09:00
- Redmine: https://itsm.bix.bz/issues/3341
- Subject: [QA] 링크결제 거래 구분 표시 검증
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN
- Route Candidates: not recorded

## Scope

dev ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 신규 링크결제와 기존 스토어-수기결제 구분 표시 및 필터 동작, 링크결제 취소 가능 여부를 확인

## Checklist

1. 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인
2. 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인
3. 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인
4. 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인
5. 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인
6. 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인
7. 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인
8. 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인

## Setup Steps

1. [required] 링크결제 URL 및 결제 정보 로컬 설정 (admin/ADMIN / kind: manual-precondition) - 요청자가 전달한 링크결제 URL, 결제 연락처, 카드 정보는 QA_3341_* 환경변수로 .env.local에만 설정한다. 기본 실행은 QA_3341_REUSE_APPROVAL_NO로 이미 생성된 결제 건을 재사용하며, 새 결제 생성은 QA_3341_CREATE_FROM_LINK=1을 별도 지정한 경우에만 허용한다. 결제 URL/휴대폰/카드 정보는 report와 git 산출물에 원문으로 남기지 않는다.
2. [required] 검증 후 링크결제 PG 취소 (admin/ADMIN / kind: state-verify / mutation: temporary / guard: QA_3341_ALLOW_PAYMENT_MUTATION / restore: required) - 재사용한 링크결제 1,004원 거래는 표시/필터 확인 후 운영자 거래내역에서 PG 취소 상태까지 확인한다. 중간 실패 시에도 afterAll 보정 단계에서 취소를 재시도한다.

## Source Text

김경주님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3341\n- 링크결제 완료 건이 기존 수기결제로 구분되어, 거래내역, 수기결제내역, 거래로그에서 링크결제 타입을 확인할 수 있도록 추가했습니다.\n- 기존에 이미 생성된 링크결제 거래는 별도 이관하지 않습니다.\n[2] 사전 준비사항\n- 개발계에서 로그인 가능한 어드민 계정 준비\n- 검증용 링크결제 데이터와 수기결제 데이터가 준비되어 있는지 확인\n- 조회 기간은 테스트 결제가 생성된 날짜를 포함하도록 설정\n[3] 검증 대상\n- 거래내역 화면\n- 수기결제내역 화면\n- 거래로그 화면\n[4] 권한별 테스트\n- admin\n[5] 검증 기준\n- 신규로 완료된 링크결제는 화면에서 링크결제로 구분되어야 함\n- 링크결제 필터 선택 시 신규 링크결제 건만 조회되어야 함\n- 스토어-수기결제 필터 선택 시 기존 수기결제 건은 계속 조회되어야 함\n- 기존에 이미 생성된 링크결제 건은 기존 구분값으로 보임\n[6] 체크리스트\n- 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인\n- 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인\n- 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인\n- 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인\n- 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인\n- 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인\n- 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인\n- 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인\n\n링크결제는 요청자가 전달한 휴대폰 번호로 발송 후 전달받은 결제 URL을 .env.local에만 저장해 진행한다.

## Execution Summary

- Passed: 8
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 124901ms

## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-거래내역-ADMIN-new-link-payment-visible.png)<br>[실행 기록 1](artifacts/logs/01-거래내역-ADMIN-new-link-payment-visible.md) |
| 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-거래내역-ADMIN-link-filter.png)<br>[실행 기록 1](artifacts/logs/02-거래내역-ADMIN-link-filter.md) |
| 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-거래내역-ADMIN-manual-filter.png)<br>[실행 기록 1](artifacts/logs/03-거래내역-ADMIN-manual-filter.md) |
| 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/04-수기결제내역-ADMIN-new-link-payment-visible.png)<br>[실행 기록 1](artifacts/logs/04-수기결제내역-ADMIN-new-link-payment-visible.md) |
| 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/05-수기결제내역-ADMIN-existing-manual.png)<br>[실행 기록 1](artifacts/logs/05-수기결제내역-ADMIN-existing-manual.md) |
| 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-거래로그-ADMIN-new-link-payment-visible.png)<br>[실행 기록 1](artifacts/logs/06-거래로그-ADMIN-new-link-payment-visible.md) |
| 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/07-거래내역-ADMIN-combined-filter.png)<br>[실행 기록 1](artifacts/logs/07-거래내역-ADMIN-combined-filter.md) |
| 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인 | ADMIN | [ADMIN] role | ADMIN 계정으로 거래내역, 수기결제내역, 거래로그에서 링크결제와 스토어-수기결제 표시 및 필터 결과를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/08-거래내역-ADMIN-pg-cancel.png)<br>[실행 기록 1](artifacts/logs/08-거래내역-ADMIN-pg-cancel.md) |

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

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

## 수동 재현 필요

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

## 스크린샷

- ADMIN / [ADMIN] role / 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인: [스크린샷 1](artifacts/screenshots/01-거래내역-ADMIN-new-link-payment-visible.png)
- ADMIN / [ADMIN] role / 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인: [스크린샷 1](artifacts/screenshots/02-거래내역-ADMIN-link-filter.png)
- ADMIN / [ADMIN] role / 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인: [스크린샷 1](artifacts/screenshots/03-거래내역-ADMIN-manual-filter.png)
- ADMIN / [ADMIN] role / 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인: [스크린샷 1](artifacts/screenshots/04-수기결제내역-ADMIN-new-link-payment-visible.png)
- ADMIN / [ADMIN] role / 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인: [스크린샷 1](artifacts/screenshots/05-수기결제내역-ADMIN-existing-manual.png)
- ADMIN / [ADMIN] role / 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인: [스크린샷 1](artifacts/screenshots/06-거래로그-ADMIN-new-link-payment-visible.png)
- ADMIN / [ADMIN] role / 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인: [스크린샷 1](artifacts/screenshots/07-거래내역-ADMIN-combined-filter.png)
- ADMIN / [ADMIN] role / 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인: [스크린샷 1](artifacts/screenshots/08-거래내역-ADMIN-pg-cancel.png)

## 화면 재현 기록

- 화면 재현 기록 자료가 없습니다.
- 화면 재현 기록은 민감 정보가 포함될 수 있어 기본 공개 산출물에는 포함하지 않습니다. 필요 시 `QA_PUBLISH_TRACE=1 npm run qa:report -- --issue <id> --env <env>`로 내부 제출용 산출물을 생성합니다.

## 실행 기록

- ADMIN / [ADMIN] role / 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인: [실행 기록 1](artifacts/logs/01-거래내역-ADMIN-new-link-payment-visible.md)
- ADMIN / [ADMIN] role / 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인: [실행 기록 1](artifacts/logs/02-거래내역-ADMIN-link-filter.md)
- ADMIN / [ADMIN] role / 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인: [실행 기록 1](artifacts/logs/03-거래내역-ADMIN-manual-filter.md)
- ADMIN / [ADMIN] role / 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인: [실행 기록 1](artifacts/logs/04-수기결제내역-ADMIN-new-link-payment-visible.md)
- ADMIN / [ADMIN] role / 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인: [실행 기록 1](artifacts/logs/05-수기결제내역-ADMIN-existing-manual.md)
- ADMIN / [ADMIN] role / 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인: [실행 기록 1](artifacts/logs/06-거래로그-ADMIN-new-link-payment-visible.md)
- ADMIN / [ADMIN] role / 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인: [실행 기록 1](artifacts/logs/07-거래내역-ADMIN-combined-filter.md)
- ADMIN / [ADMIN] role / 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인: [실행 기록 1](artifacts/logs/08-거래내역-ADMIN-pg-cancel.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래내역 화면에서 신규 링크결제 완료 건이 링크결제로 표시되는지 확인 | PASS | 16750ms | [스크린샷 1](artifacts/screenshots/01-거래내역-ADMIN-new-link-payment-visible.png) |  | [로그 1](artifacts/logs/01-거래내역-ADMIN-new-link-payment-visible.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래내역 화면에서 링크결제 필터 선택 시 신규 링크결제 건이 조회되는지 확인 | PASS | 18130ms | [스크린샷 1](artifacts/screenshots/02-거래내역-ADMIN-link-filter.png) |  | [로그 1](artifacts/logs/02-거래내역-ADMIN-link-filter.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래내역 화면에서 스토어-수기결제 필터 선택 시 기존 수기결제 건이 정상 조회되는지 확인 | PASS | 16261ms | [스크린샷 1](artifacts/screenshots/03-거래내역-ADMIN-manual-filter.png) |  | [로그 1](artifacts/logs/03-거래내역-ADMIN-manual-filter.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 수기결제내역 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인 | PASS | 16221ms | [스크린샷 1](artifacts/screenshots/04-수기결제내역-ADMIN-new-link-payment-visible.png) |  | [로그 1](artifacts/logs/04-수기결제내역-ADMIN-new-link-payment-visible.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 수기결제내역 화면에서 기존 스토어-수기결제 조회 동작이 기존과 동일한지 확인 | PASS | 16164ms | [스크린샷 1](artifacts/screenshots/05-수기결제내역-ADMIN-existing-manual.png) |  | [로그 1](artifacts/logs/05-수기결제내역-ADMIN-existing-manual.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래로그 화면에서 신규 링크결제 건이 링크결제로 구분되어 조회되는지 확인 | PASS | 16210ms | [스크린샷 1](artifacts/screenshots/06-거래로그-ADMIN-new-link-payment-visible.png) |  | [로그 1](artifacts/logs/06-거래로그-ADMIN-new-link-payment-visible.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래내역 화면에서 조회 기간, 가맹점, 결제 구분 필터를 함께 적용해도 링크결제 검색 결과가 유지되는지 확인 | PASS | 16216ms | [스크린샷 1](artifacts/screenshots/07-거래내역-ADMIN-combined-filter.png) |  | [로그 1](artifacts/logs/07-거래내역-ADMIN-combined-filter.md) |  |
| 3341/dev/link-payment-type.spec.ts / [3341][dev] [QA] 링크결제 거래 구분 표시 검증 / [ADMIN] role / 거래내역 화면에서 링크결제 완료 건 취소가 기존과 동일하게 가능한지 확인 | PASS | 8422ms | [스크린샷 1](artifacts/screenshots/08-거래내역-ADMIN-pg-cancel.png) |  | [로그 1](artifacts/logs/08-거래내역-ADMIN-pg-cancel.md) |  |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- 검토 후 `qa:redmine:update`로 report/evidence를 업로드하고 QA subissue 상태를 갱신합니다.
