fix: healthcheck не должен зависеть от полноты конфига
Build / Tests (push) Successful in 13s
Build / Build image (push) Failing after 19s
Build / Notify on failure (push) Failing after 1s

HEALTHCHECK в образе запускается отдельным процессом без -config и без секретов,
поэтому валидация конфига делала контейнер unhealthy при полностью рабочем демоне.
Проверка /healthz перенесена до разбора ошибки Load, который и при ошибке возвращает
конфиг со значениями по умолчанию.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
vasyanskandClaude Opus 5 committed 2026-09-22 17:35:48 +07:00
1 parent 273cd54415
commit b607fe0a64
2 files changed
+19 -4

No files matched your search

+12
View File
@@ -138,3 +138,15 @@ func TestSecretMissingFile(t *testing.T) {
t.Fatal("ожидалась ошибка")
}
}
// Load обязан возвращать пригодный Listen даже при ошибке: на этом построена проверка
// здоровья в контейнере — HEALTHCHECK запускается без -config и без секретов.
func TestLoadReturnsDefaultListenOnError(t *testing.T) {
cfg, err := Load("", func(string) string { return "" }, OSReadFile)
if err == nil {
t.Fatal("ожидали ошибку: не заданы ни конфиг, ни креды")
}
if cfg.Listen != ":9090" {
t.Fatalf("Listen = %q, ожидали значение по умолчанию :9090", cfg.Listen)
}
}