Skip to content

Commit

Permalink
Add Compose test to check that FocusRequester is initialized
Browse files Browse the repository at this point in the history
This adds the test case surfaced in robolectric#9703, where the `FocusRequester` might not be initialized.
  • Loading branch information
MGaetan89 committed Nov 29, 2024
1 parent 35141de commit e9d275a
Showing 1 changed file with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.robolectric.integrationtests.composeui

import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.test.junit4.createComposeRule
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner

@RunWith(RobolectricTestRunner::class)
class FocusRequesterTest {
@get:Rule val composeTestRule = createComposeRule()

/** Test for https://github.com/robolectric/robolectric/issues/9703 */
@Test
fun `check FocusRequester is initialized`() {
composeTestRule.setContent {
val focusRequester = rememberFocusRequester()

TextField(value = "", onValueChange = {}, modifier = Modifier.focusRequester(focusRequester))
}
}

@Composable
private fun rememberFocusRequester(): FocusRequester {
return remember { FocusRequester() }.apply { LaunchedEffect(this) { requestFocus() } }
}
}

0 comments on commit e9d275a

Please sign in to comment.