@@ -41,7 +41,7 @@ func TestNewCmdExtension(t *testing.T) {
4141 name : "install an extension" ,
4242 args : []string {"install" , "owner/gh-some-ext" },
4343 managerStubs : func (em * extensions.ExtensionManagerMock ) func (* testing.T ) {
44- em .ListFunc = func (bool ) []extensions.Extension {
44+ em .ListFunc = func () []extensions.Extension {
4545 return []extensions.Extension {}
4646 }
4747 em .InstallFunc = func (_ ghrepo.Interface , _ string ) error {
@@ -60,7 +60,7 @@ func TestNewCmdExtension(t *testing.T) {
6060 name : "install an extension with same name as existing extension" ,
6161 args : []string {"install" , "owner/gh-existing-ext" },
6262 managerStubs : func (em * extensions.ExtensionManagerMock ) func (* testing.T ) {
63- em .ListFunc = func (bool ) []extensions.Extension {
63+ em .ListFunc = func () []extensions.Extension {
6464 e := & Extension {path : "owner2/gh-existing-ext" }
6565 return []extensions.Extension {e }
6666 }
@@ -99,6 +99,12 @@ func TestNewCmdExtension(t *testing.T) {
9999 wantErr : true ,
100100 errMsg : "specify an extension to upgrade or `--all`" ,
101101 },
102+ {
103+ name : "upgrade --all with extension name error" ,
104+ args : []string {"upgrade" , "test" , "--all" },
105+ wantErr : true ,
106+ errMsg : "cannot use `--all` with extension name" ,
107+ },
102108 {
103109 name : "upgrade an extension" ,
104110 args : []string {"upgrade" , "hello" },
@@ -115,6 +121,26 @@ func TestNewCmdExtension(t *testing.T) {
115121 isTTY : true ,
116122 wantStdout : "✓ Successfully upgraded extension hello\n " ,
117123 },
124+ {
125+ name : "upgrade an extension dry run" ,
126+ args : []string {"upgrade" , "hello" , "--dry-run" },
127+ managerStubs : func (em * extensions.ExtensionManagerMock ) func (* testing.T ) {
128+ em .EnableDryRunModeFunc = func () {}
129+ em .UpgradeFunc = func (name string , force bool ) error {
130+ return nil
131+ }
132+ return func (t * testing.T ) {
133+ dryRunCalls := em .EnableDryRunModeCalls ()
134+ assert .Equal (t , 1 , len (dryRunCalls ))
135+ upgradeCalls := em .UpgradeCalls ()
136+ assert .Equal (t , 1 , len (upgradeCalls ))
137+ assert .Equal (t , "hello" , upgradeCalls [0 ].Name )
138+ assert .False (t , upgradeCalls [0 ].Force )
139+ }
140+ },
141+ isTTY : true ,
142+ wantStdout : "✓ Would have upgraded extension hello\n " ,
143+ },
118144 {
119145 name : "upgrade an extension notty" ,
120146 args : []string {"upgrade" , "hello" },
@@ -214,6 +240,26 @@ func TestNewCmdExtension(t *testing.T) {
214240 isTTY : true ,
215241 wantStdout : "✓ Successfully upgraded extensions\n " ,
216242 },
243+ {
244+ name : "upgrade all dry run" ,
245+ args : []string {"upgrade" , "--all" , "--dry-run" },
246+ managerStubs : func (em * extensions.ExtensionManagerMock ) func (* testing.T ) {
247+ em .EnableDryRunModeFunc = func () {}
248+ em .UpgradeFunc = func (name string , force bool ) error {
249+ return nil
250+ }
251+ return func (t * testing.T ) {
252+ dryRunCalls := em .EnableDryRunModeCalls ()
253+ assert .Equal (t , 1 , len (dryRunCalls ))
254+ upgradeCalls := em .UpgradeCalls ()
255+ assert .Equal (t , 1 , len (upgradeCalls ))
256+ assert .Equal (t , "" , upgradeCalls [0 ].Name )
257+ assert .False (t , upgradeCalls [0 ].Force )
258+ }
259+ },
260+ isTTY : true ,
261+ wantStdout : "✓ Would have upgraded extensions\n " ,
262+ },
217263 {
218264 name : "upgrade all none installed" ,
219265 args : []string {"upgrade" , "--all" },
@@ -313,16 +359,17 @@ func TestNewCmdExtension(t *testing.T) {
313359 name : "list extensions" ,
314360 args : []string {"list" },
315361 managerStubs : func (em * extensions.ExtensionManagerMock ) func (* testing.T ) {
316- em .ListFunc = func (bool ) []extensions.Extension {
317- ex1 := & Extension {path : "cli/gh-test" , url : "https://github.com/cli/gh-test" , currentVersion : "1" , latestVersion : "1" }
318- ex2 := & Extension {path : "cli/gh-test2" , url : "https://github.com/cli/gh-test2" , currentVersion : "1" , latestVersion : "2" }
362+ em .ListFunc = func () []extensions.Extension {
363+ ex1 := & Extension {path : "cli/gh-test" , url : "https://github.com/cli/gh-test" , currentVersion : "1" }
364+ ex2 := & Extension {path : "cli/gh-test2" , url : "https://github.com/cli/gh-test2" , currentVersion : "1" }
319365 return []extensions.Extension {ex1 , ex2 }
320366 }
321367 return func (t * testing.T ) {
322- assert .Equal (t , 1 , len (em .ListCalls ()))
368+ calls := em .ListCalls ()
369+ assert .Equal (t , 1 , len (calls ))
323370 }
324371 },
325- wantStdout : "gh test\t cli/gh-test\t 1\t \ n gh test2\t cli/gh-test2\t 1\t Upgrade available \n " ,
372+ wantStdout : "gh test\t cli/gh-test\t 1\n gh test2\t cli/gh-test2\t 1\n " ,
326373 },
327374 {
328375 name : "create extension interactive" ,
@@ -533,7 +580,7 @@ func Test_checkValidExtension(t *testing.T) {
533580 rootCmd .AddCommand (& cobra.Command {Use : "auth" })
534581
535582 m := & extensions.ExtensionManagerMock {
536- ListFunc : func (bool ) []extensions.Extension {
583+ ListFunc : func () []extensions.Extension {
537584 return []extensions.Extension {
538585 & extensions.ExtensionMock {
539586 NameFunc : func () string { return "screensaver" },
0 commit comments