package utils import ( "licserver/internal/model" "testing" "github.com/stretchr/testify/assert" "gorm.io/driver/sqlite" "gorm.io/gorm" ) // TestDB 创建测试数据库连接 func TestDB(t *testing.T) *gorm.DB { db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{}) assert.NoError(t, err) // 迁移测试表 err = db.AutoMigrate( &model.User{}, &model.Device{}, &model.DeviceModel{}, &model.LicenseCode{}, &model.LicenseLog{}, &model.AccessToken{}, &model.TokenLog{}, &model.Captcha{}, &model.PasswordResetToken{}, &model.FileUpload{}, &model.UploadChunk{}, ) assert.NoError(t, err) return db } // TestConfig 创建测试配置 func TestConfig() *Config { return &Config{ Server: ServerConfig{ Port: "8080", Mode: "test", }, Database: DatabaseConfig{ Type: "sqlite3", Path: ":memory:", }, JWT: JWTConfig{ Secret: "test-secret", Expire: "24h", }, Email: EmailConfig{ Host: "smtp.example.com", Port: 587, Username: "test@example.com", Password: "test-password", }, Upload: UploadConfig{ Path: "./test-uploads", }, Site: SiteConfig{ Title: "Test Site", Description: "Test Description", BaseURL: "http://localhost:8080", ICP: "Test ICP", Copyright: "Test Copyright", }, } }