4.3 KiB
4.3 KiB
| test_env | test_profile | domain | verification_type | last_rule_updated_at |
|---|---|---|---|---|
| dev | client-smoke | client | smoke | 2026-06-12 |
client-smoke dev 테스트
읽기 조건
apps/client/**또는packages/flutter/iop_console/**변경의 dev 테스트, 검증, 실행 조건 판단이 필요한 경우
적용 범위
- IOP Flutter client app shell
- IOP-owned embeddable console package
- Client-Control Plane proto-socket hello baseline
- Flutter widget/unit tests
- dev web preview와 compose web build URL 주입
분류
- domain: client
- verification_type: smoke
- scope: Flutter client와 IOP console package 변경
환경
- host: Flutter client 또는
packages/flutter/iop_console가 포함된 runtime evidence는 원격 runnerssh toki@toki-labs.com의/Users/toki/agent-work/iop-dev기준으로 수행한다. - port: web/dev preview
13001, Control Plane HTTP18001, Portal/Control Plane wire test endpoint19001, Edge-Node TCP transport19003. - runtime: Flutter/Dart
- package manager: Flutter pub
- docker: compose 검증은
docker compose --env-file .env.dev.example ...기준이다. - external service: sibling path dependencies
../agent-shell,../nexo/packages/messaging_flutter,../proto-socket/dart - model endpoint:
- credential: token/secret 원문은 문서에 기록하지 않는다.
명령은 원격 runner 사용 시 /Users/toki/agent-work/iop-dev 기준으로 실행한다. 현재 작업 컨테이너의 변경분이 원격 checkout에 동기화되지 않았으면 원격 검증 완료로 보지 않는다.
명령
- setup:
cd apps/client && flutter pub get - package-setup:
cd packages/flutter/iop_console && flutter pub get - unit:
cd apps/client && flutter test - package-unit:
cd packages/flutter/iop_console && flutter test - lint:
cd apps/client && flutter analyze --no-fatal-infos - smoke:
cd apps/client && flutter test - e2e:
IOP_WEB_PORT=13001 IOP_CONTROL_PLANE_HTTP_URL=http://toki-labs.com:18001 IOP_CONTROL_PLANE_WIRE_URL=ws://toki-labs.com:19001/client ./scripts/dev/web.sh - compose-e2e:
IOP_EDGE_NODE_TOKEN=<token> docker compose --env-file .env.dev.example up --build - web-build:
make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://toki-labs.com:18001 IOP_CONTROL_PLANE_WIRE_URL=ws://toki-labs.com:19001/client - model:
- full-cycle:
필수 검증
- client 또는
packages/flutter/iop_console변경은 최소cd apps/client && flutter test로 확인한다. packages/flutter/iop_console자체 API나 widget 구조가 바뀌면cd packages/flutter/iop_console && flutter test실행 가능 여부를 확인한다.- analyzer 영향이 있는 dependency, app shell, generated import 변경이면
cd apps/client && flutter analyze --no-fatal-infos를 함께 확인한다. - Web build/deploy,
apps/client/Dockerfile,docker-compose.yml,scripts/dev/web.sh,Makefile client-build-web변경은 원격 runner에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이http://toki-labs.com:13001계열인지 보고한다. - compose 경로를 확인할 때는
IOP_EDGE_NODE_TOKEN을 원격 runner 환경에서 주입하고, token 원문은 tracked 파일에 기록하지 않는다.
보조 검증
cd apps/client && flutter pub getcd packages/flutter/iop_console && flutter pub get
판정 기준
- Flutter test가 실패 없이 종료한다.
- Analyzer는 기존 non-fatal info를 기능 실패로 확대하지 않는다.
- path dependency가 없어 실행하지 못하면 누락된 sibling workspace를 차단 사유로 보고한다.
- dev web preview가 필요한 경우 browser-facing URL과 compiled Control Plane HTTP/WS URL이 모두 dev 포트(
13001,18001,19001)를 사용한다.
기준 출력 예시
All tests passed!
차단 기준
- 원격 runner 접근, Flutter SDK, Docker compose, 또는 필요한 dev 포트 개방이 없어 client runtime 검증을 실행할 수 없다.
- 필요한 sibling path dependency가 없어
flutter pub get또는 test가 진행되지 않는다.
보고 항목
- 실행한 명령:
- 성공한 검증:
- 실패/차단된 검증:
- 생략 사유:
- 남은 위험:
금지 사항
- secret, token, 개인 endpoint 원문은 tracked 파일에 기록하지 않는다.
- IOP client에 NomadCode product shell UX를 직접 복제하지 않는다.