//go:build unit package testutil import ( "time" "github.com/Wei-Shaw/sub2api/internal/service" ) // NewTestUser 创建一个可用的测试用户,可通过 opts 覆盖默认值。 func NewTestUser(opts ...func(*service.User)) *service.User { u := &service.User{ ID: 1, Email: "test@example.com", Username: "testuser", Role: "user", Balance: 100.0, Concurrency: 5, Status: service.StatusActive, CreatedAt: time.Now(), UpdatedAt: time.Now(), } for _, opt := range opts { opt(u) } return u } // NewTestAccount 创建一个可用的测试账户,可通过 opts 覆盖默认值。 func NewTestAccount(opts ...func(*service.Account)) *service.Account { a := &service.Account{ ID: 1, Name: "test-account", Platform: service.PlatformAnthropic, Status: service.StatusActive, Schedulable: true, Concurrency: 5, Priority: 1, } for _, opt := range opts { opt(a) } return a } // NewTestAPIKey 创建一个可用的测试 API Key,可通过 opts 覆盖默认值。 func NewTestAPIKey(opts ...func(*service.APIKey)) *service.APIKey { groupID := int64(1) k := &service.APIKey{ ID: 1, UserID: 1, Key: "sk-test-key-12345678", Name: "test-key", GroupID: &groupID, Status: service.StatusActive, CreatedAt: time.Now(), UpdatedAt: time.Now(), } for _, opt := range opts { opt(k) } return k } // NewTestGroup 创建一个可用的测试分组,可通过 opts 覆盖默认值。 func NewTestGroup(opts ...func(*service.Group)) *service.Group { g := &service.Group{ ID: 1, Platform: service.PlatformAnthropic, Status: service.StatusActive, Hydrated: true, } for _, opt := range opts { opt(g) } return g }