Skip to content

Commit 04eb632

Browse files
authored
Merge pull request #862 from SimonMarquis/patch-1
Remove hardcoded topic names in `NavigationTest.kt`
2 parents 8d3c234 + d8a6d0d commit 04eb632

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,27 @@ import androidx.compose.ui.test.junit4.AndroidComposeTestRule
2727
import androidx.compose.ui.test.junit4.createAndroidComposeRule
2828
import androidx.compose.ui.test.onAllNodesWithText
2929
import androidx.compose.ui.test.onNodeWithContentDescription
30+
import androidx.compose.ui.test.onNodeWithTag
3031
import androidx.compose.ui.test.onNodeWithText
3132
import androidx.compose.ui.test.performClick
33+
import androidx.compose.ui.test.performScrollToNode
3234
import androidx.test.espresso.Espresso
3335
import androidx.test.espresso.NoActivityResumedException
3436
import com.google.samples.apps.nowinandroid.MainActivity
3537
import com.google.samples.apps.nowinandroid.R
38+
import com.google.samples.apps.nowinandroid.core.data.repository.TopicsRepository
39+
import com.google.samples.apps.nowinandroid.core.model.data.Topic
3640
import com.google.samples.apps.nowinandroid.core.rules.GrantPostNotificationsPermissionRule
3741
import dagger.hilt.android.testing.BindValue
3842
import dagger.hilt.android.testing.HiltAndroidRule
3943
import dagger.hilt.android.testing.HiltAndroidTest
44+
import kotlinx.coroutines.flow.first
45+
import kotlinx.coroutines.test.runTest
46+
import org.junit.Before
4047
import org.junit.Rule
4148
import org.junit.Test
4249
import org.junit.rules.TemporaryFolder
50+
import javax.inject.Inject
4351
import kotlin.properties.ReadOnlyProperty
4452
import com.google.samples.apps.nowinandroid.feature.bookmarks.R as BookmarksR
4553
import com.google.samples.apps.nowinandroid.feature.foryou.R as FeatureForyouR
@@ -78,6 +86,9 @@ class NavigationTest {
7886
@get:Rule(order = 3)
7987
val composeTestRule = createAndroidComposeRule<MainActivity>()
8088

89+
@Inject
90+
lateinit var topicsRepository: TopicsRepository
91+
8192
private fun AndroidComposeTestRule<*, *>.stringResource(@StringRes resId: Int) =
8293
ReadOnlyProperty<Any?, String> { _, _ -> activity.getString(resId) }
8394

@@ -92,6 +103,9 @@ class NavigationTest {
92103
private val brand by composeTestRule.stringResource(SettingsR.string.brand_android)
93104
private val ok by composeTestRule.stringResource(SettingsR.string.dismiss_dialog_button_text)
94105

106+
@Before
107+
fun setup() = hiltRule.inject()
108+
95109
@Test
96110
fun firstScreen_isForYou() {
97111
composeTestRule.apply {
@@ -251,11 +265,14 @@ class NavigationTest {
251265
}
252266

253267
@Test
254-
fun navigationBar_multipleBackStackInterests() {
268+
fun navigationBar_multipleBackStackInterests() = runTest {
255269
composeTestRule.apply {
256270
onNodeWithText(interests).performClick()
257-
// TODO: Grab string from fake data
258-
onNodeWithText("Android Studio & Tools").performClick()
271+
272+
// Select the last topic
273+
val topic = topicsRepository.getTopics().first().sortedBy(Topic::name).last().name
274+
onNodeWithTag("interests:topics").performScrollToNode(hasText(topic))
275+
onNodeWithText(topic).performClick()
259276

260277
// Switch tab
261278
onNodeWithText(forYou).performClick()
@@ -264,7 +281,7 @@ class NavigationTest {
264281
onNodeWithText(interests).performClick()
265282

266283
// Verify we're not in the list of interests
267-
onNodeWithText("Android Auto").assertDoesNotExist() // TODO: Grab string from fake data
284+
onNodeWithTag("interests:topics").assertDoesNotExist()
268285
}
269286
}
270287
}

0 commit comments

Comments
 (0)