include join request user profiles

This commit is contained in:
richjohnrambo
2026-09-11 18:04:01 +08:00
parent 1d433971d4
commit f1dfffcfb5
3 changed files with 88 additions and 3 deletions
+18
View File
@@ -4765,16 +4765,20 @@ func TestServeIMGroupInvitationCreatesApprovalRequest(t *testing.T) {
mockStore.EXPECT().GetUidString().Return("request")
oldSubs := store.Subs
oldGroupBusiness := store.GroupBusiness
oldUsers := store.Users
subs := mock_store.NewMockSubsPersistenceInterface(ctrl)
users := mock_store.NewMockUsersPersistenceInterface(ctrl)
groupStore := &testGroupBusinessStore{settings: &types.GroupSettings{
Topic: "grpAlpha", OwnerUserID: types.Uid(42), Name: "Alpha", GroupStatus: types.GroupStatusActive,
JoinApproval: true, MemberInvite: true, MaxAdminCount: groupMaxAdminCount, Version: 1,
}}
store.Subs = subs
store.Users = users
store.GroupBusiness = groupStore
defer func() {
store.Subs = oldSubs
store.GroupBusiness = oldGroupBusiness
store.Users = oldUsers
}()
owner := types.Uid(42)
target := types.Uid(43)
@@ -4817,6 +4821,10 @@ func TestServeIMGroupInvitationCreatesApprovalRequest(t *testing.T) {
t.Fatalf("unexpected summary response: %#v", summary)
}
users.EXPECT().GetAll(types.TenantID(7), target, owner).Return([]types.User{
{ObjHeader: types.ObjHeader{Id: target.String()}, Public: map[string]any{"display_name": "申请人", "avatar_file_id": "avatar-target.jpg"}},
{ObjHeader: types.ObjHeader{Id: owner.String()}, Public: map[string]any{"display_name": "邀请人", "avatar_file_id": "avatar-owner.jpg"}},
}, nil)
req = httptest.NewRequest(http.MethodGet, "/v1/im/groups/grpAlpha/join-requests?status=pending", nil)
req.Header.Set("Authorization", "Bearer token-1")
rec = httptest.NewRecorder()
@@ -4829,6 +4837,16 @@ func TestServeIMGroupInvitationCreatesApprovalRequest(t *testing.T) {
if len(requests) != 1 || requests[0].(map[string]any)["request_id"] != "gjr_request" {
t.Fatalf("unexpected join requests response: %#v", list)
}
requestItem := requests[0].(map[string]any)
if requestItem["display_name"] != "申请人" || requestItem["avatar_file_id"] != "avatar-target.jpg" {
t.Fatalf("join request applicant profile was not populated: %#v", requestItem)
}
if requestItem["inviter_display_name"] != "邀请人" || requestItem["inviter_avatar_file_id"] != "avatar-owner.jpg" {
t.Fatalf("join request inviter profile was not populated: %#v", requestItem)
}
if user := requestItem["user"].(map[string]any); user["display_name"] != "申请人" || user["avatar_file_id"] != "avatar-target.jpg" {
t.Fatalf("join request user object was not populated: %#v", user)
}
}
func TestServeIMGroupInvitationAccept(t *testing.T) {