Files
cmautobuy/admin/mysql_public_tls_smoke_test.go
T

43 lines
1.0 KiB
Go

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