Show version diff when updating a single extension (#6647)

This commit is contained in:
Des Preston 2022-12-08 09:40:41 -05:00 committed by GitHub
parent 57f5bd8cdd
commit 23913ac371
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 15 deletions

View file

@ -363,7 +363,7 @@ func NewCmdExtension(f *cmdutil.Factory) *cobra.Command {
}
cs := io.ColorScheme()
err := m.Upgrade(name, flagForce)
if err != nil && !errors.Is(err, upToDateError) {
if err != nil {
if name != "" {
fmt.Fprintf(io.ErrOut, "%s Failed upgrading extension %s: %s\n", cs.FailureIcon(), name, err)
} else if errors.Is(err, noExtensionsInstalledError) {
@ -378,13 +378,11 @@ func NewCmdExtension(f *cmdutil.Factory) *cobra.Command {
if flagDryRun {
successStr = "Would have"
}
if errors.Is(err, upToDateError) {
fmt.Fprintf(io.Out, "%s Extension already up to date\n", cs.SuccessIcon())
} else if name != "" {
fmt.Fprintf(io.Out, "%s %s upgraded extension %s\n", cs.SuccessIcon(), successStr, name)
} else {
fmt.Fprintf(io.Out, "%s %s upgraded extensions\n", cs.SuccessIcon(), successStr)
extensionStr := "extension"
if name == "" {
extensionStr = "extensions"
}
fmt.Fprintf(io.Out, "%s %s upgraded %s\n", cs.SuccessIcon(), successStr, extensionStr)
}
return nil
},

View file

@ -323,7 +323,7 @@ func TestNewCmdExtension(t *testing.T) {
}
},
isTTY: true,
wantStdout: "✓ Successfully upgraded extension hello\n",
wantStdout: "✓ Successfully upgraded extension\n",
},
{
name: "upgrade an extension dry run",
@ -343,7 +343,7 @@ func TestNewCmdExtension(t *testing.T) {
}
},
isTTY: true,
wantStdout: "✓ Would have upgraded extension hello\n",
wantStdout: "✓ Would have upgraded extension\n",
},
{
name: "upgrade an extension notty",
@ -365,7 +365,9 @@ func TestNewCmdExtension(t *testing.T) {
args: []string{"upgrade", "hello"},
managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) {
em.UpgradeFunc = func(name string, force bool) error {
return upToDateError
// An already up to date extension returns the same response
// as an one that has been upgraded.
return nil
}
return func(t *testing.T) {
calls := em.UpgradeCalls()
@ -374,8 +376,7 @@ func TestNewCmdExtension(t *testing.T) {
}
},
isTTY: true,
wantStdout: "✓ Extension already up to date\n",
wantStderr: "",
wantStdout: "✓ Successfully upgraded extension\n",
},
{
name: "upgrade extension error",
@ -410,7 +411,7 @@ func TestNewCmdExtension(t *testing.T) {
}
},
isTTY: true,
wantStdout: "✓ Successfully upgraded extension hello\n",
wantStdout: "✓ Successfully upgraded extension\n",
},
{
name: "upgrade an extension full name",
@ -426,7 +427,7 @@ func TestNewCmdExtension(t *testing.T) {
}
},
isTTY: true,
wantStdout: "✓ Successfully upgraded extension hello\n",
wantStdout: "✓ Successfully upgraded extension\n",
},
{
name: "upgrade all",

View file

@ -516,7 +516,7 @@ func (m *Manager) Upgrade(name string, force bool) error {
if err != nil {
return err
}
return m.upgradeExtension(f, force)
return m.upgradeExtensions([]Extension{f}, force)
}
return fmt.Errorf("no extension matched %q", name)
}