oto/agent-test/local/framework-smoke.md

98 lines
3.5 KiB
Markdown

---
test_env: local
test_profile: framework-smoke
domain: framework
verification_type: smoke
last_rule_updated_at: 2026-06-12
---
# framework-smoke local 테스트
## 읽기 조건
- `apps/runner/pubspec.yaml`, `apps/client/pubspec.yaml`, `packages/flutter/oto_console/pubspec.yaml`, `services/core/go.mod`, `apps/runner/analysis_options.yaml`, `apps/client/analysis_options.yaml`, `packages/flutter/oto_console/analysis_options.yaml`, 또는 `proto/**` 변경 검증이 필요한 경우
## 적용 범위
- Dart package manifest, analyzer configuration (analyzer options), dependency resolution, and protobuf contract generation
## 분류
- domain: framework
- verification_type: smoke
- scope: project framework/dependency setup
## 환경
- host: `ssh toki@toki-labs.com` 원격 runner, checkout `/Users/toki/agent-work/oto`
- port: Flutter client/web preview `13020`, OTO Core HTTP `18020`; package-only tests는 public port를 사용하지 않는다.
- runtime: Dart SDK, Flutter SDK, Go toolchain
- package manager: dart pub, flutter pub, Go modules
- docker: 기본 smoke는 Docker를 사용하지 않는다.
- external service: 없음
- model endpoint:
- credential: dependency source credential이나 private token 원문은 tracked 파일에 기록하지 않는다.
## 명령
- setup:
- runner: `cd apps/runner && dart pub get` (또는 `make runner-get`)
- client: `cd apps/client && flutter pub get` (또는 `make client-get`)
- console: `cd packages/flutter/oto_console && flutter pub get`
- core: `cd services/core && go mod download`
- lint:
- runner: `cd apps/runner && dart analyze` (또는 `make runner-analyze`)
- client: `cd apps/client && flutter analyze` (또는 `make client-analyze`)
- console: `cd packages/flutter/oto_console && flutter analyze`
- unit:
- runner: `cd apps/runner && dart test` (또는 `make runner-test`)
- client: `cd apps/client && flutter test` (또는 `make client-test`)
- console: `cd packages/flutter/oto_console && flutter test`
- core: `cd services/core && go test ./...` (또는 `make core-test`)
- proto-gen:
- all: `make proto`
- go: `make proto-go`
- dart: `make proto-dart`
- smoke:
- e2e:
- model:
- full-cycle:
## 필수 검증
- framework 도메인 변경 후 패키지별 setup/analyze를 실행하고 결과를 확인한다.
- 각 패키지 도메인 변경 후 관련 `make runner-test`, `make client-test`, `cd packages/flutter/oto_console && flutter test` 또는 `make core-test` 명령을 실행한다.
- `proto/**` 변경 시 `make proto` (또는 `make proto-go`, `make proto-dart`)를 실행하고 생성된 파일(Go/Dart protobuf)이 올바르게 갱신되는지 확인한다.
## 보조 검증
- JSON 생성 경계 변경 시 `cd apps/runner && dart run build_runner build`를 실행하거나 생성물 갱신 필요를 보고한다.
## 판정 기준
- 각 패키지의 dependency resolution이 성공하고 analyzer issue가 없다.
- 실행한 테스트가 모두 통과한다.
- protobuf generation을 수행한 경우 생성 타겟(`make proto`, `make proto-go`, `make proto-dart`)이 오류 없이 정상 종료하며 파일 생성이 완료된다.
## 기준 출력 예시
```text
No issues found!
All tests passed!
```
## 차단 기준
- 원격 runner에 Dart SDK, Flutter SDK, Go toolchain 또는 path dependency가 없어 command를 시작할 수 없는 경우
## 보고 항목
- 실행한 명령:
- 성공한 검증:
- 실패/차단된 검증:
- 생략 사유:
- 남은 위험:
## 금지 사항
- dependency source의 credential이나 private token을 기록하지 않는다.