Skip to content

Commit ad36602

Browse files
author
furiosa
committed
test(sling): add TestActorStringFallback for rig root fallback
Adds test coverage for the ActorString() fallback behavior when role is unknown. Tests verify: - Unknown role with known rig returns rig name - Unknown role without rig returns 'human' - Known roles return normal actor strings Refs gt-spt3u
1 parent 5f0c8f9 commit ad36602

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

internal/cmd/sling_test.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,3 +703,55 @@ func TestLooksLikeBeadID(t *testing.T) {
703703
})
704704
}
705705
}
706+
707+
// TestActorStringFallback tests that ActorString returns useful fallbacks
708+
// when the role is unknown, which happens when slinging from rig root.
709+
// Fixes: gt-spt3u - gt sling should work from rig root when explicit target is provided
710+
func TestActorStringFallback(t *testing.T) {
711+
tests := []struct {
712+
name string
713+
roleInfo RoleInfo
714+
want string
715+
}{
716+
{
717+
name: "unknown role with rig returns rig name",
718+
roleInfo: RoleInfo{
719+
Role: RoleUnknown,
720+
Rig: "gastown",
721+
},
722+
want: "gastown",
723+
},
724+
{
725+
name: "unknown role without rig returns human",
726+
roleInfo: RoleInfo{
727+
Role: RoleUnknown,
728+
},
729+
want: "human",
730+
},
731+
{
732+
name: "known role returns normal actor string",
733+
roleInfo: RoleInfo{
734+
Role: RolePolecat,
735+
Rig: "gastown",
736+
Polecat: "nux",
737+
},
738+
want: "gastown/polecats/nux",
739+
},
740+
{
741+
name: "mayor role returns mayor",
742+
roleInfo: RoleInfo{
743+
Role: RoleMayor,
744+
},
745+
want: "mayor",
746+
},
747+
}
748+
749+
for _, tt := range tests {
750+
t.Run(tt.name, func(t *testing.T) {
751+
got := tt.roleInfo.ActorString()
752+
if got != tt.want {
753+
t.Errorf("ActorString() = %q, want %q", got, tt.want)
754+
}
755+
})
756+
}
757+
}

0 commit comments

Comments
 (0)