Add the runnable Gitea, PostgreSQL, and Hop control-plane foundation

Hop-State: A_06FN3QYA1N56NQYGZ81DWGR
Hop-Proposal: R_06FN3QXJRYPPEQZQA6S69QG
Hop-Task: T_06FN3MVGY3MT82ESQ89BND0
Hop-Attempt: AT_06FN3MVGY092BFA5MR9C7EG
This commit is contained in:
Hop
2026-07-11 08:50:48 -07:00
parent dd2c0abfd2
commit d9544b435b
22 changed files with 1114 additions and 0 deletions
@@ -0,0 +1,27 @@
package config
import "testing"
func TestLoadRequiresSecretsAndDatabase(t *testing.T) {
t.Setenv("HOP_DATABASE_URL", "")
t.Setenv("HOP_ADMIN_TOKEN", "")
t.Setenv("HOP_GITEA_WEBHOOK_SECRET", "")
if _, err := Load(); err == nil {
t.Fatal("expected missing configuration error")
}
}
func TestLoadDefaults(t *testing.T) {
t.Setenv("HOP_DATABASE_URL", "postgres://example")
t.Setenv("HOP_ADMIN_TOKEN", "admin-token-long-enough")
t.Setenv("HOP_GITEA_WEBHOOK_SECRET", "webhook-secret-long-enough")
t.Setenv("HOP_HTTP_ADDR", "")
t.Setenv("GITEA_BASE_URL", "")
cfg, err := Load()
if err != nil {
t.Fatal(err)
}
if cfg.HTTPAddr != ":8080" || cfg.GiteaBaseURL != "http://localhost:3000" {
t.Fatalf("unexpected defaults: %#v", cfg)
}
}