GET类型通道创建端点;修改完善返回格式处理逻辑;动态刷新remote令牌

This commit is contained in:
2025-04-02 16:08:55 +08:00
parent 1b8e118fae
commit 13794c2d27
12 changed files with 639 additions and 673 deletions

View File

@@ -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
}