GET类型通道创建端点;修改完善返回格式处理逻辑;动态刷新remote令牌
This commit is contained in:
@@ -2,39 +2,38 @@ package testutil
|
||||
|
||||
import (
|
||||
"platform/pkg/orm"
|
||||
"platform/web/models"
|
||||
q "platform/web/queries"
|
||||
"testing"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
"gorm.io/driver/postgres"
|
||||
"github.com/glebarez/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// SetupDBTest 创建一个带有 sqlmock 的 GORM 数据库连接
|
||||
func SetupDBTest(t *testing.T) sqlmock.Sqlmock {
|
||||
|
||||
// 创建 sqlmock
|
||||
db, mock, err := sqlmock.New()
|
||||
// SetupDBTest 创建一个基于 SQLite 内存数据库的 GORM 连接
|
||||
func SetupDBTest(t *testing.T) *gorm.DB {
|
||||
// 使用 SQLite 内存数据库
|
||||
gormDB, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatalf("创建sqlmock失败: %v", err)
|
||||
t.Fatalf("gorm 打开 SQLite 内存数据库失败: %v", err)
|
||||
}
|
||||
|
||||
// 配置 gorm 连接
|
||||
gormDB, err := gorm.Open(postgres.New(postgres.Config{
|
||||
Conn: db,
|
||||
PreferSimpleProtocol: true, // 禁用 prepared statement 缓存
|
||||
}), &gorm.Config{})
|
||||
// 自动迁移数据表结构
|
||||
err = gormDB.AutoMigrate(
|
||||
&models.User{},
|
||||
&models.Whitelist{},
|
||||
&models.Resource{},
|
||||
&models.ResourcePss{},
|
||||
&models.Proxy{},
|
||||
&models.Channel{},
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("gorm 打开数据库连接失败: %v", err)
|
||||
t.Fatalf("自动迁移表结构失败: %v", err)
|
||||
}
|
||||
|
||||
// 设置全局数据库连接
|
||||
q.SetDefault(gormDB)
|
||||
orm.DB = gormDB
|
||||
|
||||
// 使用 t.Cleanup 确保测试结束后关闭数据库连接
|
||||
t.Cleanup(func() {
|
||||
db.Close()
|
||||
})
|
||||
|
||||
return mock
|
||||
return gormDB
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user