Skip to content

test(robolectric): Phase 1 remainder + Phase 2 worker/notification gates#81

Merged
stozo04 merged 3 commits into
mainfrom
feature/robolectric-phase-2
Jun 23, 2026
Merged

test(robolectric): Phase 1 remainder + Phase 2 worker/notification gates#81
stozo04 merged 3 commits into
mainfrom
feature/robolectric-phase-2

Conversation

@stozo04

@stozo04 stozo04 commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Ship remaining Tier 1 Robolectric tests that were local-only: DataStore round-trip (UserPreferencesRepositoryImplRobolectricTest), import copy contract (VideoImporterImportRobolectricTest), and notification channel/progress/immutability (BoomerangRenderNotificationsRobolectricTest).
  • Add Phase 2 guard-only worker tests (BoomerangRenderWorkerRobolectricTest): invalid input → Result.failure(), valid getForegroundInfo(), FGS promotion denied → failure + partial-output cleanup — never reaches VideoProcessor.renderBoomerang. Adds work-testing to testImplementation.
  • Extract shouldRequestPostNotificationsPermission / shouldShowNotificationExportHint from MainActivity and cover API 32 no-op vs API 33+ gate in PostNotificationsGateRobolectricTest.
  • Update docs/guides/robolectric-testing-explained.md and docs/TEST_COVERAGE.md. Phase 3 (Robolectric Compose) evaluated and deferred — no harness yet.
  • Bump to versionCode 26 / versionName 1.0.26.

Test plan

  • ./gradlew :app:testDebugUnitTest — 0 failures (full suite)
  • ./gradlew :app:lintDebug — 0 new lint errors (baseline policy)
  • Manual QA (API 33+): deny POST_NOTIFICATIONS → save loop → permission prompt appears; Processing screen shows background-export hint when denied
  • Manual QA (API 32 if available): no POST_NOTIFICATIONS prompt or hint

Not verified

  • App not launched on emulator for this PR (test-only + small permission extraction; no notification manifest changes).

Made with Cursor

stozo04 and others added 3 commits June 22, 2026 12:06
Ship remaining Tier 1 Robolectric tests (DataStore, import, notifications channel),
add guard-only BoomerangRenderWorker and POST_NOTIFICATIONS gate coverage on the JVM,
and extract pure permission decision helpers from MainActivity for API 32 vs 33+ testing.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add a scannable inventory of all Phase 1–2 JVM framework tests with run
commands, method lists, and device complements; link it from guides README,
TEST_COVERAGE, OEM regression guide, and the existing Robolectric tutorial.

Co-authored-by: Cursor <cursoragent@cursor.com>
Retire docs/active, completed, diagnostics, and android-16 — shipped work
lives in git history, lessons_learned/, and guides/. Add layout rules, CI
doc-layout gate, and fix all surviving cross-references.

Co-authored-by: Cursor <cursoragent@cursor.com>
@stozo04 stozo04 merged commit 2975c46 into main Jun 23, 2026
2 checks passed
@stozo04 stozo04 deleted the feature/robolectric-phase-2 branch June 23, 2026 00:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant