quality: fix more tests
This commit is contained in:
parent
fbe7476ba7
commit
6db952c7df
4 changed files with 28 additions and 22 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue