Enhance extension manager and tests

- extension manager has been made responsible for extension update directory information
- extension manager has been enhanced to ensure that previously left extension update metadata is deleted before installing an extension
- extension manager has been enhanced to ensure that extension update metadata is deleted when extension is being removed
- refactored extension command tests for manager change, ensuring previous and expected states along with returned release info
- refactored extension manager tests for ensuring previous extension update entries are removed before installing extension
- created extension manager test for installing local extension
- centralized logic for checking and ensuring extension name is "gh-" prefixed
This commit is contained in:
Andrew Feller 2024-12-08 19:40:24 -05:00
parent 6bd01d52dd
commit 97630fe73c
8 changed files with 392 additions and 173 deletions

View file

@ -11,7 +11,6 @@ import (
"github.com/cli/cli/v2/git"
"github.com/cli/cli/v2/internal/ghrepo"
"github.com/cli/cli/v2/pkg/extensions"
"gopkg.in/yaml.v3"
)
@ -216,10 +215,6 @@ func (e *Extension) Owner() string {
}
func (e *Extension) UpdateAvailable() bool {
return UpdateAvailable(e)
}
func UpdateAvailable(e extensions.Extension) bool {
if e.IsLocal() ||
e.CurrentVersion() == "" ||
e.LatestVersion() == "" ||