Omkar Amberkar
10/03/2023, 10:13 PM@OptIn(ExperimentalTestApi::class)
@RunWith(AndroidJUnit4::class)
class TvPlayerKeyEventModifiersKtTest {
@get:Rule
val rule = createComposeRule()
@Test
fun `It maps player key events correctly`() {
val isActionUpDpadUpInvoked = MutableStateFlow(false)
rule.setContent {
val focusRequester = FocusRequester()
Box(
modifier = Modifier
.handlePlayerKeyEvent(
onActionUpDpadUp = { isActionUpDpadUpInvoked.value = true }
)
.focusRequester(focusRequester)
.focusable()
.testTag("test")
)
LaunchedEffect(Unit) { focusRequester.requestFocus() }
}
rule.onNodeWithTag("test")
.assertIsDisplayed()
.assertIsFocused()
rule.onRoot().performKeyInput { pressKey(Key.DirectionUp) }
assertThat(isActionUpDpadUpInvoked.value).isTrue()
}
}
fun Modifier.handlePlayerKeyEvent(
onActionUpDpadUp: (() -> Unit)? = null,
)
java.lang.AssertionError: Assert failed: The component is not displayed!
Zach Klippenstein (he/him) [MOD]
10/03/2023, 10:41 PM.size(1.dp)
to your modifier chainOmkar Amberkar
10/03/2023, 11:35 PM