Files
mesh-controller/cmd/mesh-controller/given_test.go
T

52 lines
2.3 KiB
Go

package main
import (
"time"
sdkdelivery "git.novox.be/novox/mesh-sdk/go/delivery"
"strings"
"testing"
)
// A rotation asked through the seat carries why to the command, which records it in the hand-act
// log (novox/hq ADR 0228); and with a provision too, since the vault asks why of every rotation of a
// credential it holds (issue 767).
func TestARotationThroughTheSeatCarriesWhy(t *testing.T) {
argv, err := argvFor("rotate", map[string]any{"node": "anchor", "module": "letta",
"secret": "server-password", "why": "leaked into logs", "cause": "leaked"})
if err != nil || strings.Join(argv, " ") != "secret rotate anchor letta server-password --why leaked into logs --cause leaked" {
t.Fatalf("%v %v", argv, err)
}
argv, err = argvFor("rotate", map[string]any{"node": "anchor", "module": "letta", "secret": "server-password"})
if err != nil || strings.Join(argv, " ") != "secret rotate anchor letta server-password" {
t.Fatalf("without why: %v %v", argv, err)
}
argv, err = argvFor("rotate", map[string]any{"provision": "postgres-database", "consumer": "ace", "why": "leaked",
"cause": "leaked"})
if err != nil || strings.Join(argv, " ") != "rotate postgres-database --consumer ace --why leaked --cause leaked" {
t.Fatalf("why beside a provision: %v %v", argv, err)
}
}
// Only a have that is running and healthy is a good start, at the time it was written; any other is none (novox/hq ADR 0228,
// ADR 0539 §9).
func TestAGoodStartIsAHaveRunningAndHealthy(t *testing.T) {
at := time.Date(2026, 10, 24, 17, 0, 0, 0, time.UTC)
for _, c := range []struct {
have sdkdelivery.Have
good bool
}{
{sdkdelivery.Have{Phase: sdkdelivery.PhaseRunning, Health: sdkdelivery.HealthOK}, true},
{sdkdelivery.Have{Phase: sdkdelivery.PhaseRunning, Health: sdkdelivery.HealthFailed}, false},
{sdkdelivery.Have{Phase: sdkdelivery.PhaseRunning, Health: sdkdelivery.HealthWaits}, false},
{sdkdelivery.Have{Phase: sdkdelivery.PhaseApplying, Health: sdkdelivery.HealthOK}, false},
{sdkdelivery.Have{Phase: sdkdelivery.PhaseFailed, Health: sdkdelivery.HealthFailed}, false},
{sdkdelivery.Have{Phase: sdkdelivery.PhaseHeld, Health: sdkdelivery.HealthOK}, false},
} {
got := startedOn(c.have, at)
if good := !got.IsZero(); good != c.good || good && !got.Equal(at) {
t.Errorf("%+v: started at %v, want a good start = %v", c.have, got, c.good)
}
}
}