mirror of https://github.com/docker/cli.git
31 lines
800 B
Go
31 lines
800 B
Go
|
package cli
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/spf13/cobra"
|
||
|
"gotest.tools/assert"
|
||
|
)
|
||
|
|
||
|
func TestVisitAll(t *testing.T) {
|
||
|
root := &cobra.Command{Use: "root"}
|
||
|
sub1 := &cobra.Command{Use: "sub1"}
|
||
|
sub1sub1 := &cobra.Command{Use: "sub1sub1"}
|
||
|
sub1sub2 := &cobra.Command{Use: "sub1sub2"}
|
||
|
sub2 := &cobra.Command{Use: "sub2"}
|
||
|
|
||
|
root.AddCommand(sub1, sub2)
|
||
|
sub1.AddCommand(sub1sub1, sub1sub2)
|
||
|
|
||
|
// Take the opportunity to test DisableFlagsInUseLine too
|
||
|
DisableFlagsInUseLine(root)
|
||
|
|
||
|
var visited []string
|
||
|
VisitAll(root, func(ccmd *cobra.Command) {
|
||
|
visited = append(visited, ccmd.Name())
|
||
|
assert.Assert(t, ccmd.DisableFlagsInUseLine, "DisableFlagsInUseLine not set on %q", ccmd.Name())
|
||
|
})
|
||
|
expected := []string{"sub1sub1", "sub1sub2", "sub1", "sub2", "root"}
|
||
|
assert.DeepEqual(t, expected, visited)
|
||
|
}
|