Merge branch 'develop' into feature/fga/space_settings_iteration
This commit is contained in:
commit
1300e7723c
180 changed files with 3495 additions and 1242 deletions
|
|
@ -44,7 +44,7 @@ import kotlinx.collections.immutable.persistentListOf
|
|||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
|
|
@ -81,7 +81,7 @@ class ChangeRolesPresenter(
|
|||
val owners = if (role == RoomMember.Role.Admin) {
|
||||
room.usersWithRole { role -> role is RoomMember.Role.Owner }
|
||||
} else {
|
||||
emptyFlow()
|
||||
flowOf(persistentListOf())
|
||||
}
|
||||
combine(
|
||||
owners,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="screen_room_change_permissions_administrators">"Kun admins"</string>
|
||||
<string name="screen_room_change_permissions_administrators">"Administrator"</string>
|
||||
<string name="screen_room_change_permissions_ban_people">"Spær brugere"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Fjern beskeder"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Invitér personer og acceptér anmodninger om at deltage"</string>
|
||||
<string name="screen_room_change_permissions_everyone">"Medlem"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Invitér andre"</string>
|
||||
<string name="screen_room_change_permissions_member_moderation">"Administrer medlemmer"</string>
|
||||
<string name="screen_room_change_permissions_messages_and_content">"Beskeder og indhold"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Admins og moderatorer"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Fjern personer og afvis anmodninger om at deltage"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Moderator"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Fjern personer"</string>
|
||||
<string name="screen_room_change_permissions_room_avatar">"Skift rummets avatar"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Rediger rum"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Redigér detaljer"</string>
|
||||
<string name="screen_room_change_permissions_room_name">"Skift rummets navn"</string>
|
||||
<string name="screen_room_change_permissions_room_topic">"Skift emne for rummet"</string>
|
||||
<string name="screen_room_change_permissions_send_messages">"Send beskeder"</string>
|
||||
|
|
@ -32,6 +34,12 @@
|
|||
<string name="screen_room_change_role_unsaved_changes_description">"Du har ændringer, der ikke er gemt."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Gem ændringer?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Der er ingen spærrede brugere i dette rum."</string>
|
||||
<plurals name="screen_room_member_list_banned_header_title">
|
||||
<item quantity="one">"%1$d Spærret"</item>
|
||||
<item quantity="other">"%1$d Spærret"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_empty_search_subtitle">"Tjek stavningen eller prøv en ny søgning"</string>
|
||||
<string name="screen_room_member_list_empty_search_title">"Ingen resultater for \"%1$s\""</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="one">"%1$d person"</item>
|
||||
<item quantity="other">"%1$d personer"</item>
|
||||
|
|
@ -43,8 +51,13 @@
|
|||
<string name="screen_room_member_list_manage_member_unban_title">"Fjern brugerens spærring fra rummet"</string>
|
||||
<string name="screen_room_member_list_mode_banned">"Spærret"</string>
|
||||
<string name="screen_room_member_list_mode_members">"Medlemmer"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Kun admins"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Admins og moderatorer"</string>
|
||||
<plurals name="screen_room_member_list_pending_header_title">
|
||||
<item quantity="one">"%1$d Inviteret"</item>
|
||||
<item quantity="other">"%1$d Inviteret"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_pending_status">"Afventer"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Administrator"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Moderator"</string>
|
||||
<string name="screen_room_member_list_role_owner">"Ejeren"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Medlemmer af rummet"</string>
|
||||
<string name="screen_room_member_list_unbanning_user">"Ophæver spærring af %1$s"</string>
|
||||
|
|
@ -57,10 +70,12 @@
|
|||
<string name="screen_room_roles_and_permissions_messages_and_content">"Beskeder og indhold"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Moderatorer"</string>
|
||||
<string name="screen_room_roles_and_permissions_owners">"Ejere"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Tilladelser"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Nulstil tilladelser"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"Når du nulstiller tilladelserne, mister du de nuværende indstillinger."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Nulstil tilladelser?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Roller"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Detaljer om rummet"</string>
|
||||
<string name="screen_room_roles_and_permissions_space_details">"Detaljer om gruppe"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Roller og tilladelser"</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,84 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="screen_room_change_permissions_administrators">"Administrator"</string>
|
||||
<string name="screen_room_change_permissions_ban_people">"Zabrana pristupa osobama"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Uklanjanje poruka"</string>
|
||||
<string name="screen_room_change_permissions_everyone">"Član"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Pozivanje osoba"</string>
|
||||
<string name="screen_room_change_permissions_member_moderation">"Upravljanje članovima"</string>
|
||||
<string name="screen_room_change_permissions_messages_and_content">"Poruke i sadržaj"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Moderator"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Uklanjanje osoba"</string>
|
||||
<string name="screen_room_change_permissions_room_avatar">"Promjena avatara"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Uredi pojedinosti"</string>
|
||||
<string name="screen_room_change_permissions_room_name">"Promjena imena"</string>
|
||||
<string name="screen_room_change_permissions_room_topic">"Promjena teme"</string>
|
||||
<string name="screen_room_change_permissions_send_messages">"Slanje poruka"</string>
|
||||
<string name="screen_room_change_role_administrators_title">"Uredi administratore"</string>
|
||||
<string name="screen_room_change_role_confirm_add_admin_description">"Nećete moći poništiti ovu radnju. Postavit ćete da korisnik ima isti položaj kao i vi."</string>
|
||||
<string name="screen_room_change_role_confirm_add_admin_title">"Dodati administratora?"</string>
|
||||
<string name="screen_room_change_role_confirm_change_owners_description">"Nećete moći poništiti ovu radnju. Prenosite vlasništvo na odabrane korisnike. Nakon što odete, to će biti trajno."</string>
|
||||
<string name="screen_room_change_role_confirm_change_owners_title">"Želite li prenijeti vlasništvo?"</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_action">"Degradiraj"</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_description">"Nećete moći poništiti ovu promjenu jer sami sebe degradirate. Ako ste posljednji privilegirani korisnik u sobi, nećete moći ponovno dobiti privilegije."</string>
|
||||
<string name="screen_room_change_role_confirm_demote_self_title">"Želite li se degradirati?"</string>
|
||||
<string name="screen_room_change_role_invited_member_name">"%1$s (na čekanju)"</string>
|
||||
<string name="screen_room_change_role_invited_member_name_android">"(na čekanju)"</string>
|
||||
<string name="screen_room_change_role_moderators_admin_section_footer">"Administratori automatski imaju moderatorske ovlasti"</string>
|
||||
<string name="screen_room_change_role_moderators_owner_section_footer">"Vlasnici automatski imaju administratorske ovlasti."</string>
|
||||
<string name="screen_room_change_role_moderators_title">"Uredi moderatore"</string>
|
||||
<string name="screen_room_change_role_owners_title">"Odaberi vlasnike"</string>
|
||||
<string name="screen_room_change_role_section_administrators">"Administratori"</string>
|
||||
<string name="screen_room_change_role_section_moderators">"Moderatori"</string>
|
||||
<string name="screen_room_change_role_section_users">"Članovi"</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_description">"Niste spremili sve promjene."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Želite li spremiti promjene?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Nema zabranjenih korisnika."</string>
|
||||
<plurals name="screen_room_member_list_banned_header_title">
|
||||
<item quantity="one">"%1$d zabranjen"</item>
|
||||
<item quantity="few">"%1$d zabranjena"</item>
|
||||
<item quantity="other">"%1$d zabranjenih"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_empty_search_subtitle">"Provjerite pravopis ili pokušajte s novim pretraživanjem"</string>
|
||||
<string name="screen_room_member_list_empty_search_title">"Nema rezultata za “%1$s”"</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="one">"%1$d osoba"</item>
|
||||
<item quantity="few">"%1$d osobe"</item>
|
||||
<item quantity="other">"%1$d ljudi"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_ban">"Zabrani korisnika"</string>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_kick">"Samo ukloni člana"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_action">"Poništi zabranu"</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_message">"Moći će se ponovno pridružiti ovoj sobi ako budu pozvani."</string>
|
||||
<string name="screen_room_member_list_manage_member_unban_title">"Poništi zabranu pristupa korisniku"</string>
|
||||
<string name="screen_room_member_list_mode_banned">"Zabranjeni"</string>
|
||||
<string name="screen_room_member_list_mode_members">"Članovi"</string>
|
||||
<plurals name="screen_room_member_list_pending_header_title">
|
||||
<item quantity="one">"%1$d pozvan"</item>
|
||||
<item quantity="few">"%1$d pozvana"</item>
|
||||
<item quantity="other">"%1$d pozvanih"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_pending_status">"Na čekanju"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Administrator"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Moderator"</string>
|
||||
<string name="screen_room_member_list_role_owner">"Vlasnik"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Članovi sobe"</string>
|
||||
<string name="screen_room_member_list_unbanning_user">"Uklanja se zabrana korisniku %1$s"</string>
|
||||
<string name="screen_room_roles_and_permissions_admins">"Administratori"</string>
|
||||
<string name="screen_room_roles_and_permissions_admins_and_owners">"Administratori i vlasnici"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_my_role">"Promijeni moju ulogu"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_member">"Degradiraj u člana"</string>
|
||||
<string name="screen_room_roles_and_permissions_change_role_demote_to_moderator">"Degradiraj u moderatora"</string>
|
||||
<string name="screen_room_roles_and_permissions_member_moderation">"Moderiranje članova"</string>
|
||||
<string name="screen_room_roles_and_permissions_messages_and_content">"Poruke i sadržaj"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Moderatori"</string>
|
||||
<string name="screen_room_roles_and_permissions_owners">"Vlasnici"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Dopuštenja"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Poništi dopuštenja"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"Nakon što poništite dopuštenja, izgubit ćete trenutačne postavke."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Želite li poništiti dopuštenja?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Uloge"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Pojedinosti o sobi"</string>
|
||||
<string name="screen_room_roles_and_permissions_space_details">"Pojedinosti o prostoru"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Uloge i dopuštenja"</string>
|
||||
</resources>
|
||||
|
|
@ -38,6 +38,8 @@
|
|||
<string name="screen_room_change_role_unsaved_changes_description">"Mentetlen módosításai vannak."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Menti a módosításokat?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Ebben a szobában nincsenek kitiltott felhasználók."</string>
|
||||
<string name="screen_room_member_list_empty_search_subtitle">"Ellenőrizze a helyesírást, vagy próbáljon meg egy új keresést"</string>
|
||||
<string name="screen_room_member_list_empty_search_title">"Nincs találat a következőre: „%1$s\""</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="one">"%1$d személy"</item>
|
||||
<item quantity="other">"%1$d személy"</item>
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="screen_room_change_permissions_administrators">"Doar administratori"</string>
|
||||
<string name="screen_room_change_permissions_administrators">"Administrator"</string>
|
||||
<string name="screen_room_change_permissions_ban_people">"Interziceți persoane"</string>
|
||||
<string name="screen_room_change_permissions_delete_messages">"Ștergeți mesajele"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Invitați persoane și acceptați cereri de alaturare"</string>
|
||||
<string name="screen_room_change_permissions_everyone">"Membru"</string>
|
||||
<string name="screen_room_change_permissions_invite_people">"Invitați persoane"</string>
|
||||
<string name="screen_room_change_permissions_member_moderation">"Gestionați membrii"</string>
|
||||
<string name="screen_room_change_permissions_messages_and_content">"Mesaje și conținut"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Administratori și moderatori"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Îndepărtați persoane și refuzați cereri de alăturare"</string>
|
||||
<string name="screen_room_change_permissions_moderators">"Moderator"</string>
|
||||
<string name="screen_room_change_permissions_remove_people">"Îndepărtați persoane"</string>
|
||||
<string name="screen_room_change_permissions_room_avatar">"Schimbați avatarul camerei"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Editați camera"</string>
|
||||
<string name="screen_room_change_permissions_room_details">"Editați detaliile"</string>
|
||||
<string name="screen_room_change_permissions_room_name">"Schimbă numele camerei"</string>
|
||||
<string name="screen_room_change_permissions_room_topic">"Schimbați subiectul camerei"</string>
|
||||
<string name="screen_room_change_permissions_send_messages">"Trimiteți mesaje"</string>
|
||||
|
|
@ -31,9 +33,17 @@
|
|||
<string name="screen_room_change_role_section_users">"Membri"</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_description">"Aveți modificări nesalvate."</string>
|
||||
<string name="screen_room_change_role_unsaved_changes_title">"Salvați modificările?"</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Nu există utilizatori interziși în această cameră."</string>
|
||||
<string name="screen_room_member_list_banned_empty">"Nu există utilizatori interziși."</string>
|
||||
<plurals name="screen_room_member_list_banned_header_title">
|
||||
<item quantity="one">"%1$d Interzis"</item>
|
||||
<item quantity="few">"%1$d Interziși"</item>
|
||||
<item quantity="other">"%1$d Interziși"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_empty_search_subtitle">"Verificați ortografia sau încercați o căutare nouă"</string>
|
||||
<string name="screen_room_member_list_empty_search_title">"Niciun rezultat pentru “%1$s”"</string>
|
||||
<plurals name="screen_room_member_list_header_title">
|
||||
<item quantity="one">"o persoană"</item>
|
||||
<item quantity="one">"%1$d persoană"</item>
|
||||
<item quantity="few">"%1$d persoane"</item>
|
||||
<item quantity="other">"%1$d persoane"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_manage_member_remove_confirmation_ban">"Îndepărtați și interziceți membrul"</string>
|
||||
|
|
@ -43,8 +53,14 @@
|
|||
<string name="screen_room_member_list_manage_member_unban_title">"Revocati excluderea din camera"</string>
|
||||
<string name="screen_room_member_list_mode_banned">"Excluși"</string>
|
||||
<string name="screen_room_member_list_mode_members">"Membri"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Doar administratori"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Administratori și moderatori"</string>
|
||||
<plurals name="screen_room_member_list_pending_header_title">
|
||||
<item quantity="one">"%1$d Invitat"</item>
|
||||
<item quantity="few">"%1$d Invitați"</item>
|
||||
<item quantity="other">"%1$d Invitați"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_member_list_pending_status">"În așteptare"</string>
|
||||
<string name="screen_room_member_list_role_administrator">"Administrator"</string>
|
||||
<string name="screen_room_member_list_role_moderator">"Moderator"</string>
|
||||
<string name="screen_room_member_list_role_owner">"Proprietar"</string>
|
||||
<string name="screen_room_member_list_room_members_header_title">"Membrii camerei"</string>
|
||||
<string name="screen_room_member_list_unbanning_user">"Se anulează interzicerea lui %1$s"</string>
|
||||
|
|
@ -57,10 +73,12 @@
|
|||
<string name="screen_room_roles_and_permissions_messages_and_content">"Mesaje și conținut"</string>
|
||||
<string name="screen_room_roles_and_permissions_moderators">"Moderatori"</string>
|
||||
<string name="screen_room_roles_and_permissions_owners">"Proprietari"</string>
|
||||
<string name="screen_room_roles_and_permissions_permissions_header">"Permisiuni"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset">"Resetați permisiunile"</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_description">"După ce resetați permisiunile, veți pierde setările curente."</string>
|
||||
<string name="screen_room_roles_and_permissions_reset_confirm_title">"Resetați permisiunile?"</string>
|
||||
<string name="screen_room_roles_and_permissions_roles_header">"Roluri"</string>
|
||||
<string name="screen_room_roles_and_permissions_room_details">"Detaliile camerei"</string>
|
||||
<string name="screen_room_roles_and_permissions_space_details">"Detalii spațiu"</string>
|
||||
<string name="screen_room_roles_and_permissions_title">"Roluri și permisiuni"</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -256,44 +256,48 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - UserSelectionToggle adds and removes users from the selected user list`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(room = room)
|
||||
val userMember = roomMemberList.first { it.role == RoomMember.Role.User }
|
||||
presenter.test {
|
||||
skipItems(1)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.selectedUsers).hasSize(1)
|
||||
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
assertThat(awaitItem().selectedUsers).hasSize(2)
|
||||
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
assertThat(awaitItem().selectedUsers).hasSize(1)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `present - hasPendingChanges is true when the initial selected users don't match the new ones`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(room = room)
|
||||
val userMember = roomMemberList.first { it.role == RoomMember.Role.User }
|
||||
presenter.test {
|
||||
skipItems(1)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.hasPendingChanges).isFalse()
|
||||
assertThat(initialState.selectedUsers).hasSize(1)
|
||||
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
with(awaitItem()) {
|
||||
assertThat(selectedUsers).hasSize(2)
|
||||
assertThat(hasPendingChanges).isTrue()
|
||||
}
|
||||
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
with(awaitItem()) {
|
||||
assertThat(selectedUsers).hasSize(1)
|
||||
assertThat(hasPendingChanges).isFalse()
|
||||
|
|
@ -303,9 +307,10 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - Exit will display success false if no pending changes`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(room = room)
|
||||
presenter.test {
|
||||
|
|
@ -321,9 +326,10 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - CloseDialog will remove exit confirmation`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(room = room)
|
||||
presenter.test {
|
||||
|
|
@ -345,9 +351,10 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - Exit will display a confirmation dialog if there are pending changes, calling it again will actually exit`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(room = room)
|
||||
presenter.test {
|
||||
|
|
@ -371,12 +378,13 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - Save will display a confirmation when adding admins`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom(
|
||||
updateUserRoleResult = { Result.success(Unit) },
|
||||
baseRoom = FakeBaseRoom(updateMembersResult = { Result.success(Unit) }),
|
||||
).apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(role = RoomMember.Role.Admin, room = room)
|
||||
presenter.test {
|
||||
|
|
@ -395,9 +403,10 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - CloseDialog will remove the confirmation dialog`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom().apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Admin)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(role = RoomMember.Role.Admin, room = room)
|
||||
presenter.test {
|
||||
|
|
@ -419,25 +428,27 @@ class ChangeRolesPresenterTest {
|
|||
@Test
|
||||
fun `present - Save will just save the data for moderators`() = runTest {
|
||||
val analyticsService = FakeAnalyticsService()
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom(
|
||||
updateUserRoleResult = { Result.success(Unit) },
|
||||
baseRoom = FakeBaseRoom(updateMembersResult = { Result.success(Unit) }),
|
||||
).apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(RoomMember.Role.Moderator)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(
|
||||
role = RoomMember.Role.Moderator,
|
||||
room = room,
|
||||
analyticsService = analyticsService
|
||||
)
|
||||
val userMember = roomMemberList.first { it.role == RoomMember.Role.User }
|
||||
presenter.test {
|
||||
skipItems(1)
|
||||
skipItems(2)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.selectedUsers).isEmpty()
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
assertThat(initialState.selectedUsers).hasSize(1)
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
awaitItem().also {
|
||||
assertThat(it.selectedUsers).hasSize(1)
|
||||
assertThat(it.selectedUsers).hasSize(2)
|
||||
it.eventSink(ChangeRolesEvent.Save)
|
||||
}
|
||||
assertThat(awaitItem().savingState).isInstanceOf(AsyncAction.Loading::class.java)
|
||||
|
|
@ -516,20 +527,22 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
@Test
|
||||
fun `present - Save can handle failures and CloseDialog clears them`() = runTest {
|
||||
val roomMemberList = aRoomMemberList()
|
||||
val room = FakeJoinedRoom(
|
||||
updateUserRoleResult = { Result.failure(IllegalStateException("Failed")) }
|
||||
).apply {
|
||||
givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList()))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsWithRole(role = RoomMember.Role.Moderator, userId = A_USER_ID)))
|
||||
givenRoomMembersState(RoomMembersState.Ready(roomMemberList))
|
||||
givenRoomInfo(aRoomInfo(roomPowerLevels = roomPowerLevelsFromRoomMemberList(roomMemberList)))
|
||||
}
|
||||
val presenter = createChangeRolesPresenter(role = RoomMember.Role.Moderator, room = room)
|
||||
val userMember = roomMemberList.first { it.role == RoomMember.Role.User }
|
||||
presenter.test {
|
||||
skipItems(1)
|
||||
skipItems(2)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.selectedUsers).isEmpty()
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
assertThat(initialState.selectedUsers).hasSize(1)
|
||||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(userMember.toMatrixUser()))
|
||||
awaitItem().also {
|
||||
assertThat(it.selectedUsers).hasSize(1)
|
||||
assertThat(it.selectedUsers).hasSize(2)
|
||||
it.eventSink(ChangeRolesEvent.Save)
|
||||
}
|
||||
val loadingState = awaitItem()
|
||||
|
|
@ -553,13 +566,12 @@ class ChangeRolesPresenterTest {
|
|||
}
|
||||
}
|
||||
|
||||
private fun roomPowerLevelsWithRole(
|
||||
role: RoomMember.Role,
|
||||
userId: UserId = A_USER_ID,
|
||||
private fun roomPowerLevelsFromRoomMemberList(
|
||||
roomMemberList: List<RoomMember>,
|
||||
): RoomPowerLevels {
|
||||
return RoomPowerLevels(
|
||||
values = defaultRoomPowerLevelValues(),
|
||||
users = persistentMapOf(userId to role.powerLevel)
|
||||
users = roomMemberList.associate { it.userId to it.role.powerLevel }.toImmutableMap()
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue