feat: complete 2.0.7.12 platform overhaul

This commit is contained in:
2026-08-16 19:33:03 +08:00
parent 73555cd04c
commit c9fa6f7a88
159 changed files with 13243 additions and 2539 deletions
@@ -0,0 +1,80 @@
package db
import (
"path/filepath"
"testing"
"time"
"ymhut-box/server/unified-management/internal/config"
)
func TestFeedbackSummaryPageOmitsHeavyDetailFields(t *testing.T) {
store := openAdminPerformanceStore(t)
defer store.Close()
item := Feedback{Code: "FB-SUMMARY-1", Title: "Summary", Body: "large private body", SummaryText: "short", Status: "new"}
if err := store.InsertFeedback(item); err != nil {
t.Fatal(err)
}
items, total, err := store.ListFeedbackSummariesFiltered(1, 20, FeedbackFilters{})
if err != nil || total != 1 || len(items) != 1 {
t.Fatalf("summary list total=%d items=%d err=%v", total, len(items), err)
}
if items[0].Body != "" || items[0].SummaryText != "short" {
t.Fatalf("summary list loaded heavy fields: %#v", items[0])
}
detail, err := store.GetFeedback("FB-SUMMARY-1")
if err != nil || detail.Body != "large private body" {
t.Fatalf("detail body=%q err=%v", detail.Body, err)
}
}
func TestSystemLogsUseFilteredDatabasePagination(t *testing.T) {
store := openAdminPerformanceStore(t)
defer store.Close()
if err := store.InsertAudit(AuditLog{Actor: "admin", Type: "release.saved", Target: "2.0", Message: "published"}); err != nil {
t.Fatal(err)
}
if err := store.RecordSourceCall(SourceCall{SourceID: "music", Status: "ok", LatencyMS: 30, Client: "test"}); err != nil {
t.Fatal(err)
}
page, err := store.ListSystemLogsPage(SystemLogFilters{Page: 1, PerPage: 1})
if err != nil || page.Total < 2 || len(page.Items) != 1 {
t.Fatalf("system log page=%#v err=%v", page, err)
}
filtered, err := store.ListSystemLogsPage(SystemLogFilters{Page: 1, PerPage: 10, Category: "client", Query: "music"})
if err != nil || filtered.Total != 1 || filtered.Items[0].Category != "client" {
t.Fatalf("filtered system logs=%#v err=%v", filtered, err)
}
}
func TestDashboardWindowIncludesSummaryAndGeneratedMetadata(t *testing.T) {
store := openAdminPerformanceStore(t)
defer store.Close()
source, err := store.UpsertSource(Source{CategoryID: "network", CategoryName: "网络", SourceID: "status", Name: "状态", APIURL: "https://example.com", Enabled: true, EnabledSet: true, ClientVisible: true, ClientVisibleSet: true})
if err != nil {
t.Fatal(err)
}
if err := store.RecordSourceCheck(source.ID, "ok", 42, ""); err != nil {
t.Fatal(err)
}
overview, err := store.DashboardOverviewWindow(60, time.Now().UTC().Add(-time.Hour).Format(time.RFC3339))
if err != nil {
t.Fatal(err)
}
if overview["generatedAt"] == "" || len(overview["sourceRows"].([]map[string]any)) != 1 {
t.Fatalf("dashboard metadata missing: %#v", overview)
}
}
func openAdminPerformanceStore(t *testing.T) *Store {
t.Helper()
root := t.TempDir()
store, err := Open(&config.Config{
StorageDir: root,
Database: config.DatabaseConfig{Provider: "sqlite", SQLitePath: filepath.Join(root, "admin-performance.sqlite"), HealthIntervalSec: 3600, MaxOpenConns: 2, MaxIdleConns: 1},
})
if err != nil {
t.Fatal(err)
}
return store
}