feat(t229): load ERP credentials from dotenv
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -16,6 +17,40 @@ import (
|
||||
"cmroubao/backend-api/internal/platform/migration"
|
||||
)
|
||||
|
||||
func TestLoadConfigUsesERPEnvironmentFile(t *testing.T) {
|
||||
environmentFile := filepath.Join(t.TempDir(), ".env")
|
||||
err := os.WriteFile(environmentFile, []byte(
|
||||
"CMROUBAO_SHUNYUNBAO_URL=https://erp.example.test\n"+
|
||||
"CMROUBAO_SHUNYUNBAO_USERNAME=dotenv-user\n"+
|
||||
"CMROUBAO_SHUNYUNBAO_PASSWORD=dotenv-password\n",
|
||||
), 0o600)
|
||||
if err != nil {
|
||||
t.Fatalf("os.WriteFile() error = %v", err)
|
||||
}
|
||||
|
||||
cfg, err := loadConfig(func(name string) (string, bool) {
|
||||
if name == config.ShunyunbaoUsernameEnvironment {
|
||||
return "process-user", true
|
||||
}
|
||||
return "", false
|
||||
}, environmentFile)
|
||||
if err != nil {
|
||||
t.Fatalf("loadConfig() error = %v", err)
|
||||
}
|
||||
if cfg.ShunyunbaoURL != "https://erp.example.test" ||
|
||||
cfg.ShunyunbaoUsername != "process-user" ||
|
||||
cfg.ShunyunbaoPassword != "dotenv-password" {
|
||||
t.Fatalf(
|
||||
"ERP config = %#v",
|
||||
struct {
|
||||
URL string
|
||||
Username string
|
||||
Password string
|
||||
}{cfg.ShunyunbaoURL, cfg.ShunyunbaoUsername, cfg.ShunyunbaoPassword},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
func TestShutdownServerForceClosesAfterGracefulTimeout(t *testing.T) {
|
||||
handlerStarted := make(chan struct{})
|
||||
releaseHandler := make(chan struct{})
|
||||
|
||||
Reference in New Issue
Block a user