@@ -16,34 +16,69 @@ import (
1616)
1717
1818func TestInitAliasing (t * testing.T ) {
19- sd := & sd {
20- root : & cobra.Command {
21- Version : "1.0" ,
19+ var tests = []struct {
20+ name string
21+ args []string
22+ expected string
23+ }{
24+ {
25+ "defaults to sd" ,
26+ []string {},
27+ "sd" ,
28+ },
29+ {
30+ "changes usage string (short)" ,
31+ []string {"-a" , "quack" },
32+ "quack" ,
33+ },
34+ {
35+ "changes usage string (long)" ,
36+ []string {"--alias" , "quack" },
37+ "quack" ,
38+ },
39+ {
40+ "does not change usage when empty" ,
41+ []string {"--alias" , "" },
42+ "sd" ,
43+ },
44+ {
45+ "does not change usage when not given" ,
46+ []string {"--alias" },
47+ "sd" ,
48+ },
49+ {
50+ "keeps last when multiple given" ,
51+ []string {"--alias" , "foo" , "--alias" , "bar" },
52+ "bar" ,
53+ },
54+ {
55+ "ignores other params" ,
56+ []string {"--foo" , "foo" , "--alias" , "quack" , "--bar" , "bar" },
57+ "quack" ,
2258 },
2359 }
24- sd .initAliasing ()
25-
26- t .Run ("flag is hidden" , func (t * testing.T ) {
27- assert .True (t , sd .root .PersistentFlags ().Lookup ("alias" ).Hidden )
28- })
29-
30- t .Run ("adds a default alias flag" , func (t * testing.T ) {
31- sd .root .ParseFlags ([]string {"" })
32-
33- v , err := sd .root .PersistentFlags ().GetString ("alias" )
34- assert .NoError (t , err )
35- assert .Equal (t , "sd" , v )
36- })
60+ for _ , test := range tests {
61+ t .Run (test .name , func (t * testing.T ) {
62+ var restore []string
63+ copy (restore , os .Args )
64+ defer func () {
65+ copy (os .Args , restore )
66+ }()
67+
68+ os .Args = test .args
69+
70+ sd := & sd {
71+ root : & cobra.Command {
72+ Version : "1.0" ,
73+ },
74+ }
3775
38- t .Run ("sets the name of the root command when aliased" , func (t * testing.T ) {
39- sd .root .ParseFlags ([]string {"-a" , "quack" })
40- sd .root .PersistentPreRunE (sd .root , []string {})
76+ sd .initAliasing ()
4177
42- _ , err := sd .root .PersistentFlags ().GetString ("alias" )
43- assert .NoError (t , err )
44- assert .Equal (t , "quack" , sd .root .Use )
45- assert .Equal (t , "1.0 (aliased to quack)" , sd .root .Version )
46- })
78+ assert .True (t , sd .root .PersistentFlags ().Lookup ("alias" ).Hidden )
79+ assert .Equal (t , test .expected , sd .root .Use )
80+ })
81+ }
4782}
4883
4984func TestInitCompletions (t * testing.T ) {
0 commit comments