Skip to content

Glide Compose Nodes aren't displayed under createComposeRule #5498

@donaldchai

Description

@donaldchai

Here's a minimal self-contained test case:

package com.bumptech.glide.integration.compose

import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onRoot
import androidx.compose.ui.test.printToLog
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config

@OptIn(ExperimentalGlideComposeApi::class)
@RunWith(RobolectricTestRunner::class)
class GlideImageTest {

  @get:Rule(order = 1) val composeRule = createComposeRule()

  @Test
  fun robo_asdf() {
    val tag = "testtag"
    composeRule.setContent {
      GlideImage(
        model = android.R.drawable.star_big_on,
        contentDescription = "desc",
        modifier = Modifier.testTag(tag),
      )
    }

    composeRule.waitForIdle()

    composeRule.onRoot(useUnmergedTree = true).printToLog("GlideImageTest")
    composeRule.onNodeWithTag(tag).assertIsDisplayed()  // fails
  }
}

I've bisected this down to #5240.

Curiously, this works on an emulator:

--- a/integration/compose/src/androidTest/java/com/bumptech/glide/integration/compose/GlideImageTest.kt
+++ b/integration/compose/src/androidTest/java/com/bumptech/glide/integration/compose/GlideImageTest.kt
@@ -24,9 +24,11 @@ import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.platform.testTag
 import androidx.compose.ui.test.assert
+import androidx.compose.ui.test.assertIsDisplayed
 import androidx.compose.ui.test.captureToImage
 import androidx.compose.ui.test.hasTestTag
 import androidx.compose.ui.test.onNodeWithContentDescription
+import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.performClick
 import androidx.compose.ui.test.performScrollToIndex
@@ -468,4 +470,20 @@ class GlideImageTest {
       .captureToImage()
       .compareToGolden(testName.methodName)
   }
+
+  @Test
+  fun asdf() {
+    val testTag = "testTag"
+    glideComposeRule.setContent {
+      GlideImage(
+        model = android.R.drawable.star_big_on,
+        contentDescription = "test",
+        modifier = Modifier.testTag(testTag),
+      )
+    }
+
+    glideComposeRule.waitForIdle()
+
+    glideComposeRule.onNodeWithTag(testTag).assertIsDisplayed()
+  }
 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions