android / android/android-test

`DisplaySizeRule` does not consistently set back the previous emulator state

Open
#2,334 1 comment 0 reactions 1 assignee Claimed by @paigemca View on GitHub
Dominant language
Java
Stars
1.2k
Forks
342
Avg merge
11h 29m
Merged PRs (30d)
2

Description

## Actual
The emulator remains with the display size modified. Wiping the device is required to restore the original state.
![Image](https://github.com/user-attachments/assets/dd461067-0389-4877-a806-c84f65982c58)

**Full test code (if helpful)**
```
@OptIn(ExperimentalTestApi::class)
@RunWith(AndroidJUnit4::class)
class AppNavigationTests {

@get:Rule(order = 0)
val koinRule = KoinTestRule(
modules = listOf(
module {
singleOf(::FakeConferenceRepository) bind ConferenceRepository::class
viewModelOf(::MainViewModel)
}
)
)

@get:Rule(order = 1)
val composeRule = createAndroidComposeRule()

@get:Rule(order = 2)
var displaySizeRule: DisplaySizeRule = DisplaySizeRule()

@Test
fun should_display_bottom_bar_when_compact() {
onDevice().setDisplaySize(
widthSizeClass = WidthSizeClass.COMPACT,
heightSizeClass = HeightSizeClass.MEDIUM
)

composeRule.setContent {
Red30TechApp()
}

composeRule
.onNodeWithTag("ui:bottomBar").assertIsDisplayed()
}

@Test
fun should_display_rail_when_medium() {
onDevice().setDisplaySize(
widthSizeClass = WidthSizeClass.MEDIUM,
heightSizeClass = HeightSizeClass.MEDIUM
)

composeRule.setContent {
Red30TechApp()
}

composeRule
.onNodeWithTag("ui:navigationRail").assertIsDisplayed()
}
}
```
## Expected
The emulator is restored to its original state.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.