40 lines
808 B
Go
40 lines
808 B
Go
package testutil
|
|
|
|
import (
|
|
"platform/pkg/orm"
|
|
"platform/web/models"
|
|
q "platform/web/queries"
|
|
"testing"
|
|
|
|
"github.com/glebarez/sqlite"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// SetupDBTest 创建一个基于 SQLite 内存数据库的 GORM 连接
|
|
func SetupDBTest(t *testing.T) *gorm.DB {
|
|
// 使用 SQLite 内存数据库
|
|
gormDB, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
if err != nil {
|
|
t.Fatalf("gorm 打开 SQLite 内存数据库失败: %v", err)
|
|
}
|
|
|
|
// 自动迁移数据表结构
|
|
err = gormDB.AutoMigrate(
|
|
&models.User{},
|
|
&models.Whitelist{},
|
|
&models.Resource{},
|
|
&models.ResourcePss{},
|
|
&models.Proxy{},
|
|
&models.Channel{},
|
|
)
|
|
if err != nil {
|
|
t.Fatalf("自动迁移表结构失败: %v", err)
|
|
}
|
|
|
|
// 设置全局数据库连接
|
|
q.SetDefault(gormDB)
|
|
orm.DB = gormDB
|
|
|
|
return gormDB
|
|
}
|