fix: join group directly when invitation needs no approval
This commit is contained in:
+7
-14
@@ -4900,8 +4900,7 @@ func TestServeIMGroupLeave(t *testing.T) {
|
||||
func TestServeIMGroupInvitationAddsNonMember(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
defer ctrl.Finish()
|
||||
mockStore := expectIMBearer(t, ctrl, "token-1", 7, 42)
|
||||
mockStore.EXPECT().GetUidString().Return("test")
|
||||
expectIMBearer(t, ctrl, "token-1", 7, 42)
|
||||
oldSubs := store.Subs
|
||||
oldGroupBusiness := store.GroupBusiness
|
||||
oldSecurity := store.Security
|
||||
@@ -4935,21 +4934,15 @@ func TestServeIMGroupInvitationAddsNonMember(t *testing.T) {
|
||||
}
|
||||
data := decodeIMHTTPResponse(t, rec).Data.(map[string]any)
|
||||
items := data["items"].([]any)
|
||||
if len(items) != 1 || items[0].(map[string]any)["status"] != types.GroupInvitationStatusPending {
|
||||
if len(items) != 1 || items[0].(map[string]any)["status"] != types.GroupInvitationStatusJoined {
|
||||
t.Fatalf("unexpected invitation response: %#v", data)
|
||||
}
|
||||
if len(groupStore.invitations) != 1 || groupStore.invitations[0].TargetUserID != target || groupStore.invitations[0].InvitationID != "ginv_test" {
|
||||
t.Fatalf("invitation was not persisted: %#v", groupStore.invitations)
|
||||
if len(groupStore.invitations) != 1 || groupStore.invitations[0].TargetUserID != target ||
|
||||
groupStore.invitations[0].Status != types.GroupInvitationStatusJoined {
|
||||
t.Fatalf("member was not joined directly: %#v", groupStore.invitations)
|
||||
}
|
||||
if len(securityStore.notifications) != 1 {
|
||||
t.Fatalf("expected one target notification, got %#v", securityStore.notifications)
|
||||
}
|
||||
notification := securityStore.notifications[0]
|
||||
if notification.UserID != target || notification.EventType != "group.invitation.created" {
|
||||
t.Fatalf("unexpected notification target/type: %#v", notification)
|
||||
}
|
||||
if notification.Action["type"] != "group_invitation_accept" || notification.Action["invitation_id"] != "ginv_test" || notification.Action["topic"] != "grpAlpha" {
|
||||
t.Fatalf("unexpected notification action: %#v", notification.Action)
|
||||
if len(securityStore.notifications) != 0 {
|
||||
t.Fatalf("direct invite should not create approval notification: %#v", securityStore.notifications)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user