feat: 增加群聊消息查询条件

This commit is contained in:
richjohnrambo
2026-09-07 21:52:55 +08:00
parent 8ff9160113
commit 402dfb0d5a
2 changed files with 32 additions and 1 deletions
+19
View File
@@ -2,6 +2,8 @@ package main
import (
"errors"
"net/http/httptest"
"reflect"
"strings"
"testing"
@@ -75,6 +77,23 @@ func TestMessageQuerySpecsExposeAdminFields(t *testing.T) {
}
}
func TestGroupMessageQuerySupportsOperationalFilters(t *testing.T) {
req := httptest.NewRequest("GET", "/?seq_id=42&sender_username=alice&sender_nickname=%E5%B0%8F%E6%98%8E&group_name=%E6%B5%8B%E8%AF%95%E7%BE%A4", nil)
query, _, args, _, _, err := buildInternalAdminListQuery(req, groupMessagesInternalQuerySpec(), "")
if err != nil {
t.Fatal(err)
}
for _, clause := range []string{"m.seqid = ?", "u.username LIKE ?", "p.nickname LIKE ?", "gs.name LIKE ?"} {
if !strings.Contains(query, clause) {
t.Errorf("group message query missing %q: %s", clause, query)
}
}
want := []any{int64(42), "%alice%", "%小明%", "%测试群%"}
if !reflect.DeepEqual(args, want) {
t.Fatalf("unexpected filter arguments: got %#v, want %#v", args, want)
}
}
func TestRedactClientMessageForLog(t *testing.T) {
raw := []byte(`{"login":{"id":"1","scheme":"basic","secret":"YWxpY2U6YWxpY2UxMjM="},"acc":{"secret":"account-secret","tmpsecret":"temp-secret"}}`)
redacted := string(redactClientMessageForLog(raw))