mirror of
https://github.com/hanzoai/personas.git
synced 2026-11-02 00:46:20 +00:00
The roster opens on Vi, Fin, Dev, Mark, Opera, Des, Sal, Su, Cyber, Sci, Huma and Mana, and those twelve carry lead: true; every other seat follows in the order the owner's roster lists them. Vid owns video and Biz owns partnerships, each with its spec, memoji and company row, and Art and Corp name them as the owners of that work.
62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
package personas
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCompanyDefaults(t *testing.T) {
|
|
defaults, err := CompanyDefaults()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
team, err := Team()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if defaults.SchemaVersion != 1 || defaults.Entrypoint != "vi" || len(defaults.Members) != 34 {
|
|
t.Fatalf("unexpected company bundle: %+v", defaults)
|
|
}
|
|
groups := map[string]bool{}
|
|
for i, m := range defaults.Members {
|
|
groups[m.Group] = true
|
|
if m.ID == "cyber" && m.Model != "zen6-cyber" {
|
|
t.Fatal("Cyber beta must use zen6-cyber without fallback")
|
|
}
|
|
if m.ID != team[i].ID || !strings.HasPrefix(m.Instructions, team[i].Instructions) {
|
|
t.Fatalf("lost persona %s", m.ID)
|
|
}
|
|
if m.EnabledByDefault || len(m.RequestedTools) < 2 || len(m.SuccessMeasures) == 0 || m.Seat == 0 || m.Owns == "" {
|
|
t.Fatalf("incomplete defaults for %s", m.ID)
|
|
}
|
|
if !strings.Contains(m.Instructions, "Delegation never expands authority") {
|
|
t.Fatalf("missing authority boundary for %s", m.ID)
|
|
}
|
|
if m.ID == "audit" && m.ReportsTo != "human-owner" {
|
|
t.Fatal("Audit must report independently")
|
|
}
|
|
if m.ID != "audit" && m.ReportsTo != "vi" {
|
|
t.Fatalf("unexpected reporting line for %s", m.ID)
|
|
}
|
|
}
|
|
if len(groups) != 6 {
|
|
t.Fatalf("got %d departments", len(groups))
|
|
}
|
|
}
|
|
|
|
func TestCompanyDefaultsAreIndependent(t *testing.T) {
|
|
first, err := CompanyDefaults()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
first.Members[0].SuccessMeasures[0] = "changed"
|
|
first.Members[0].RequestedTools[0] = "changed"
|
|
second, err := CompanyDefaults()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if second.Members[0].SuccessMeasures[0] == "changed" || second.Members[0].RequestedTools[0] == "changed" {
|
|
t.Fatal("caller changed another company's defaults")
|
|
}
|
|
}
|