'Compose-Espresso link to become idle timed out With JetpackCompose LazyColumn

I am trying to test my lazy column in JetpackCompose and I keep getting this error: [Compose-Espresso link] to become idle timed out

I tried using composeTestRule.waitforIdle() but it doesn't work. What am I missing here?

@HiltAndroidTest
class MainTest {

    @get:Rule(order = 1)
    var hiltTestRule = HiltAndroidRule(this)

    @get:Rule(order = 2)
    var composeTestRule = createAndroidComposeRule<MainActivity>()

    private val context = InstrumentationRegistry.getInstrumentation().context

    @Before
    fun setup() {
        hiltTestRule.inject()
        composeTestRule.setContent {
            HomePage(
                context = context,
            viewModel = composeTestRule.activity.viewModels<MarvelViewModel>().value,
            onClick = {}
            )
        }
        composeTestRule.onRoot().printToLog("currentLabelExists")

    }


    @Test
    fun isResultDisplayedOnLazyColumn() {
        composeTestRule.waitForIdle()
        composeTestRule.onNode(hasImeAction(ImeAction.Done)).performTextInput("iron man")
        composeTestRule.onNode(hasImeAction(ImeAction.Done)).performImeAction()

        composeTestRule.onNodeWithTag(TAG_LAZY_COLUMN, useUnmergedTree = true).assertIsDisplayed()


Solution 1:[1]

I've got this issue too. The root cause was having my composeview GONE. It seems ComposeTestRule IdlingResource don't like then you call setContent on a Gone ComposeView

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Skav