92 lines
3 KiB
Markdown
92 lines
3 KiB
Markdown
---
|
|
test_env: dev
|
|
test_profile: rag-data-plane-smoke
|
|
domain: rag-data-plane
|
|
verification_type: smoke
|
|
last_rule_updated_at: 2026-07-18
|
|
---
|
|
|
|
# rag-data-plane-smoke dev 테스트
|
|
|
|
## 읽기 조건
|
|
|
|
- retrieve·answer handler, release resolver, engine port, OpenAPI 또는 rag-api를
|
|
원격 환경에서 검증할 때
|
|
|
|
## 적용 범위
|
|
|
|
- `apps/rag-api/`, `packages/go/rag/`, `api/openapi/`
|
|
|
|
## 분류
|
|
|
|
- domain: rag-data-plane
|
|
- verification_type: smoke
|
|
- scope: 원격 runner의 retrieve·answer 계약과 rag-api readiness 검증
|
|
|
|
## 환경
|
|
|
|
- host: `ssh toki@toki-labs.com`
|
|
- repo root: `/Users/toki/agent-work/rara-dev`
|
|
- port: RAG API `127.0.0.1:18071`, PostgreSQL host publish 후보 `127.0.0.1:15470`
|
|
- runtime: Go 1.26
|
|
- package manager: Go modules
|
|
- docker: login shell의 Docker Desktop/Engine 27.4.0, 실행 전 daemon 재확인
|
|
- external service: readiness·실제 retrieve/answer에는 PostgreSQL과 승인된 integration 필요
|
|
- model endpoint: 기본값 없음
|
|
- credential: integration/database credential 원문은 문서와 출력에 남기지 않는다.
|
|
|
|
## 명령
|
|
|
|
- setup: `make setup`
|
|
- lint: 변경한 Go 파일의 `gofmt` 상태와 diff 확인
|
|
- unit: `go test ./packages/go/rag/...`
|
|
- smoke: `go build -o /tmp/rara-rag-api ./apps/rag-api/cmd/rag-api`
|
|
- service: PostgreSQL 준비 후 `RARA_LISTEN=127.0.0.1:18071`과 주입된
|
|
`RARA_DATABASE_URL`로 binary를 실행하고 `/healthz`, `/readyz` 확인
|
|
- e2e: integration이 명시적으로 준비된 경우에만 `/v1/retrieve`, `/v1/answer`
|
|
JSON·SSE 계약 확인
|
|
- model: 승인된 generation provider가 있을 때만 수행
|
|
- full-cycle: `make test && make build`
|
|
|
|
## 필수 검증
|
|
|
|
- 원격 checkout의 HEAD가 검증 대상 source와 일치한다.
|
|
- RAG handler와 resolver 테스트가 통과하고 rag-api binary가 빌드된다.
|
|
- 공개 요청·응답 변경 시 OpenAPI와 JSON/SSE 오류 의미가 일치한다.
|
|
- PostgreSQL이 준비된 경우 `18071`에서 health와 readiness를 확인한다.
|
|
|
|
## 보조 검증
|
|
|
|
- `lsof -nP -iTCP:18071 -sTCP:LISTEN`으로 시작 전 충돌과 종료 후 반환을 확인한다.
|
|
- 준비된 non-production integration이 있을 때 retrieve와 answer 실제 응답을 확인한다.
|
|
|
|
## 판정 기준
|
|
|
|
- source identity가 일치하고 테스트·빌드가 exit code 0으로 종료한다.
|
|
- service smoke를 수행한 경우 health와 readiness가 성공한다.
|
|
- 실제 integration이 없으면 handler 단위 테스트와 unavailable 동작까지만 통과로 보고한다.
|
|
|
|
## 기준 출력 예시
|
|
|
|
```text
|
|
ok git.toki-labs.com/toki/rara/packages/go/rag
|
|
```
|
|
|
|
## 차단 기준
|
|
|
|
- 원격 checkout 부재·source 불일치, Go 1.26 부재, `18071` 점유
|
|
- readiness에 필요한 PostgreSQL 또는 실제 통합 smoke에 필요한 integration 부재
|
|
|
|
## 보고 항목
|
|
|
|
- 원격 branch/HEAD:
|
|
- 실행한 명령:
|
|
- 성공한 검증:
|
|
- 실패/차단된 검증:
|
|
- 생략 사유:
|
|
- 남은 위험:
|
|
|
|
## 금지 사항
|
|
|
|
- local test 결과나 unavailable engine을 실제 원격 retrieve·answer 성공으로 보고하지 않는다.
|
|
- secret, token, 개인 endpoint 원문을 기록하지 않는다.
|