quality: fix formatting and test

This commit is contained in:
ganfra 2025-11-26 15:16:13 +01:00
parent 40bd16b1eb
commit 3ba79a6e10
5 changed files with 39 additions and 14 deletions

View file

@ -21,9 +21,9 @@ import androidx.compose.runtime.setValue
import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.Assisted
import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedFactory
import dev.zacsweers.metro.AssistedInject import dev.zacsweers.metro.AssistedInject
import io.element.android.features.securityandprivacy.api.securityAndPrivacyPermissionsAsState
import io.element.android.features.securityandprivacy.impl.SecurityAndPrivacyNavigator import io.element.android.features.securityandprivacy.impl.SecurityAndPrivacyNavigator
import io.element.android.features.securityandprivacy.impl.editroomaddress.matchesServer import io.element.android.features.securityandprivacy.impl.editroomaddress.matchesServer
import io.element.android.features.securityandprivacy.api.securityAndPrivacyPermissionsAsState
import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.architecture.AsyncData.* import io.element.android.libraries.architecture.AsyncData.*

View file

@ -117,7 +117,7 @@ fun aSecurityAndPrivacyState(
canChangeRoomVisibility = true canChangeRoomVisibility = true
), ),
isKnockEnabled: Boolean = true, isKnockEnabled: Boolean = true,
isSpace: Boolean, isSpace: Boolean = false,
eventSink: (SecurityAndPrivacyEvents) -> Unit = {} eventSink: (SecurityAndPrivacyEvents) -> Unit = {}
) = SecurityAndPrivacyState( ) = SecurityAndPrivacyState(
editedSettings = editedSettings, editedSettings = editedSettings,

View file

@ -243,7 +243,6 @@ private fun RoomAccessSection(
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Lock())), leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Lock())),
onClick = { onSelectOption(SecurityAndPrivacyRoomAccess.InviteOnly) }, onClick = { onSelectOption(SecurityAndPrivacyRoomAccess.InviteOnly) },
) )
} }
} }

View file

@ -21,12 +21,12 @@ import io.element.android.features.securityandprivacy.impl.root.SecurityAndPriva
import io.element.android.features.securityandprivacy.impl.root.SecurityAndPrivacyView import io.element.android.features.securityandprivacy.impl.root.SecurityAndPrivacyView
import io.element.android.features.securityandprivacy.impl.root.aSecurityAndPrivacySettings import io.element.android.features.securityandprivacy.impl.root.aSecurityAndPrivacySettings
import io.element.android.features.securityandprivacy.impl.root.aSecurityAndPrivacyState import io.element.android.features.securityandprivacy.impl.root.aSecurityAndPrivacyState
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.architecture.AsyncData
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.EventsRecorder import io.element.android.tests.testutils.EventsRecorder
import io.element.android.tests.testutils.clickOn import io.element.android.tests.testutils.clickOn
import io.element.android.tests.testutils.ensureCalledOnce
import io.element.android.tests.testutils.pressBack import io.element.android.tests.testutils.pressBack
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
@ -39,15 +39,41 @@ class SecurityAndPrivacyViewTest {
@get:Rule val rule = createAndroidComposeRule<ComponentActivity>() @get:Rule val rule = createAndroidComposeRule<ComponentActivity>()
@Test @Test
fun `click on back invokes expected callback`() { fun `click on back invokes emits the expected event`() {
ensureCalledOnce { callback -> val recorder = EventsRecorder<SecurityAndPrivacyEvents>()
rule.setSecurityAndPrivacyView( val state = aSecurityAndPrivacyState(
onBackClick = callback, eventSink = recorder,
) )
rule.setSecurityAndPrivacyView(state)
rule.pressBack() rule.pressBack()
recorder.assertSingle(SecurityAndPrivacyEvents.Exit)
} }
@Test
fun `confirm cancellation emits the expected event`() {
val recorder = EventsRecorder<SecurityAndPrivacyEvents>()
val state = aSecurityAndPrivacyState(
confirmExitAction = AsyncAction.ConfirmingCancellation,
eventSink = recorder,
)
rule.setSecurityAndPrivacyView(state)
rule.clickOn(CommonStrings.action_ok)
recorder.assertSingle(SecurityAndPrivacyEvents.Exit)
} }
@Test
fun `dismiss cancellation confirmation emits the expected event`() {
val recorder = EventsRecorder<SecurityAndPrivacyEvents>()
val state = aSecurityAndPrivacyState(
confirmExitAction = AsyncAction.ConfirmingCancellation,
eventSink = recorder,
)
rule.setSecurityAndPrivacyView(state)
rule.clickOn(CommonStrings.action_cancel)
recorder.assertSingle(SecurityAndPrivacyEvents.DismissExitConfirmation)
}
@Test @Test
fun `click on room access item emits the expected event`() { fun `click on room access item emits the expected event`() {
val recorder = EventsRecorder<SecurityAndPrivacyEvents>() val recorder = EventsRecorder<SecurityAndPrivacyEvents>()