From 05367aeb7dbf2a4439b1d8ee5c2b73f2b3f1eb5d Mon Sep 17 00:00:00 2001 From: toki Date: Mon, 25 May 2026 21:33:41 +0900 Subject: [PATCH] update validation-foundation milestone: self-contained-test-harness --- .../milestones/self-contained-test-harness.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/agent-ops/roadmap/phase/validation-foundation/milestones/self-contained-test-harness.md b/agent-ops/roadmap/phase/validation-foundation/milestones/self-contained-test-harness.md index 0a7578f..e3eacf6 100644 --- a/agent-ops/roadmap/phase/validation-foundation/milestones/self-contained-test-harness.md +++ b/agent-ops/roadmap/phase/validation-foundation/milestones/self-contained-test-harness.md @@ -31,32 +31,33 @@ 통합 검증에 필요한 최소 UI와 callback 관찰 지점을 제공한다. -- [ ] [observable-state] device token, notification event, opened event를 확인할 수 있는 최소 상태 표시를 제공한다 -- [ ] [callback-hooks] channel/thread navigation callback이 호출되는지 관찰할 수 있게 한다 -- [ ] [no-product-logic] 제품 인증, 실제 라우팅, 프로젝트별 UI를 포함하지 않는다 +- [x] [observable-state] device token, notification event, opened event를 확인할 수 있는 최소 상태 표시를 제공한다 +- [x] [callback-hooks] channel/thread navigation callback이 호출되는지 관찰할 수 있게 한다 +- [x] [no-product-logic] 제품 인증, 실제 라우팅, 프로젝트별 UI를 포함하지 않는다 ### Epic: [integration-tests] Integration Test 기반 디바이스 또는 emulator에서 플러그인 연결을 확인하는 테스트를 둔다. - [ ] [plugin-registration] example app에서 plugin registration이 정상 동작하는지 확인한다 -- [ ] [method-channel] Dart에서 native method channel 호출을 검증한다 -- [ ] [event-channel] native event를 Dart stream으로 전달하는 흐름을 검증한다 -- [ ] [opened-routing] notification opened payload가 channel/thread callback으로 연결되는지 검증한다 +- [x] [method-channel] Dart에서 native method channel 호출을 검증한다 +- [x] [event-channel] native event를 Dart stream으로 전달하는 흐름을 검증한다 +- [x] [opened-routing] notification opened payload가 channel/thread callback으로 연결되는지 검증한다 +- [ ] [device-run] 연결된 Android device 또는 emulator에서 `flutter test integration_test` 실행 결과를 기록한다 ### Epic: [test-controls] 재현 가능한 테스트 제어 외부 FCM 없이도 핵심 경로를 재현할 수 있는 테스트 방식을 마련한다. -- [ ] [fake-payload] test/debug 전용 push payload 주입 방식을 설계한다 -- [ ] [manual-boundary] 실제 FCM과 Mattermost server가 필요한 항목은 manual smoke로 분리한다 -- [ ] [docs] 하네스 실행 명령과 전제 조건을 문서화한다 +- [x] [fake-payload] test/debug 전용 push payload 주입 방식을 설계한다 +- [x] [manual-boundary] 실제 FCM과 Mattermost server가 필요한 항목은 manual smoke로 분리한다 +- [x] [docs] 하네스 실행 명령과 전제 조건을 문서화한다 ## 완료 기준 - [ ] `example/` 앱만으로 plugin registration과 기본 channel 계약을 확인할 수 있다 -- [ ] `example/integration_test`가 singleton 접근 이상의 통합 경로를 검증한다 -- [ ] 실제 FCM이 없어도 테스트 가능한 경로와 수동 smoke 경로가 분리되어 있다 +- [x] `example/integration_test`가 singleton 접근 이상의 통합 경로를 검증한다 +- [x] 실제 FCM이 없어도 테스트 가능한 경로와 수동 smoke 경로가 분리되어 있다 - [ ] 소비 프로젝트 없이 새 plugin 변경의 기본 위험을 확인할 수 있다 ## 완료 리뷰 @@ -81,4 +82,5 @@ - 표준선(선택): `example/`은 Flutter plugin 표준 host app으로 유지하고, 테스트용 기능은 제품 기능처럼 확장하지 않는다 - 선행 작업: 프로젝트 운영 계약 정리 - 후속 작업: 품질 게이트 자동화, Android 런타임 신뢰도 강화 -- 확인 필요: 없음 +- 확인 필요: 연결된 Android device 또는 emulator에서 `cd example && flutter test integration_test`를 실행해 plugin registration과 기본 channel 계약을 확인한다. +- 최근 검증: 2026-05-25 `flutter analyze`, `flutter test`, `cd example && flutter analyze`, `cd example && flutter test` 통과. `cd example && flutter test integration_test`는 지원되는 device/emulator가 없어 실행하지 못했다.