Files
orca/internal/cli/root_test.go
T

68 lines
1.6 KiB
Go

package cli
import (
"strings"
"testing"
)
func TestVersionCommandExists(t *testing.T) {
found := false
for _, cmd := range rootCmd.Commands() {
if cmd.Name() == "version" {
found = true
break
}
}
if !found {
t.Fatal("version command not registered")
}
}
func TestRootHasAllSubcommands(t *testing.T) {
expected := []string{"version", "init", "status", "node", "job"}
registered := make(map[string]bool)
for _, cmd := range rootCmd.Commands() {
registered[cmd.Name()] = true
}
for _, name := range expected {
if !registered[name] {
t.Errorf("expected subcommand %q not registered", name)
}
}
}
func TestNodeSubcommands(t *testing.T) {
expected := []string{"join", "leave", "list"}
registered := make(map[string]bool)
for _, cmd := range nodeCmd.Commands() {
registered[cmd.Name()] = true
}
for _, name := range expected {
if !registered[name] {
t.Errorf("expected node subcommand %q not registered", name)
}
}
}
func TestJobSubcommands(t *testing.T) {
expected := []string{"run", "list", "stop", "logs"}
registered := make(map[string]bool)
for _, cmd := range jobCmd.Commands() {
registered[cmd.Name()] = true
}
for _, name := range expected {
if !registered[name] {
t.Errorf("expected job subcommand %q not registered", name)
}
}
}
func TestRootHelpMentionsKeyPillars(t *testing.T) {
help := rootCmd.Long
for _, pillar := range []string{"offline", "CLI", "Nomad", "simplicity"} {
if !strings.Contains(strings.ToLower(help), strings.ToLower(pillar)) {
t.Errorf("root help does not mention pillar %q", pillar)
}
}
}