package cmd import ( "os" "path/filepath" "testing" "github.com/steveyegge/gastown/internal/beads" ) func writeTestRoutes(t *testing.T, townRoot string, routes []beads.Route) { t.Helper() beadsDir := filepath.Join(townRoot, ".beads") if err := os.MkdirAll(beadsDir, 0755); err != nil { t.Fatalf("create beads dir: %v", err) } if err := beads.WriteRoutes(beadsDir, routes); err != nil { t.Fatalf("write routes: %v", err) } } func TestGetAgentBeadID_UsesRigPrefix(t *testing.T) { townRoot := t.TempDir() writeTestRoutes(t, townRoot, []beads.Route{ {Prefix: "bd-", Path: "beads/mayor/rig"}, }) cases := []struct { name string ctx RoleContext want string }{ { name: "mayor", ctx: RoleContext{ Role: RoleMayor, TownRoot: townRoot, }, want: "gt-mayor", }, { name: "deacon", ctx: RoleContext{ Role: RoleDeacon, TownRoot: townRoot, }, want: "gt-deacon", }, { name: "witness", ctx: RoleContext{ Role: RoleWitness, Rig: "beads", TownRoot: townRoot, }, want: "bd-beads-witness", }, { name: "refinery", ctx: RoleContext{ Role: RoleRefinery, Rig: "beads", TownRoot: townRoot, }, want: "bd-beads-refinery", }, { name: "polecat", ctx: RoleContext{ Role: RolePolecat, Rig: "beads", Polecat: "lex", TownRoot: townRoot, }, want: "bd-beads-polecat-lex", }, { name: "crew", ctx: RoleContext{ Role: RoleCrew, Rig: "beads", Polecat: "lex", TownRoot: townRoot, }, want: "bd-beads-crew-lex", }, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got := getAgentBeadID(tc.ctx) if got != tc.want { t.Fatalf("getAgentBeadID() = %q, want %q", got, tc.want) } }) } }