fix(setup): omit obsolete rate limit defaults

This commit is contained in:
wucm667
2026-09-28 08:50:36 +08:00
parent f45126c8ec
commit 512aa8bc93
2 changed files with 43 additions and 11 deletions
+43
View File
@@ -11,6 +11,7 @@ import (
"github.com/DATA-DOG/go-sqlmock"
"github.com/lib/pq"
"gopkg.in/yaml.v3"
)
func TestDecideAdminBootstrap(t *testing.T) {
@@ -231,6 +232,48 @@ func TestWriteConfigFileIncludesRedisUsername(t *testing.T) {
}
}
func TestWriteConfigFileOmitsObsoleteRateLimit(t *testing.T) {
t.Setenv("DATA_DIR", t.TempDir())
if err := writeConfigFile(&SetupConfig{
Redis: RedisConfig{Host: "redis", Port: 6379, Username: "app-user"},
Timezone: "UTC",
}); err != nil {
t.Fatalf("writeConfigFile() error = %v", err)
}
data, err := os.ReadFile(GetConfigFilePath())
if err != nil {
t.Fatalf("ReadFile() error = %v", err)
}
var config map[string]any
if err := yaml.Unmarshal(data, &config); err != nil {
t.Fatalf("generated config is invalid YAML: %v", err)
}
if rateLimit, exists := config["rate_limit"]; exists {
fields, ok := rateLimit.(map[string]any)
if !ok {
t.Fatalf("generated rate_limit must be a mapping: %#v", rateLimit)
}
for _, key := range []string{"requests_per_minute", "burst_size"} {
if _, present := fields[key]; present {
t.Fatalf("generated config contains obsolete rate_limit.%s: %s", key, data)
}
}
}
redis, ok := config["redis"].(map[string]any)
if !ok || redis["host"] != "redis" || redis["port"] != 6379 || redis["username"] != "app-user" {
t.Fatalf("generated config lost Redis settings: %#v", config["redis"])
}
if config["timezone"] != "UTC" {
t.Fatalf("generated config timezone = %#v, want UTC", config["timezone"])
}
defaults, ok := config["default"].(map[string]any)
if !ok || defaults["user_concurrency"] != defaultUserConcurrency || defaults["api_key_prefix"] != "sk-" {
t.Fatalf("generated config lost default settings: %#v", config["default"])
}
}
func TestDatabaseConnectionDSNsUseConfiguredTargetAndLegacyBootstrapDatabase(t *testing.T) {
cfg := &DatabaseConfig{
Host: "db",