mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
feat: Enhance test coverage (#4847)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
parent
1b0dc75dfe
commit
06b9f8c77a
41 changed files with 1715 additions and 502 deletions
32
conductor/archive/expand_testing_20260318/plan.md
Normal file
32
conductor/archive/expand_testing_20260318/plan.md
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Implementation Plan: Expand Testing Coverage
|
||||
|
||||
## Phase 1: Baseline Measurement [checkpoint: 6d9ad46]
|
||||
- [x] Task: Execute `./gradlew koverLog` and record current project test coverage. 8bdd673a1
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 1: Baseline Measurement' (Protocol in workflow.md) 6d9ad468c
|
||||
|
||||
## Phase 2: Feature ViewModel Migration to Turbine [checkpoint: 61b9595]
|
||||
- [x] Task: Refactor `MetricsViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. 79e059286
|
||||
- [x] Task: Refactor `MessageViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. b45697b53
|
||||
- [x] Task: Refactor `RadioConfigViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. 33e10fc6c
|
||||
- [x] Task: Refactor `NodeListViewModelTest` to use `Turbine` and `Mokkery` in `commonTest`. 33e10fc6c
|
||||
- [x] Task: Refactor remaining `feature` ViewModels to use `Turbine` and `Mokkery`. 33e10fc6c
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 2: Feature ViewModel Migration to Turbine' (Protocol in workflow.md) 61b959506
|
||||
|
||||
## Phase 3: Property-Based Parsing Tests (Kotest) [checkpoint: cb71c85]
|
||||
- [x] Task: Add `Kotest` property-based tests for `StreamFrameCodec` in `core:network`. 2c8fd6a8f
|
||||
- [x] Task: Add `Kotest` property-based tests for `PacketHandler` implementations in `core:data`. 7d56c3fef
|
||||
- [x] Task: Add `Kotest` property-based tests for `TcpTransport` and/or `SerialTransport` in `core:network`. 2fd68d67e
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 3: Property-Based Parsing Tests (Kotest)' (Protocol in workflow.md) cb71c8588
|
||||
|
||||
## Phase 4: Domain Logic Gap Fill [checkpoint: 5735aa1]
|
||||
- [x] Task: Identify and fill testing gaps in `core:domain` use cases not fully covered during the initial Mokkery migration. 7b815130f
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 4: Domain Logic Gap Fill' (Protocol in workflow.md) 5735aa148
|
||||
|
||||
## Phase 5: Final Measurement & Verification [checkpoint: e321cf0]
|
||||
- [x] Task: Execute full test suite (`./gradlew test`) to ensure stability. 02fa96f37
|
||||
- [x] Task: Execute `./gradlew koverLog` to generate and document the final coverage metrics. e3fe4ba1e
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 5: Final Measurement & Verification' (Protocol in workflow.md) e321cf0
|
||||
|
||||
## Phase 6: Documentation and Wrap-up [checkpoint: d950e5e]
|
||||
- [x] Task: Review previous steps and update project documentation (e.g., `README.md`, testing guides). b2c9d3e
|
||||
- [x] Task: Conductor - User Manual Verification 'Phase 6: Documentation and Wrap-up' (Protocol in workflow.md) d950e5e
|
||||
|
|
@ -33,4 +33,4 @@
|
|||
- **Coroutines Testing:** Use `kotlinx-coroutines-test` for virtual time management in asynchronous flows.
|
||||
- **Mocking Strategy:** Avoid JVM-specific mocking libraries. Prefer `Mokkery` or `Mockative` for multiplatform-compatible mocking interfaces, alongside handwritten fakes in `core:testing`.
|
||||
- **Flow Assertions:** Use `Turbine` for testing multiplatform `Flow` emissions and state updates.
|
||||
- **Property-Based Testing:** Consider evaluating `Kotest` for multiplatform data-driven and property-based testing scenarios if standard `kotlin.test` becomes insufficient.
|
||||
- **Property-Based Testing:** Use `Kotest` for multiplatform data-driven and property-based testing scenarios.
|
||||
|
|
@ -2,7 +2,3 @@
|
|||
|
||||
This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder.
|
||||
|
||||
---
|
||||
- [ ] **Track: Expand Testing Coverage**
|
||||
*Link: [./tracks/expand_testing_20260318/](./tracks/expand_testing_20260318/)*
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
# 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue