Files
NianAIGC/backend/internal/postgres/usage_test.go

34 lines
1.0 KiB
Go

package postgres
import (
"context"
"strings"
"testing"
"git.nianxx.cn/wangxuming/NianAIGC/backend/internal/usage"
)
func TestInsertUsageEventUsesJobConflictForDedupe(t *testing.T) {
q := &fakeQuerier{}
db := NewDatabase(Config{Backend: BackendPostgres}, q)
_, inserted, err := db.InsertUsageEvent(context.Background(), usage.Event{ID: "e", JobID: "j", OwnerID: "a", Source: "platform", Quantity: 1})
if err != nil || inserted {
t.Fatalf("inserted=%v err=%v", inserted, err)
}
if q.sql != InsertUsageEventSQL || !strings.Contains(q.sql, "ON CONFLICT (job_id) DO NOTHING") {
t.Fatalf("sql=%q", q.sql)
}
}
func TestListUsageEventsUsesExplicitColumnsAndFilters(t *testing.T) {
q := &fakeQuerier{}
db := NewDatabase(Config{Backend: BackendPostgres}, q)
_, err := db.ListUsageEvents(context.Background(), usage.Filters{OwnerID: "a", OrganizationID: "o", From: "2026-01-01", To: "2026-02-01"})
if err != nil {
t.Fatal(err)
}
if q.sql != ListUsageEventsSQL || len(q.args) != 4 {
t.Fatalf("sql=%q args=%#v", q.sql, q.args)
}
}