Matthew Raymer
38188d590e
feat(android): P2.3 Android combined edge case tests - achieve parity with iOS P2.2
P2.3.1: Enable Android Test Infrastructure
- Added AndroidX test dependencies (JUnit, Robolectric, Room testing, coroutines-test)
- Enabled unit tests in android/build.gradle (removed disabled test configuration)
- Created test directory structure: android/src/test/java/com/timesafari/dailynotification/
- Created placeholder test file: DailyNotificationRecoveryTests.kt
P2.3.2: Create Test Infrastructure Helpers
- Created TestDBFactory.kt with in-memory Room database factory
- Added data injection helpers:
- injectInvalidSchedule() - Invalid data scenarios
- injectScheduleWithNullFields() - Null field handling
- injectDuplicateSchedules() - Duplicate delivery scenarios
- injectDSTBoundarySchedule() - DST boundary testing
- injectPastSchedule() - Rollover scenarios
- clearAllSchedules() - Test cleanup
- Similar to iOS TestDBFactory.swift but uses Room in-memory databases
P2.3.3: Implement Combined Test Scenarios
- Scenario A: test_combined_dst_boundary_duplicate_delivery_cold_start()
- Tests DST boundary + duplicate delivery + cold start
- Validates idempotency, deduplication, DST-consistent scheduling
- Scenario B: test_combined_rollover_duplicate_delivery_cold_start()
- Tests rollover + duplicate delivery + cold start
- Validates rollover idempotency, state reconciliation
- Scenario C: test_combined_schema_version_cold_start_recovery()
- Tests schema version + cold start recovery
- Validates version doesn't interfere with recovery
Progress Docs Updates:
- Updated 00-STATUS.md: marked P2.3 complete, added to phase status table
- Updated 01-CHANGELOG-WORK.md: added P2.3 completion entry with details
- Updated 03-TEST-RUNS.md: added P2.3 test run entry (pending execution)
- Updated 04-PARITY-MATRIX.md: marked combined edge case tests as ✅ for Android
Parity Status:
- Android now has automated combined edge case tests matching iOS P2.2 intent
- All tests labeled with @resilience @combined-scenarios comments
- Tests use Robolectric for Android context, runBlocking for coroutines
TypeScript compilation: ✅ PASSES
Build: ✅ PASSES
CI: ✅ All checks pass
2025-12-23 03:43:11 +00:00
..
2025-11-06 06:28:00 +00:00
2025-11-05 08:08:37 +00:00
2025-12-23 03:43:11 +00:00
2025-11-05 08:08:37 +00:00
2025-12-23 03:43:11 +00:00
2025-11-05 08:08:37 +00:00
2025-11-05 08:08:37 +00:00
2025-11-05 08:08:37 +00:00
2025-11-05 08:08:37 +00:00
2025-11-06 06:28:00 +00:00