Change position of GroupsV2 leave update message.

master
Alan Evans 2020-07-24 16:27:39 -03:00 committed by Greyson Parrelli
parent 8cb9ab3204
commit 745a7f76ea
2 changed files with 46 additions and 2 deletions

View File

@ -82,7 +82,7 @@ final class GroupsV2UpdateMessageProducer {
if (change.getEditor().isEmpty() || UuidUtil.UNKNOWN_UUID.equals(UuidUtil.fromByteString(change.getEditor()))) { if (change.getEditor().isEmpty() || UuidUtil.UNKNOWN_UUID.equals(UuidUtil.fromByteString(change.getEditor()))) {
describeUnknownEditorMemberAdditions(change, updates); describeUnknownEditorMemberAdditions(change, updates);
describeUnknownEditorMemberRemovals(change, updates);
describeUnknownEditorModifyMemberRoles(change, updates); describeUnknownEditorModifyMemberRoles(change, updates);
describeUnknownEditorInvitations(change, updates); describeUnknownEditorInvitations(change, updates);
describeUnknownEditorRevokedInvitations(change, updates); describeUnknownEditorRevokedInvitations(change, updates);
@ -93,13 +93,15 @@ final class GroupsV2UpdateMessageProducer {
describeUnknownEditorNewAttributeAccess(change, updates); describeUnknownEditorNewAttributeAccess(change, updates);
describeUnknownEditorNewMembershipAccess(change, updates); describeUnknownEditorNewMembershipAccess(change, updates);
describeUnknownEditorMemberRemovals(change, updates);
if (updates.isEmpty()) { if (updates.isEmpty()) {
describeUnknownEditorUnknownChange(updates); describeUnknownEditorUnknownChange(updates);
} }
} else { } else {
describeMemberAdditions(change, updates); describeMemberAdditions(change, updates);
describeMemberRemovals(change, updates);
describeModifyMemberRoles(change, updates); describeModifyMemberRoles(change, updates);
describeInvitations(change, updates); describeInvitations(change, updates);
describeRevokedInvitations(change, updates); describeRevokedInvitations(change, updates);
@ -110,6 +112,8 @@ final class GroupsV2UpdateMessageProducer {
describeNewAttributeAccess(change, updates); describeNewAttributeAccess(change, updates);
describeNewMembershipAccess(change, updates); describeNewMembershipAccess(change, updates);
describeMemberRemovals(change, updates);
if (updates.isEmpty()) { if (updates.isEmpty()) {
describeUnknownChange(change, updates); describeUnknownChange(change, updates);
} }

View File

@ -767,6 +767,30 @@ public final class GroupsV2UpdateMessageProducerTest {
"Alice changed who can edit group membership to \"All members\"."))); "Alice changed who can edit group membership to \"All members\".")));
} }
@Test
public void multiple_changes_leave_and_promote() {
DecryptedGroupChange change = changeBy(alice)
.deleteMember(alice)
.promoteToAdmin(bob)
.build();
assertThat(describeChange(change), is(Arrays.asList(
"Alice made Bob an admin.",
"Alice left the group.")));
}
@Test
public void multiple_changes_leave_and_promote_by_unknown() {
DecryptedGroupChange change = changeByUnknown()
.deleteMember(alice)
.promoteToAdmin(bob)
.build();
assertThat(describeChange(change), is(Arrays.asList(
"Bob is now an admin.",
"Alice is no longer in the group.")));
}
@Test @Test
public void multiple_changes_by_unknown() { public void multiple_changes_by_unknown() {
DecryptedGroupChange change = changeByUnknown() DecryptedGroupChange change = changeByUnknown()
@ -785,6 +809,22 @@ public final class GroupsV2UpdateMessageProducerTest {
"Who can edit group membership has been changed to \"All members\"."))); "Who can edit group membership has been changed to \"All members\".")));
} }
@Test
public void multiple_changes_join_and_leave_by_unknown() {
DecryptedGroupChange change = changeByUnknown()
.addMember(alice)
.promoteToAdmin(alice)
.deleteMember(alice)
.title("Updated title")
.build();
assertThat(describeChange(change), is(Arrays.asList(
"Alice joined the group.",
"Alice is now an admin.",
"The group name has changed to \"Updated title\".",
"Alice is no longer in the group.")));
}
// Group state without a change record // Group state without a change record
@Test @Test