Lindsay Peters
12/12/2023, 5:45 AMAlexander Maryanovsky
12/12/2023, 10:52 AMAlexander Maryanovsky
12/12/2023, 10:53 AMAlexander Maryanovsky
12/12/2023, 10:53 AMLindsay Peters
12/13/2023, 5:47 AM@get:Rule
val composeTestRule = createComposeRule()
@Test
fun `text field should be initialised to bar and also editable`() {
with (composeTestRule) {
setContent {
MyTextField()
}
onNodeWithText("bar").assertExists()
onNodeWithTag("myTextField").performTextInput("foo ")
onNodeWithText("foo bar").assertExists()
}
}
@Composable
@Preview
fun MyTextField() {
var text by remember { mutableStateOf("bar") }
MaterialTheme {
TextField(
value =text,
onValueChange = { changedText ->
text = changedText
println("changedText = ${changedText}")
},
modifier = Modifier.testTag("myTextField")
)
}
}
but when it's embedded in a JFrame using ComposePanel, how does one programatically perform the same sort of interactions and checks?
fun main() {
SwingUtilities.invokeLater {
val composePanel = ComposePanel().apply {
setContent {
MyTextField()
}
}
with(JFrame("compose test")) {
add(composePanel)
setSize(400, 200)
isVisible = true
}
}
}