mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-04 03:27:23 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			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)
 | 
						|
	}
 | 
						|
}
 |