feat: 支持 MySQL 公网 TLS CA 校验 (#86)

This commit is contained in:
chengma
2026-08-10 09:59:09 +08:00
parent 830ca58030
commit f0715ee273
10 changed files with 354 additions and 22 deletions
+42
View File
@@ -0,0 +1,42 @@
package main
import (
"net/http"
"net/http/httptest"
"os"
"testing"
"cmautobuy/admin/config"
"cmautobuy/admin/repository"
)
// TestAdmin_公网MySQLTLS页面冒烟走和 main 相同的数据库及路由组装路径。
// 只有显式开启时才连接线上 autobuy;测试只追加 schema migration,不清理业务表。
func TestAdmin_公网MySQLTLS页面冒烟(t *testing.T) {
if os.Getenv("CMAUTOBUY_MYSQL_PUBLIC_TLS_TEST") != "1" {
t.Skip("未启用公网 MySQL TLS 页面冒烟")
}
cfg, err := config.LoadDatabaseFromEnv()
if err != nil {
t.Fatal(err)
}
db, err := repository.OpenMySQL(cfg)
if err != nil {
t.Fatal(err)
}
defer db.Close()
if err := repository.MigrateMySQL(db); err != nil {
t.Fatal(err)
}
router, err := newRouter(db)
if err != nil {
t.Fatal(err)
}
request := httptest.NewRequest(http.MethodGet, "/", nil)
response := httptest.NewRecorder()
router.ServeHTTP(response, request)
if response.Code < 200 || response.Code >= 400 {
t.Fatalf("首页状态码=%d,期望成功或重定向", response.Code)
}
}