Use string resource instead of hard-coded strings.

This commit is contained in:
Benoit Marty 2024-01-08 09:50:08 +01:00
parent fdc3c9ff39
commit dee8008917
3 changed files with 24 additions and 11 deletions

View file

@ -31,6 +31,7 @@ dependencies {
implementation(libs.test.truth)
implementation(libs.coroutines.test)
implementation(projects.libraries.core)
implementation(projects.libraries.uiStrings)
implementation(libs.test.turbine)
implementation(libs.molecule.runtime)
implementation(libs.androidx.compose.ui.test.junit)

View file

@ -16,12 +16,23 @@
package io.element.android.tests.testutils
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
import androidx.activity.ComponentActivity
import androidx.annotation.StringRes
import androidx.compose.ui.test.hasClickAction
import androidx.compose.ui.test.hasContentDescription
import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
import androidx.compose.ui.test.performClick
import io.element.android.libraries.ui.strings.CommonStrings
import org.junit.rules.TestRule
fun SemanticsNodeInteractionsProvider.clickOn(text: String) {
fun <R : TestRule> AndroidComposeTestRule<R, ComponentActivity>.clickOn(@StringRes res: Int) {
val text = activity.getString(res)
onNode(hasText(text) and hasClickAction())
.performClick()
}
fun <R : TestRule> AndroidComposeTestRule<R, ComponentActivity>.pressBack() {
val text = activity.getString(CommonStrings.action_back)
onNode(hasContentDescription(text)).performClick()
}