mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
quality: fix more tests
This commit is contained in:
-1
@@ -104,7 +104,6 @@ class ChangeRolesPresenter(
|
|||||||
|
|
||||||
val roomInfo by room.roomInfoFlow.collectAsState()
|
val roomInfo by room.roomInfoFlow.collectAsState()
|
||||||
fun canChangeMemberRole(userId: UserId): Boolean {
|
fun canChangeMemberRole(userId: UserId): Boolean {
|
||||||
// This is used to group the
|
|
||||||
val currentUserRole = roomInfo.roleOf(room.sessionId)
|
val currentUserRole = roomInfo.roleOf(room.sessionId)
|
||||||
val otherUserRole = roomInfo.roleOf(userId)
|
val otherUserRole = roomInfo.roleOf(userId)
|
||||||
return currentUserRole.powerLevel > otherUserRole.powerLevel
|
return currentUserRole.powerLevel > otherUserRole.powerLevel
|
||||||
|
|||||||
+7
-21
@@ -351,21 +351,15 @@ class ChangeRolesPresenterTest {
|
|||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(2)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.selectedUsers).hasSize(1)
|
assertThat(initialState.selectedUsers).hasSize(1)
|
||||||
|
|
||||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||||
awaitItem().eventSink(ChangeRolesEvent.Save)
|
awaitItem().eventSink(ChangeRolesEvent.Save)
|
||||||
val confirmingState = awaitItem()
|
val confirmingState = awaitItem()
|
||||||
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||||
|
|
||||||
confirmingState.eventSink(ChangeRolesEvent.Save)
|
confirmingState.eventSink(ChangeRolesEvent.Save)
|
||||||
|
assertThat(awaitItem().savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
||||||
val loadingState = awaitItem()
|
|
||||||
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
|
||||||
skipItems(1)
|
|
||||||
|
|
||||||
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -413,18 +407,12 @@ class ChangeRolesPresenterTest {
|
|||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(2)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.selectedUsers).hasSize(1)
|
assertThat(initialState.selectedUsers).hasSize(1)
|
||||||
|
|
||||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||||
|
|
||||||
awaitItem().eventSink(ChangeRolesEvent.Save)
|
awaitItem().eventSink(ChangeRolesEvent.Save)
|
||||||
|
assertThat(awaitItem().savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
||||||
val loadingState = awaitItem()
|
|
||||||
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
|
||||||
skipItems(1)
|
|
||||||
|
|
||||||
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
||||||
assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.Moderator))
|
assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.Moderator))
|
||||||
}
|
}
|
||||||
@@ -491,7 +479,7 @@ class ChangeRolesPresenterTest {
|
|||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(2)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.selectedUsers).hasSize(1)
|
assertThat(initialState.selectedUsers).hasSize(1)
|
||||||
|
|
||||||
@@ -501,8 +489,6 @@ class ChangeRolesPresenterTest {
|
|||||||
|
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
||||||
skipItems(1)
|
|
||||||
|
|
||||||
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true))
|
||||||
assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.User))
|
assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.User))
|
||||||
}
|
}
|
||||||
@@ -520,7 +506,7 @@ class ChangeRolesPresenterTest {
|
|||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(2)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.selectedUsers).hasSize(1)
|
assertThat(initialState.selectedUsers).hasSize(1)
|
||||||
|
|
||||||
@@ -529,7 +515,6 @@ class ChangeRolesPresenterTest {
|
|||||||
awaitItem().eventSink(ChangeRolesEvent.Save)
|
awaitItem().eventSink(ChangeRolesEvent.Save)
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
||||||
skipItems(1)
|
|
||||||
val failedState = awaitItem()
|
val failedState = awaitItem()
|
||||||
assertThat(failedState.savingState).isInstanceOf(AsyncAction.Failure::class.java)
|
assertThat(failedState.savingState).isInstanceOf(AsyncAction.Failure::class.java)
|
||||||
|
|
||||||
@@ -567,5 +552,6 @@ internal fun TestScope.createChangeRolesPresenter(
|
|||||||
room = room,
|
room = room,
|
||||||
dispatchers = dispatchers,
|
dispatchers = dispatchers,
|
||||||
analyticsService = analyticsService,
|
analyticsService = analyticsService,
|
||||||
|
roomCoroutineScope = this,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 New Vector Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.features.changeroommemberroles.test
|
||||||
|
|
||||||
|
import com.bumble.appyx.core.modality.BuildContext
|
||||||
|
import com.bumble.appyx.core.node.Node
|
||||||
|
import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint
|
||||||
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
|
|
||||||
|
class FakeRolesAndPermissionsEntryPoint : RolesAndPermissionsEntryPoint {
|
||||||
|
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
||||||
|
lambdaError()
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
@@ -13,6 +13,7 @@ import com.bumble.appyx.testing.junit4.util.MainDispatcherRule
|
|||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.call.test.FakeElementCallEntryPoint
|
import io.element.android.features.call.test.FakeElementCallEntryPoint
|
||||||
import io.element.android.features.changeroommemberroles.test.FakeChangeRoomMemberRolesEntryPoint
|
import io.element.android.features.changeroommemberroles.test.FakeChangeRoomMemberRolesEntryPoint
|
||||||
|
import io.element.android.features.changeroommemberroles.test.FakeRolesAndPermissionsEntryPoint
|
||||||
import io.element.android.features.knockrequests.test.FakeKnockRequestsListEntryPoint
|
import io.element.android.features.knockrequests.test.FakeKnockRequestsListEntryPoint
|
||||||
import io.element.android.features.messages.test.FakeMessagesEntryPoint
|
import io.element.android.features.messages.test.FakeMessagesEntryPoint
|
||||||
import io.element.android.features.poll.test.history.FakePollHistoryEntryPoint
|
import io.element.android.features.poll.test.history.FakePollHistoryEntryPoint
|
||||||
@@ -58,6 +59,7 @@ class DefaultRoomDetailsEntryPointTest {
|
|||||||
outgoingVerificationEntryPoint = FakeOutgoingVerificationEntryPoint(),
|
outgoingVerificationEntryPoint = FakeOutgoingVerificationEntryPoint(),
|
||||||
reportRoomEntryPoint = FakeReportRoomEntryPoint(),
|
reportRoomEntryPoint = FakeReportRoomEntryPoint(),
|
||||||
changeRoomMemberRolesEntryPoint = FakeChangeRoomMemberRolesEntryPoint(),
|
changeRoomMemberRolesEntryPoint = FakeChangeRoomMemberRolesEntryPoint(),
|
||||||
|
rolesAndPermissionsEntryPoint = FakeRolesAndPermissionsEntryPoint(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val callback = object : RoomDetailsEntryPoint.Callback {
|
val callback = object : RoomDetailsEntryPoint.Callback {
|
||||||
|
|||||||
Reference in New Issue
Block a user