chore: 통합 테스트 환경과 보고서 리모트 구성
This commit is contained in:
50
doc/qa/staging_transaction_flow.md
Normal file
50
doc/qa/staging_transaction_flow.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 스테이징 재고 플로우 검증 시나리오
|
||||
|
||||
## 전제 조건
|
||||
- 스테이징 API 서버가 기동되어 있고, 테스트용 토큰이 발급되어 있어야 합니다.
|
||||
- 아래 환경 변수에 대응하는 실 ID가 존재해야 합니다.
|
||||
- `STAGING_API_BASE_URL`
|
||||
- `STAGING_API_TOKEN`
|
||||
- `STAGING_TRANSACTION_TYPE_ID`
|
||||
- `STAGING_TRANSACTION_STATUS_ID`
|
||||
- `STAGING_WAREHOUSE_ID`
|
||||
- `STAGING_EMPLOYEE_ID`
|
||||
- `STAGING_PRODUCT_ID`
|
||||
- `STAGING_CUSTOMER_ID`
|
||||
- 임시 데이터 생성/삭제가 허용된 스테이징 계정을 사용하세요.
|
||||
|
||||
## 테스트 데이터 구성
|
||||
- 스테이징 콘솔 또는 API를 사용해 전용 QA 데이터를 사전에 확보합니다.
|
||||
1. `/api/v1/warehouses`, `/api/v1/employees`, `/api/v1/products`, `/api/v1/customers` 목록을 조회해 테스트에 사용할 고정 ID를 선택하거나 새 레코드를 생성합니다.
|
||||
2. `/api/v1/transaction-types`와 `/api/v1/transaction-statuses`에서 submit/approve/complete 플로우를 지원하는 타입·상태 조합을 확인합니다.
|
||||
3. `/api/v1/stock-transactions`에 임시 트랜잭션을 생성해 라인/고객/승인 데이터가 정상 저장되는지 점검한 뒤, 성공한 요청 본문을 재사용 가능한 fixture로 저장합니다.
|
||||
4. 테스트 종료 후 `/api/v1/stock-transactions/{id}` DELETE 요청으로 데이터를 정리해 다른 시나리오에 영향을 주지 않도록 합니다.
|
||||
- 각 ID는 `.env.staging` 또는 CI 시크릿에 명시해 실행 시점에 자동으로 주입합니다.
|
||||
|
||||
## 자동화 테스트 실행 방법
|
||||
1. 루트에서 다음 명령으로 환경 변수를 전달합니다.
|
||||
```bash
|
||||
flutter test integration_test/stock_transaction_state_flow_test.dart \
|
||||
--dart-define=STAGING_RUN_TRANSACTION_FLOW=true \
|
||||
--dart-define=STAGING_API_BASE_URL=https://staging.superport.example \
|
||||
--dart-define=STAGING_API_TOKEN=<token> \
|
||||
--dart-define=STAGING_TRANSACTION_TYPE_ID=1 \
|
||||
--dart-define=STAGING_TRANSACTION_STATUS_ID=1 \
|
||||
--dart-define=STAGING_WAREHOUSE_ID=3 \
|
||||
--dart-define=STAGING_EMPLOYEE_ID=5 \
|
||||
--dart-define=STAGING_PRODUCT_ID=11 \
|
||||
--dart-define=STAGING_CUSTOMER_ID=7
|
||||
```
|
||||
2. 테스트는 다음 흐름을 검증합니다.
|
||||
- 재고 트랜잭션 생성 → 상신(submit) → 취소(cancel) → 삭제(delete)
|
||||
- 실패 시 HTTP 응답을 출력하므로, 로그를 토대로 API 상태를 점검합니다.
|
||||
|
||||
## 수동 검증 체크리스트
|
||||
1. **생성**: 입고/출고/대여 중 하나를 생성하고, 작성자·창고·라인·고객 정보가 정확히 저장되는지 확인합니다.
|
||||
2. **상태 전이**: 작성중 → 상신 → 승인/완료 → 취소 순으로 버튼이 활성화되는지와 API 응답 코드를 확인합니다.
|
||||
3. **보고서 다운로드**: 동일한 조건으로 보고서를 다운로드하여 URL/파일이 정상 동작하는지 브라우저에서 재확인합니다.
|
||||
4. **정리**: 테스트용 데이터는 취소 후 삭제하여 스테이징 목록을 정리합니다.
|
||||
|
||||
## 장애 대응 메모
|
||||
- 4xx 발생 시 API 로그와 `feature_flag` 값을 우선 확인합니다.
|
||||
- 5xx 또는 타임아웃은 백엔드 담당자에게 API 경로와 요청 페이로드를 공유합니다.
|
||||
Reference in New Issue
Block a user