diff --git a/conductor/tracks.md b/conductor/tracks.md index 702f67e68..3bc58d6fd 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -5,4 +5,10 @@ This file tracks all major tracks for the project. Each track has its own detail --- - [x] **Track: MQTT transport** -*Link: [./tracks/mqtt_transport_20260318/](./tracks/mqtt_transport_20260318/)* \ No newline at end of file +*Link: [./tracks/mqtt_transport_20260318/](./tracks/mqtt_transport_20260318/)* + +- [ ] **Track: Migrate tests to KMP best practices and expand coverage** +*Link: [./tracks/kmp_test_migration_20260318/](./tracks/kmp_test_migration_20260318/)* + +- [ ] **Track: Expand Testing Coverage** +*Link: [./tracks/expand_testing_20260318/](./tracks/expand_testing_20260318/)* \ No newline at end of file diff --git a/conductor/tracks/expand_testing_20260318/index.md b/conductor/tracks/expand_testing_20260318/index.md new file mode 100644 index 000000000..f0d281e23 --- /dev/null +++ b/conductor/tracks/expand_testing_20260318/index.md @@ -0,0 +1,5 @@ +# Track expand_testing_20260318 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/expand_testing_20260318/metadata.json b/conductor/tracks/expand_testing_20260318/metadata.json new file mode 100644 index 000000000..462e52236 --- /dev/null +++ b/conductor/tracks/expand_testing_20260318/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "expand_testing_20260318", + "type": "chore", + "status": "new", + "created_at": "2026-03-18T10:00:00Z", + "updated_at": "2026-03-18T10:00:00Z", + "description": "Expand Testing Coverage" +} \ No newline at end of file diff --git a/conductor/tracks/expand_testing_20260318/plan.md b/conductor/tracks/expand_testing_20260318/plan.md new file mode 100644 index 000000000..96a2fb483 --- /dev/null +++ b/conductor/tracks/expand_testing_20260318/plan.md @@ -0,0 +1,32 @@ +# Implementation Plan: Expand Testing Coverage + +## Phase 1: Baseline Measurement +- [ ] Task: Execute `./gradlew koverLog` and record current project test coverage. +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Baseline Measurement' (Protocol in workflow.md) + +## Phase 2: Feature ViewModel Migration to Turbine +- [ ] Task: Refactor `MetricsViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. +- [ ] Task: Refactor `MessageViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. +- [ ] Task: Refactor `RadioConfigViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. +- [ ] Task: Refactor `NodeListViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. +- [ ] Task: Refactor remaining `feature` ViewModels to use `Turbine` and `Mokkery`. +- [ ] Task: Conductor - User Manual Verification 'Phase 2: Feature ViewModel Migration to Turbine' (Protocol in workflow.md) + +## Phase 3: Property-Based Parsing Tests (Kotest) +- [ ] Task: Add `Kotest` property-based tests for `StreamFrameCodec` in `core:network`. +- [ ] Task: Add `Kotest` property-based tests for `PacketHandler` implementations in `core:data`. +- [ ] Task: Add `Kotest` property-based tests for `TcpTransport` and/or `SerialTransport` in `core:network`. +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Property-Based Parsing Tests (Kotest)' (Protocol in workflow.md) + +## Phase 4: Domain Logic Gap Fill +- [ ] Task: Identify and fill testing gaps in `core:domain` use cases not fully covered during the initial Mokkery migration. +- [ ] Task: Conductor - User Manual Verification 'Phase 4: Domain Logic Gap Fill' (Protocol in workflow.md) + +## Phase 5: Final Measurement & Verification +- [ ] Task: Execute full test suite (`./gradlew test`) to ensure stability. +- [ ] Task: Execute `./gradlew koverLog` to generate and document the final coverage metrics. +- [ ] Task: Conductor - User Manual Verification 'Phase 5: Final Measurement & Verification' (Protocol in workflow.md) + +## Phase 6: Documentation and Wrap-up +- [ ] Task: Review previous steps and update project documentation (e.g., `README.md`, testing guides). +- [ ] Task: Conductor - User Manual Verification 'Phase 6: Documentation and Wrap-up' (Protocol in workflow.md) \ No newline at end of file diff --git a/conductor/tracks/expand_testing_20260318/spec.md b/conductor/tracks/expand_testing_20260318/spec.md new file mode 100644 index 000000000..2747e5918 --- /dev/null +++ b/conductor/tracks/expand_testing_20260318/spec.md @@ -0,0 +1,4 @@ +# Specification: Expand Testing Coverage + +## Overview +This track focuses on expanding the test suite across all core modules, specifically targeting `feature` ViewModels and `core:network` data parsing logic. The goal is to fully leverage the newly integrated `Turbine` and `Kotest` frameworks to ensure robust property-based testing and asynchronous flow verification. \ No newline at end of file diff --git a/conductor/tracks/kmp_test_migration_20260318/index.md b/conductor/tracks/kmp_test_migration_20260318/index.md new file mode 100644 index 000000000..d448caca6 --- /dev/null +++ b/conductor/tracks/kmp_test_migration_20260318/index.md @@ -0,0 +1,5 @@ +# Track kmp_test_migration_20260318 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/kmp_test_migration_20260318/metadata.json b/conductor/tracks/kmp_test_migration_20260318/metadata.json new file mode 100644 index 000000000..4dd477a02 --- /dev/null +++ b/conductor/tracks/kmp_test_migration_20260318/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "kmp_test_migration_20260318", + "type": "chore", + "status": "new", + "created_at": "2026-03-18T10:00:00Z", + "updated_at": "2026-03-18T10:00:00Z", + "description": "Migrate tests to KMP best practices and expand coverage" +} \ No newline at end of file diff --git a/conductor/tracks/kmp_test_migration_20260318/plan.md b/conductor/tracks/kmp_test_migration_20260318/plan.md new file mode 100644 index 000000000..6eda77058 --- /dev/null +++ b/conductor/tracks/kmp_test_migration_20260318/plan.md @@ -0,0 +1,15 @@ +# Implementation Plan: KMP Test Migration and Coverage Expansion + +## Phase 1: Tool Evaluation & Integration +- [ ] Task: Evaluate Mocking Frameworks +- [ ] Task: Integrate Selected Tools (Mokkery, Turbine, Kotest) +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Tool Evaluation & Integration' (Protocol in workflow.md) + +## Phase 2: Mockk Replacement +- [ ] Task: Refactor core modules to Mokkery +- [ ] Task: Refactor feature modules to Mokkery +- [ ] Task: Conductor - User Manual Verification 'Phase 2: Mockk Replacement' (Protocol in workflow.md) + +## Phase 3: Coverage Expansion +- [ ] Task: Expand ViewModels coverage with Turbine +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Coverage Expansion' (Protocol in workflow.md) \ No newline at end of file diff --git a/conductor/tracks/kmp_test_migration_20260318/spec.md b/conductor/tracks/kmp_test_migration_20260318/spec.md new file mode 100644 index 000000000..6141d7ae6 --- /dev/null +++ b/conductor/tracks/kmp_test_migration_20260318/spec.md @@ -0,0 +1,4 @@ +# Specification: KMP Test Migration and Coverage Expansion + +## Overview +Migrate the project's test suite to KMP best practices based on JetBrains guidance, expanding coverage and replacing JVM-specific `mockk` with `dev.mokkery` in `commonMain` to ensure iOS readiness. \ No newline at end of file