Add missing test for LogoutView
This commit is contained in:
parent
ae424ffe6a
commit
7baaac09ba
2 changed files with 26 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.testtags.TestTags
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
import io.element.android.tests.testutils.EnsureNeverCalled
|
import io.element.android.tests.testutils.EnsureNeverCalled
|
||||||
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
|
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
|
||||||
|
|
@ -28,6 +29,7 @@ import io.element.android.tests.testutils.clickOn
|
||||||
import io.element.android.tests.testutils.ensureCalledOnce
|
import io.element.android.tests.testutils.ensureCalledOnce
|
||||||
import io.element.android.tests.testutils.ensureCalledOnceWithParam
|
import io.element.android.tests.testutils.ensureCalledOnceWithParam
|
||||||
import io.element.android.tests.testutils.pressBack
|
import io.element.android.tests.testutils.pressBack
|
||||||
|
import io.element.android.tests.testutils.pressTag
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
@ -54,6 +56,24 @@ class LogoutViewTest {
|
||||||
eventsRecorder.assertSingle(LogoutEvents.Logout(false))
|
eventsRecorder.assertSingle(LogoutEvents.Logout(false))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `confirming logout sends a LogoutEvents`() {
|
||||||
|
val eventsRecorder = EventsRecorder<LogoutEvents>()
|
||||||
|
rule.setContent {
|
||||||
|
LogoutView(
|
||||||
|
aLogoutState(
|
||||||
|
logoutAction = AsyncAction.Confirming,
|
||||||
|
eventSink = eventsRecorder
|
||||||
|
),
|
||||||
|
onChangeRecoveryKeyClicked = EnsureNeverCalled(),
|
||||||
|
onBackClicked = EnsureNeverCalled(),
|
||||||
|
onSuccessLogout = EnsureNeverCalledWithParam(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
rule.pressTag(TestTags.dialogPositive.value)
|
||||||
|
eventsRecorder.assertSingle(LogoutEvents.Logout(false))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `clicking on back invoke back callback`() {
|
fun `clicking on back invoke back callback`() {
|
||||||
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
|
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,10 @@ package io.element.android.tests.testutils
|
||||||
|
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||||
import androidx.compose.ui.test.hasClickAction
|
import androidx.compose.ui.test.hasClickAction
|
||||||
import androidx.compose.ui.test.hasContentDescription
|
import androidx.compose.ui.test.hasContentDescription
|
||||||
|
import androidx.compose.ui.test.hasTestTag
|
||||||
import androidx.compose.ui.test.hasText
|
import androidx.compose.ui.test.hasText
|
||||||
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
|
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
|
||||||
import androidx.compose.ui.test.performClick
|
import androidx.compose.ui.test.performClick
|
||||||
|
|
@ -36,3 +38,7 @@ fun <R : TestRule> AndroidComposeTestRule<R, ComponentActivity>.pressBack() {
|
||||||
val text = activity.getString(CommonStrings.action_back)
|
val text = activity.getString(CommonStrings.action_back)
|
||||||
onNode(hasContentDescription(text)).performClick()
|
onNode(hasContentDescription(text)).performClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun SemanticsNodeInteractionsProvider.pressTag(tag: String) {
|
||||||
|
onNode(hasTestTag(tag)).performClick()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue