fix group member display names

This commit is contained in:
richjohnrambo
2026-09-10 21:57:25 +08:00
parent 928a45ecfb
commit 75d1aabcb0
3 changed files with 52 additions and 21 deletions
+23 -6
View File
@@ -3895,13 +3895,24 @@ func TestServeIMGroupMembers(t *testing.T) {
expectIMBearer(t, ctrl, "token-1", 7, 42)
oldSubs := store.Subs
oldGroupBusiness := store.GroupBusiness
oldRelations := store.Relations
subs := mock_store.NewMockSubsPersistenceInterface(ctrl)
store.Subs = subs
groupStore := &testGroupBusinessStore{listMembersNext: "101"}
store.GroupBusiness = groupStore
store.Relations = &testRelationsStore{context: &types.RelationshipContext{
TenantID: 7,
UserID: 42,
PeerID: types.Uid(101),
Topic: types.Uid(42).P2PName(types.Uid(101)),
Relationship: types.RelationshipFriend,
CanSend: true,
Remark: "老王",
}}
defer func() {
store.Subs = oldSubs
store.GroupBusiness = oldGroupBusiness
store.Relations = oldRelations
}()
subs.EXPECT().Get(types.TenantID(7), "grpMention", types.Uid(42), false).Return(&types.Subscription{
@@ -3918,6 +3929,7 @@ func TestServeIMGroupMembers(t *testing.T) {
Role: types.GroupMemberRoleMember,
ModeWant: types.ModeCPublic,
ModeGiven: types.ModeCPublic,
Nickname: "群里小王",
Public: map[string]any{"display_name": "Alice", "avatar_file_id": "alice.jpg"},
MemberStatus: types.GroupMemberStatusActive,
}}
@@ -3933,7 +3945,8 @@ func TestServeIMGroupMembers(t *testing.T) {
}
data := decodeIMHTTPResponse(t, rec).Data.(map[string]any)
items := data["items"].([]any)
if len(items) != 1 || items[0].(map[string]any)["display_name"] != "Alice" ||
if len(items) != 1 || items[0].(map[string]any)["display_name"] != "老王" ||
items[0].(map[string]any)["group_nickname"] != "群里小王" ||
items[0].(map[string]any)["avatar_file_id"] != "alice.jpg" ||
items[0].(map[string]any)["mentionable"] != true {
t.Fatalf("unexpected members response: %#v", data)
@@ -3956,7 +3969,7 @@ func TestGroupMemberPayloadUserIDFormats(t *testing.T) {
User: raw.String(),
ModeWant: types.ModeJoin,
ModeGiven: types.ModeJoin,
}, true)
}, true, "")
if fromRaw["user_id"] != raw.UserId() {
t.Fatalf("raw uid user_id: got %#v, want %s", fromRaw["user_id"], raw.UserId())
}
@@ -3966,7 +3979,7 @@ func TestGroupMemberPayloadUserIDFormats(t *testing.T) {
User: prefixed.UserId(),
ModeWant: types.ModeJoin,
ModeGiven: types.ModeJoin,
}, true)
}, true, "")
if fromPrefixed["user_id"] != prefixed.UserId() {
t.Fatalf("prefixed uid user_id: got %#v, want %s", fromPrefixed["user_id"], prefixed.UserId())
}
@@ -3989,8 +4002,9 @@ func TestServeIMGroupMemberProfile(t *testing.T) {
UserID: 42,
PeerID: peer,
Topic: types.Uid(42).P2PName(peer),
Relationship: types.RelationshipNone,
CanSend: false,
Relationship: types.RelationshipFriend,
CanSend: true,
Remark: "老王",
}}
defer func() {
store.Subs = oldSubs
@@ -4024,9 +4038,12 @@ func TestServeIMGroupMemberProfile(t *testing.T) {
t.Fatalf("status: got %d, want %d; body=%s", rec.Code, http.StatusOK, rec.Body.String())
}
data := decodeIMHTTPResponse(t, rec).Data.(map[string]any)
if data["relationship"] != types.RelationshipNone || data["signature"] != "hi" || data["role"] != "member" {
if data["relationship"] != types.RelationshipFriend || data["signature"] != "hi" || data["role"] != "member" {
t.Fatalf("unexpected group member profile response: %#v", data)
}
if data["display_name"] != "老王" {
t.Fatalf("group member profile display name should use friend remark: %#v", data)
}
}
func TestServeIMGroupMemberProfileRejectsUserTopic(t *testing.T) {