package buscompose import ( "testing" "git.novox.be/novox/mesh-sdk/go/membership" ) // The names this package keeps for the grants part's composer (mesh-grants internal/buscompose, ADR 0593 ยง1) agree with // what the runtime reads: the memberships bucket, and a log's stream and subject. func TestTheBusNamesAgree(t *testing.T) { if GrantsMembershipsBucket != membership.GrantsBucket { t.Fatalf("the memberships bucket is %q here and %q in membership", GrantsMembershipsBucket, membership.GrantsBucket) } if MembershipKey("ace", "netcheck") != "ace.netcheck" { t.Fatal("a membership's key is not .") } if LogStreamName("mesh-delivery-builder", "build-log") == "" || LogSubject("mesh-delivery-builder", "build-log") == "" { t.Fatal("a log has no stream or subject") } // 1966/AC23: a wanted account of kind ledger for m on a names the user ledger.a.m and the own secret ledgers. ledger := WantedAccount{User: "ledger.a.m", Kind: KindLedger, Node: "a", Module: "m", URL: "nats://10.0.0.1:4222"} if got := (Principal{Kind: KindLedger, Node: "a", Module: "m"}).Username(); got != "ledger.a.m" { t.Fatalf("a ledger account is named %q", got) } if err := ledger.Valid(); err != nil || ledger.OwnSecret() != "ledgers" { t.Fatalf("a wanted ledger account: %v, held in %q", err, ledger.OwnSecret()) } }