oh-my-posh/src/segments/upgrade_test.go

72 lines
1.5 KiB
Go
Raw Normal View History

2023-05-18 10:42:57 -07:00
package segments
import (
"errors"
"fmt"
"testing"
2023-07-02 11:53:50 -07:00
"github.com/jandedobbeleer/oh-my-posh/src/build"
2023-05-18 10:42:57 -07:00
"github.com/jandedobbeleer/oh-my-posh/src/properties"
"github.com/jandedobbeleer/oh-my-posh/src/runtime/mock"
2023-05-18 10:42:57 -07:00
"github.com/jandedobbeleer/oh-my-posh/src/upgrade"
"github.com/alecthomas/assert"
)
func TestUpgrade(t *testing.T) {
cases := []struct {
2024-08-05 05:59:34 -07:00
Error error
2023-05-18 10:42:57 -07:00
Case string
CurrentVersion string
LatestVersion string
2024-08-05 05:59:34 -07:00
CachedVersion string
ExpectedEnabled bool
HasCache bool
2023-05-18 10:42:57 -07:00
}{
{
Case: "Should upgrade",
CurrentVersion: "1.0.0",
LatestVersion: "1.0.1",
ExpectedEnabled: true,
},
{
Case: "On latest",
CurrentVersion: "1.0.1",
LatestVersion: "1.0.1",
},
{
Case: "Error on update check",
2023-05-18 10:42:57 -07:00
Error: errors.New("error"),
},
{
Case: "On latest, version changed",
CurrentVersion: "1.0.2",
LatestVersion: "1.0.2",
},
{
Case: "On previous, version changed",
CurrentVersion: "1.0.2",
LatestVersion: "1.0.3",
ExpectedEnabled: true,
},
}
for _, tc := range cases {
env := new(mock.Environment)
2023-05-18 10:42:57 -07:00
2023-07-02 11:53:50 -07:00
build.Version = tc.CurrentVersion
2023-05-18 10:42:57 -07:00
json := fmt.Sprintf(`{"tag_name":"v%s"}`, tc.LatestVersion)
env.On("HTTPRequest", upgrade.RELEASEURL).Return([]byte(json), tc.Error)
ug := &Upgrade{
env: env,
props: properties.Map{},
}
enabled := ug.Enabled()
assert.Equal(t, tc.ExpectedEnabled, enabled, tc.Case)
}
}