A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
1.7 kB · 57 lines
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758package controller
import ( "strings" "testing"
"forgejo.alexma.top/alexma233/composia/internal/core/config")
func TestValidateControllerReloadAllowsMutableFields(t *testing.T) { current := baseReloadTestConfig() next := baseReloadTestConfig() next.Nodes = append(next.Nodes, config.NodeConfig{ID: "edge", Token: "edge-token"}) next.AccessTokens = []config.AccessTokenConfig{{Name: "operator", Token: "operator-token"}}
if err := validateControllerReload(current, next); err != nil { t.Fatalf("validate controller reload: %v", err) }}
func TestValidateControllerReloadRejectsListenAddrChange(t *testing.T) { current := baseReloadTestConfig() next := baseReloadTestConfig() next.ListenAddr = "127.0.0.1:7002"
err := validateControllerReload(current, next) if err == nil { t.Fatal("expected listen_addr change to require restart") } if !strings.Contains(err.Error(), "controller.listen_addr") { t.Fatalf("expected listen_addr error, got %v", err) }}
func TestValidateControllerReloadRejectsRepoDirChange(t *testing.T) { current := baseReloadTestConfig() next := baseReloadTestConfig() next.RepoDir = "/srv/composia/other-repo"
err := validateControllerReload(current, next) if err == nil { t.Fatal("expected repo_dir change to require restart") } if !strings.Contains(err.Error(), "controller.repo_dir") { t.Fatalf("expected repo_dir error, got %v", err) }}
func baseReloadTestConfig() *config.ControllerConfig { return &config.ControllerConfig{ ListenAddr: "127.0.0.1:7001", RepoDir: "/srv/composia/repo", StateDir: "/var/lib/composia", LogDir: "/var/log/composia", Nodes: []config.NodeConfig{{ID: "main", Token: "main-token"}}, }}