feat: 建立商品目录接入基础 (#132)

This commit is contained in:
chengma
2026-08-11 10:00:07 +08:00
parent b1a78f3e2f
commit 107ee5ce85
13 changed files with 631 additions and 7 deletions
+26
View File
@@ -301,3 +301,29 @@ func TestLoad_配置文件损坏时报明确错误(t *testing.T) {
t.Fatal("格式错误的 YAML 应该返回错误")
}
}
func TestCatalogIntegrationConfig_环境覆盖且不泄露Token(t *testing.T) {
t.Setenv(catalogSourceEnv, "script-a")
t.Setenv(catalogTokenEnv, "0123456789abcdef0123456789abcdef")
cfg, err := mergeCatalogIntegration(CatalogIntegrationConfig{Source: "yaml", Token: "yaml-token-that-is-long-enough-123456"})
if err != nil {
t.Fatal(err)
}
if cfg.Source != "script-a" || cfg.Token != "0123456789abcdef0123456789abcdef" {
t.Fatalf("环境变量未覆盖:%s", cfg)
}
if strings.Contains(cfg.String(), cfg.Token) || !strings.Contains(cfg.String(), "****") {
t.Fatalf("配置字符串泄露 Token:%s", cfg)
}
}
func TestCatalogIntegrationConfig_弱Token拒绝且留空可禁用(t *testing.T) {
t.Setenv(catalogSourceEnv, "")
t.Setenv(catalogTokenEnv, "")
if cfg, err := mergeCatalogIntegration(CatalogIntegrationConfig{}); err != nil || cfg.Enabled() {
t.Fatalf("留空应安全禁用:cfg=%s err=%v", cfg, err)
}
if _, err := mergeCatalogIntegration(CatalogIntegrationConfig{Token: "too-short"}); err == nil || !strings.Contains(err.Error(), catalogTokenEnv) {
t.Fatalf("弱 Token 应被拒绝:%v", err)
}
}