fix: handle backend issue list regressions

This commit is contained in:
richjohnrambo
2026-09-30 15:35:03 +08:00
parent 7685fb0c02
commit 99ae6328ff
8 changed files with 207 additions and 5 deletions
+73
View File
@@ -1272,6 +1272,55 @@ func TestShouldTryHotMessageFallback(t *testing.T) {
}
}
func TestShouldTryHotMessageSupplement(t *testing.T) {
opts := &types.QueryOpt{Since: 41, Before: 54, Limit: 20}
if !shouldTryHotMessageSupplement(types.TopicCatGrp, opts, 9) {
t.Fatal("expected hot message supplement for partial recent group range")
}
if shouldTryHotMessageSupplement(types.TopicCatGrp, opts, 13) {
t.Fatal("did not expect supplement when range is complete")
}
if shouldTryHotMessageSupplement(types.TopicCatP2P, opts, 9) {
t.Fatal("did not expect supplement for p2p topic")
}
if shouldTryHotMessageSupplement(types.TopicCatGrp, &types.QueryOpt{Since: 41, Before: 54, Limit: 20, IdRanges: []types.Range{{Low: 41, Hi: 54}}}, 9) {
t.Fatal("did not expect supplement for explicit id ranges")
}
}
func TestMergeHotMessageSupplementFillsRecentRangeGaps(t *testing.T) {
opts := &types.QueryOpt{Since: 41, Before: 54, Limit: 20}
messages := []types.Message{
{SeqId: 53, Content: "db-53"},
{SeqId: 52, Content: "db-52"},
{SeqId: 51, Content: "db-51"},
{SeqId: 50, Content: "db-50"},
{SeqId: 49, Content: "db-49"},
{SeqId: 47, Content: "db-47"},
{SeqId: 46, Content: "db-46"},
{SeqId: 42, Content: "db-42"},
{SeqId: 41, Content: "db-41"},
}
hotMessages := make([]types.Message, 0, 13)
for seq := int64(53); seq >= 41; seq-- {
hotMessages = append(hotMessages, types.Message{SeqId: seq, Content: "hot"})
}
merged := mergeHotMessageSupplement(messages, hotMessages, opts)
if len(merged) != 13 {
t.Fatalf("merged len = %d, want 13: %#v", len(merged), merged)
}
for i, msg := range merged {
wantSeq := int64(53 - i)
if msg.SeqId != wantSeq {
t.Fatalf("merged[%d].SeqId = %d, want %d", i, msg.SeqId, wantSeq)
}
if msg.SeqId == 53 && msg.Content != "db-53" {
t.Fatalf("database message should win duplicate seqs, got %#v", msg.Content)
}
}
}
func TestFilterHotMessagesForUserSkipsDeleted(t *testing.T) {
uid := types.Uid(1)
now := time.Now()
@@ -3794,6 +3843,30 @@ func TestMessageAttachmentURLsDeduplicatesExplicitAndContentFileID(t *testing.T)
}
}
func TestMessageAttachmentURLsFindsDraftyEntityRefs(t *testing.T) {
msg := &ClientComMessage{
Pub: &MsgClientPub{
Content: map[string]any{
"txt": "video",
"ent": []any{
map[string]any{
"tp": "EX",
"data": map[string]any{
"mime": "video/mp4",
"ref": "/v0/file/s/KJ0Qlrk4Gzw.mp4",
},
},
},
},
},
}
attachments := messageAttachmentURLs(msg)
if len(attachments) != 1 || attachments[0] != "/v0/file/s/KJ0Qlrk4Gzw" {
t.Fatalf("unexpected Drafty attachments: %#v", attachments)
}
}
func TestHandleBroadcastInfoChannelWithMultipleReaders(t *testing.T) {
topicName := "grpTest"
chanName := "chnTest"