feat: bootstrap control plane app skeleton
This commit is contained in:
85
tests/integration/config_bootstrap_test.go
Normal file
85
tests/integration/config_bootstrap_test.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package integration_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"sub2api-cn-relay-manager/internal/app"
|
||||
"sub2api-cn-relay-manager/internal/config"
|
||||
)
|
||||
|
||||
func TestLoadStartupFromEnvUsesDefaultsWhenOptionalValuesMissing(t *testing.T) {
|
||||
t.Setenv("SUB2API_CRM_LISTEN_ADDR", "")
|
||||
t.Setenv("SUB2API_CRM_SQLITE_DSN", "")
|
||||
|
||||
cfg, err := config.LoadStartupFromEnv()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadStartupFromEnv() returned error: %v", err)
|
||||
}
|
||||
|
||||
if cfg.Server.ListenAddr != config.DefaultListenAddr {
|
||||
t.Fatalf("ListenAddr = %q, want %q", cfg.Server.ListenAddr, config.DefaultListenAddr)
|
||||
}
|
||||
|
||||
if cfg.Database.SQLiteDSN != config.DefaultSQLiteDSN {
|
||||
t.Fatalf("SQLiteDSN = %q, want %q", cfg.Database.SQLiteDSN, config.DefaultSQLiteDSN)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadStartupFromEnvAppliesOverrides(t *testing.T) {
|
||||
t.Setenv("SUB2API_CRM_LISTEN_ADDR", "127.0.0.1:9090")
|
||||
t.Setenv("SUB2API_CRM_SQLITE_DSN", "file:custom.db?_foreign_keys=on")
|
||||
|
||||
cfg, err := config.LoadStartupFromEnv()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadStartupFromEnv() returned error: %v", err)
|
||||
}
|
||||
|
||||
if cfg.Server.ListenAddr != "127.0.0.1:9090" {
|
||||
t.Fatalf("ListenAddr = %q, want %q", cfg.Server.ListenAddr, "127.0.0.1:9090")
|
||||
}
|
||||
|
||||
if cfg.Database.SQLiteDSN != "file:custom.db?_foreign_keys=on" {
|
||||
t.Fatalf("SQLiteDSN = %q, want %q", cfg.Database.SQLiteDSN, "file:custom.db?_foreign_keys=on")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadAdminTokenFromEnvReturnsToken(t *testing.T) {
|
||||
t.Setenv("SUB2API_CRM_ADMIN_TOKEN", "admin-token")
|
||||
|
||||
token, err := config.LoadAdminTokenFromEnv()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadAdminTokenFromEnv() returned error: %v", err)
|
||||
}
|
||||
|
||||
if token != "admin-token" {
|
||||
t.Fatalf("token = %q, want %q", token, "admin-token")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadAdminTokenFromEnvReturnsErrorWhenMissing(t *testing.T) {
|
||||
t.Setenv("SUB2API_CRM_ADMIN_TOKEN", "")
|
||||
|
||||
_, err := config.LoadAdminTokenFromEnv()
|
||||
if err == nil {
|
||||
t.Fatal("LoadAdminTokenFromEnv() error = nil, want validation error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBootstrapBuildsServerWithStartupConfigOnly(t *testing.T) {
|
||||
t.Setenv("SUB2API_CRM_LISTEN_ADDR", ":8181")
|
||||
t.Setenv("SUB2API_CRM_ADMIN_TOKEN", "")
|
||||
|
||||
server, err := app.Bootstrap(context.Background())
|
||||
if err != nil {
|
||||
t.Fatalf("Bootstrap() returned error: %v", err)
|
||||
}
|
||||
|
||||
if server == nil {
|
||||
t.Fatal("Bootstrap() returned nil server")
|
||||
}
|
||||
|
||||
if server.Addr() != ":8181" {
|
||||
t.Fatalf("Bootstrap Addr = %q, want %q", server.Addr(), ":8181")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user