ccpoad / internal /app /active_requests_test.go
anyalerob's picture
Upload folder using huggingface_hub
2986042 verified
Raw
History Blame Contribute Delete
2.07 kB
package app
import (
"math"
"strings"
"testing"
"time"
)
func TestActiveRequestManager_ListSnapshotAndSort(t *testing.T) {
m := newActiveRequestManager()
id1 := m.Register(time.UnixMilli(100), "m1", "1.1.1.1", false)
id2 := m.Register(time.UnixMilli(200), "m2", "2.2.2.2", true)
got := m.List()
if len(got) != 2 {
t.Fatalf("expected 2 requests, got %d", len(got))
}
if got[0].ID != id2 || got[1].ID != id1 {
t.Fatalf("expected order [%d,%d], got [%d,%d]", id2, id1, got[0].ID, got[1].ID)
}
// List() 必须返回快照:改返回值不应影响内部状态
got[0].Model = "hacked"
got2 := m.List()
if got2[0].Model != "m2" {
t.Fatalf("expected snapshot copy, got model=%q", got2[0].Model)
}
}
func TestActiveRequestManager_UpdateMasksKey(t *testing.T) {
m := newActiveRequestManager()
id := m.Register(time.UnixMilli(100), "m", "1.1.1.1", false)
rawKey := "sk-1234567890abcdef"
m.Update(id, 1, "ch", "anthropic", rawKey, 0, 1.0)
got := m.List()
if len(got) != 1 {
t.Fatalf("expected 1 request, got %d", len(got))
}
if got[0].APIKeyUsed == rawKey {
t.Fatalf("expected masked key, got raw")
}
if got[0].APIKeyUsed != "****" && !strings.Contains(got[0].APIKeyUsed, ".") {
t.Fatalf("expected masked key format, got %q", got[0].APIKeyUsed)
}
}
func TestActiveRequestManager_BytesAndFirstByteTime(t *testing.T) {
m := newActiveRequestManager()
id := m.Register(time.UnixMilli(100), "m", "1.1.1.1", true)
m.AddBytes(id, 10)
m.AddBytes(id, 0) // no-op
m.SetClientFirstByteTime(id, -1*time.Second) // must not poison the value
m.SetClientFirstByteTime(id, 750*time.Millisecond) // first set wins
m.SetClientFirstByteTime(id, 1250*time.Millisecond) // ignored
got := m.List()
if len(got) != 1 {
t.Fatalf("expected 1 request, got %d", len(got))
}
if got[0].BytesReceived != 10 {
t.Fatalf("expected bytes_received=10, got %d", got[0].BytesReceived)
}
if math.Abs(got[0].ClientFirstByteTime-0.75) > 1e-6 {
t.Fatalf("expected client_first_byte_time≈0.75, got %f", got[0].ClientFirstByteTime)
}
}