mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-25 16:18:49 +01:00
37 lines
965 B
Go
37 lines
965 B
Go
|
package cmd
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestInitCommands(t *testing.T) {
|
||
|
helpFlag := "-h"
|
||
|
commandArgs := [][]string{{"root", helpFlag}}
|
||
|
for _, command := range rootCmd.Commands() {
|
||
|
commandArgs = append(commandArgs, []string{command.Name(), command.Name(), helpFlag})
|
||
|
for _, subcommand := range command.Commands() {
|
||
|
commandArgs = append(commandArgs, []string{command.Name() + " " + subcommand.Name(), command.Name(), subcommand.Name(), helpFlag})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for _, args := range commandArgs {
|
||
|
t.Run(fmt.Sprintf("Testing Command %s", args[0]), func(t *testing.T) {
|
||
|
defer func() {
|
||
|
err := recover()
|
||
|
if err != nil {
|
||
|
t.Fatalf("got an panic error while running the command: %s -h. Error: %s", args[0], err)
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
rootCmd.SetArgs(args[1:])
|
||
|
rootCmd.SetOut(io.Discard)
|
||
|
if err := rootCmd.Execute(); err != nil {
|
||
|
t.Errorf("expected no error while running %s command, got %v", args[0], err)
|
||
|
return
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|