仓库自包含化:Docker/CI/文档/规范入库,路由分组拆分
CI / test (push) Successful in 15s

This commit is contained in:
Wang Defa
2026-07-09 19:18:04 +08:00
parent b9a3e97e84
commit 3e0389c1e9
83 changed files with 20241 additions and 248 deletions
+41
View File
@@ -0,0 +1,41 @@
package config
import (
"strings"
"testing"
)
func TestDBFromEnv(t *testing.T) {
tests := []struct {
name string
driver string
dsn string
wantDriver string
wantErr string
}{
{name: "缺省走 sqlite", wantDriver: "sqlite"},
{name: "postgres 带 DSN", driver: "postgres", dsn: "host=x", wantDriver: "postgres"},
{name: "mysql 缺 DSN 报错", driver: "mysql", wantErr: "DB_DSN is required"},
{name: "postgres 缺 DSN 报错", driver: "postgres", wantErr: "DB_DSN is required"},
{name: "非法驱动报错", driver: "oracle", wantErr: "unsupported DB_DRIVER"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Setenv("DB_DRIVER", tt.driver)
t.Setenv("DB_DSN", tt.dsn)
driver, dsn, err := dbFromEnv()
if tt.wantErr != "" {
if err == nil || !strings.Contains(err.Error(), tt.wantErr) {
t.Fatalf("err = %v, want contains %q", err, tt.wantErr)
}
return
}
if err != nil {
t.Fatalf("dbFromEnv: %v", err)
}
if driver != tt.wantDriver || dsn != tt.dsn {
t.Fatalf("got (%q,%q), want (%q,%q)", driver, dsn, tt.wantDriver, tt.dsn)
}
})
}
}