| package plugin | |
| import ( | |
| "slices" | |
| "testing" | |
| "github.com/spf13/cobra" | |
| ) | |
| 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) | |
| var visited []string | |
| visitAll(root, func(ccmd *cobra.Command) { | |
| visited = append(visited, ccmd.Name()) | |
| }) | |
| expected := []string{"sub1sub1", "sub1sub2", "sub1", "sub2", "root"} | |
| if !slices.Equal(expected, visited) { | |
| t.Errorf("expected %#v, got %#v", expected, visited) | |
| } | |
| } |