40 lines
1016 B
Go
40 lines
1016 B
Go
package caddycmd
|
|
|
|
import (
|
|
"maps"
|
|
"reflect"
|
|
"slices"
|
|
"testing"
|
|
)
|
|
|
|
func TestCommandsAreAvailable(t *testing.T) {
|
|
// trigger init, and build the default factory, so that
|
|
// all commands from this package are available
|
|
cmd := defaultFactory.Build()
|
|
if cmd == nil {
|
|
t.Fatal("default factory failed to build")
|
|
}
|
|
|
|
// check that the default factory has 17 commands; it doesn't
|
|
// include the commands registered through calls to init in
|
|
// other packages
|
|
cmds := Commands()
|
|
if len(cmds) != 17 {
|
|
t.Errorf("expected 17 commands, got %d", len(cmds))
|
|
}
|
|
|
|
commandNames := slices.Collect(maps.Keys(cmds))
|
|
slices.Sort(commandNames)
|
|
|
|
expectedCommandNames := []string{
|
|
"adapt", "add-package", "build-info", "completion",
|
|
"environ", "fmt", "list-modules", "manpage",
|
|
"reload", "remove-package", "run", "start",
|
|
"stop", "storage", "upgrade", "validate", "version",
|
|
}
|
|
|
|
if !reflect.DeepEqual(expectedCommandNames, commandNames) {
|
|
t.Errorf("expected %v, got %v", expectedCommandNames, commandNames)
|
|
}
|
|
}
|