diff --git a/TEST_INFRA.md b/TEST_INFRA.md deleted file mode 100644 index 6605622e..00000000 --- a/TEST_INFRA.md +++ /dev/null @@ -1,58 +0,0 @@ -# Test Infrastructure - hermes-mobile - -This document describes the test infrastructure, philosophy, architecture, and feature coverage for the **hermes-mobile** Jetpack Compose Android application. - -## Test Philosophy -The test suite utilizes **opaque-box JVM-based integration and E2E tests** that drive the ViewModels directly, bypassing the UI rendering layer, with mocked Retrofit responses using `Mockk` for service stubs. This allows testing the application logic, optimistic UI state changes, API integration pathways, and navigation flows synchronously and reliably without requiring an Android emulator or device. - -## Feature Inventory - -### Feature 1: Skills Management Screen -- **Listing**: Fetches and lists available agent skills. -- **Category/Description Display**: Shows skill details (category, optional description, name). -- **Toggle Success**: Modifies a skill's state optimistically, sends API request, and confirms success state. -- **Toggle Failure Revert**: Handles API failure, displays toast, and reverts the state optimistically. -- **Refresh**: Supports reloading/refreshing the list of skills from the API. - -### Feature 2: Cron Jobs Screen -- **Listing**: Fetches and lists all configured cron jobs. -- **State/Last Run/Next Run Display**: Displays status fields (state, last_run_status, next_run). -- **Pause Action**: Optimistically transitions a job's state to "paused", sends API request. -- **Resume Action**: Optimistically transitions a job's state to "active", sends API request. -- **Trigger Action**: Triggers a job immediately and displays a success toast. -- **Delete Action**: Optimistically removes a job from the list and sends a DELETE API request. -- **Refresh**: Supports reloading/refreshing the list of cron jobs. - -### Feature 3: Navigation Drawer -- **Transitions**: Simulates moving between top-level destinations (Chat, Skills, Cron Jobs) via the Material3 Navigation Drawer using the Custom `NavigationController` and its `backStack`. - ---- - -## Test Architecture - -- **Test Runner**: - - Main Test suite command: `nix develop --command ./gradlew test` - - Style checking command: `nix develop --command ./gradlew ktlintCheck` - - Total test count: 123 across 7 test files (see TEST_READY.md for per-file breakdown). -- **Test Case Format**: - - JUnit 4 / JUnit Platform JVM tests implemented in Kotlin. - - Mocking library: `Mockk` for mock objects, static mocks, and API endpoints. -- **Directory Layout**: - - `app/src/test/java/com/m57/hermescontrol/E2eIntegrationTest.kt` contains the complete end-to-end integration test suite. - ---- - -## Tier 4 Scenario: Complete User Journey -The Tier 4 scenario is implemented in `testFullUserSessionFlow()` which simulates a complete user session: -1. **Connect**: User enters coordinates and token, successfully authenticating/connecting. -2. **Open Drawer & Navigate**: Transitions from Chat to Skills. -3. **Toggle a Skill (Optimistic Update -> API Failure -> Toast/Revert)**: - - User toggles a skill. - - UI updates optimistically to the new state. - - Retrofit API returns a simulated HTTP 500 error. - - The state is reverted back to original, and an error Toast message is shown. -4. **Navigate to Cron Jobs**: User navigates from Skills to Cron Jobs. -5. **Trigger Cron Job**: - - User triggers a cron job. - - Retrofit API returns a success code. - - Success Toast message is displayed and verified. diff --git a/TEST_READY.md b/TEST_READY.md deleted file mode 100644 index 47521f56..00000000 --- a/TEST_READY.md +++ /dev/null @@ -1,40 +0,0 @@ -# Test Readiness - hermes-mobile - -This document provides a summary of test readiness, including test suite execution details, expected outcomes, coverage summary, and a feature readiness checklist. - -## Execution and Expected Outcome -- **Test Runner Command**: `nix develop --command ./gradlew test` -- **Expected Outcome**: All tests pass successfully. -- **Total Test Count**: 275 tests - ---- - -## Coverage Summary - -### Per-File Breakdown - -| Test File | Test Count | -|-----------|------------| -| E2eIntegrationTest.kt | 37 | -| ModelSerializationTest.kt | 30 | -| HermesApiServiceTest.kt | 19 | -| ConnectViewModelTest.kt | 14 | -| ChatViewModelTest.kt | 9 | -| AuthManagerTest.kt | 8 | -| EventParserTest.kt | 6 | -| **Total** | **275** | - ---- - -## Feature Checklist - -| Feature | Tier 1 (Coverage) | Tier 2 (Boundaries) | Tier 3 (Combinations) | Tier 4 (E2E Scenario) | -|---------|:-----------------:|:-------------------:|:---------------------:|:---------------------:| -| **Skills Management** | ✅ | ✅ | ✅ | ✅ | -| **Cron Jobs** | ✅ | ✅ | N/A | ✅ | -| **Navigation Drawer** | ✅ | N/A | ✅ | ✅ | -| **Authentication** | N/A | N/A | ✅ | ✅ | - -### Legend: -- ✅: Covered by tests in `E2eIntegrationTest.kt` -- N/A: Not applicable or handled by combinations/other screens.