mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-03 23:01:06 +00:00 
			
		
		
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			1,016 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			1,016 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)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |