Migrates the deprecated v1 Compose test-rule factory createAndroidComposeRule to its v2 equivalent (androidx.compose.ui.test.junit4.v2) across the entire androidTest source set, clearing the Compose BOM 2026.06.00 deprecation warnings.
Why
Small chore under #373. Compose BOM 2026.06.00 deprecates the v1 test-rule factories in androidx.compose.ui.test.junit4 in favour of the ...junit4.v2 package. v2 composes on StandardTestDispatcher (consistent with runTest) instead of v1's UnconfinedTestDispatcher. The JVM (test) source set already migrated to the v2 createComposeRule in PR #375; this sweeps the remaining androidTest usages.
Changes
30 androidTest classes: import swap only — androidx.compose.ui.test.junit4.createAndroidComposeRule → androidx.compose.ui.test.junit4.v2.createAndroidComposeRule.
v2's createAndroidComposeRule<A>() returns the sameAndroidComposeTestRule<ActivityScenarioRule<A>, A> type, so every createAndroidComposeRule<ComponentActivity>() call site is unchanged.
Behaviour / dispatcher note
The v2 rule queues composition effects (StandardTestDispatcher) rather than running them eagerly. The migrated tests already wait on async state via waitUntil(...) / waitForIdle() (and all finders/assertions call waitForIdle() internally), and none manipulate mainClock/autoAdvance. So no test semantics needed adjusting.
Verification
Windows fast gate — all green (BUILD SUCCESSFUL in 3m 17s): assembleDebug, testDebugUnitTest, jacocoTestCoverageVerification, compileDebugAndroidTestKotlin, lintDebug, ktlintCheck, detekt.
Instrumented E2E is validated by CI's multi-API matrix (the authoritative gate for a test-infra change).
## What
Migrates the deprecated **v1** Compose test-rule factory `createAndroidComposeRule` to its **v2** equivalent (`androidx.compose.ui.test.junit4.v2`) across the entire `androidTest` source set, clearing the Compose BOM 2026.06.00 deprecation warnings.
## Why
Small chore under #373. Compose BOM 2026.06.00 deprecates the v1 test-rule factories in `androidx.compose.ui.test.junit4` in favour of the `...junit4.v2` package. v2 composes on `StandardTestDispatcher` (consistent with `runTest`) instead of v1's `UnconfinedTestDispatcher`. The JVM (`test`) source set already migrated to the v2 `createComposeRule` in PR #375; this sweeps the remaining `androidTest` usages.
## Changes
- **30 `androidTest` classes**: import swap only —
`androidx.compose.ui.test.junit4.createAndroidComposeRule` →
`androidx.compose.ui.test.junit4.v2.createAndroidComposeRule`.
- v2's `createAndroidComposeRule<A>()` returns the **same** `AndroidComposeTestRule<ActivityScenarioRule<A>, A>` type, so every `createAndroidComposeRule<ComponentActivity>()` call site is unchanged.
## Behaviour / dispatcher note
The v2 rule queues composition effects (StandardTestDispatcher) rather than running them eagerly. The migrated tests already wait on async state via `waitUntil(...)` / `waitForIdle()` (and all finders/assertions call `waitForIdle()` internally), and **none** manipulate `mainClock`/`autoAdvance`. So **no test semantics needed adjusting**.
## Verification
Windows fast gate — all green (`BUILD SUCCESSFUL in 3m 17s`):
`assembleDebug`, `testDebugUnitTest`, `jacocoTestCoverageVerification`, `compileDebugAndroidTestKotlin`, `lintDebug`, `ktlintCheck`, `detekt`.
Instrumented E2E is validated by CI's multi-API matrix (the authoritative gate for a test-infra change).
Closes #385
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Migrates the deprecated v1 Compose test-rule factory
createAndroidComposeRuleto its v2 equivalent (androidx.compose.ui.test.junit4.v2) across the entireandroidTestsource set, clearing the Compose BOM 2026.06.00 deprecation warnings.Why
Small chore under #373. Compose BOM 2026.06.00 deprecates the v1 test-rule factories in
androidx.compose.ui.test.junit4in favour of the...junit4.v2package. v2 composes onStandardTestDispatcher(consistent withrunTest) instead of v1'sUnconfinedTestDispatcher. The JVM (test) source set already migrated to the v2createComposeRulein PR #375; this sweeps the remainingandroidTestusages.Changes
androidTestclasses: import swap only —androidx.compose.ui.test.junit4.createAndroidComposeRule→androidx.compose.ui.test.junit4.v2.createAndroidComposeRule.createAndroidComposeRule<A>()returns the sameAndroidComposeTestRule<ActivityScenarioRule<A>, A>type, so everycreateAndroidComposeRule<ComponentActivity>()call site is unchanged.Behaviour / dispatcher note
The v2 rule queues composition effects (StandardTestDispatcher) rather than running them eagerly. The migrated tests already wait on async state via
waitUntil(...)/waitForIdle()(and all finders/assertions callwaitForIdle()internally), and none manipulatemainClock/autoAdvance. So no test semantics needed adjusting.Verification
Windows fast gate — all green (
BUILD SUCCESSFUL in 3m 17s):assembleDebug,testDebugUnitTest,jacocoTestCoverageVerification,compileDebugAndroidTestKotlin,lintDebug,ktlintCheck,detekt.Instrumented E2E is validated by CI's multi-API matrix (the authoritative gate for a test-infra change).
Closes #385
Merge Queue Status
2026-07-08 20:29 UTC· Rule:default· triggered by merge protections2026-07-08 20:35 UTC· at2c35301756dd7ab9f9f27b736492fbc827922c37· mergeThis pull request spent 5 minutes 35 seconds in the queue, including 4 seconds running CI.
Required conditions to merge
-conflict-draftbase = maincheck-success = CI passedgithub-review-approved[🛡 GitHub repository ruleset rulemain]label != brokencheck-success = Debug buildcheck-neutral = Debug buildcheck-skipped = Debug buildcheck-success = Unit testscheck-neutral = Unit testscheck-skipped = Unit testscheck-success = CI passedcheck-neutral = CI passedcheck-skipped = CI passedmain]:check-success = @github-actions/CI passedcheck-neutral = @github-actions/CI passedcheck-skipped = @github-actions/CI passed