android / android/android-test
`DisplaySizeRule` does not consistently set back the previous emulator state
- 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.

**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
Assessment
This issue has not been assessed yet.