loader revisited
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package updater
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"galaxy/connector"
|
||||
gerr "galaxy/error"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestArtifactPathWindowsAddsExe(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
got := ArtifactPath("1.2.3", "windows", "amd64", connector.ArtifactKindExecutable)
|
||||
require.Equal(t, `ui\client-ui-1.2.3-windows-amd64-executable.exe`, got)
|
||||
}
|
||||
|
||||
func TestLatestCompatibleVersionSelectsPlatformExecutable(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
versions := []connector.VersionInfo{
|
||||
{OS: "linux", Arch: "amd64", Kind: connector.ArtifactKindExecutable, Version: "1.0.0"},
|
||||
{OS: "windows", Arch: "amd64", Kind: connector.ArtifactKindExecutable, Version: "1.2.0"},
|
||||
{OS: "windows", Arch: "amd64", Kind: connector.ArtifactKindExecutable, Version: "1.3.0"},
|
||||
{OS: "windows", Arch: "arm64", Kind: connector.ArtifactKindExecutable, Version: "9.9.9"},
|
||||
}
|
||||
|
||||
got, ok, err := LatestCompatibleVersion(versions, "windows", "amd64", connector.ArtifactKindExecutable)
|
||||
require.NoError(t, err)
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "1.3.0", got.Version)
|
||||
}
|
||||
|
||||
func TestLatestCompatibleVersionRejectsUnsupportedKinds(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
versions := []connector.VersionInfo{
|
||||
{OS: "windows", Arch: "amd64", Kind: "shared-library", Version: "1.0.0"},
|
||||
}
|
||||
|
||||
_, ok, err := LatestCompatibleVersion(versions, "windows", "amd64", connector.ArtifactKindExecutable)
|
||||
require.False(t, ok)
|
||||
require.Error(t, err)
|
||||
require.True(t, gerr.IsService(err))
|
||||
}
|
||||
|
||||
func TestLatestCompatibleVersionRejectsAmbiguousVersions(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
versions := []connector.VersionInfo{
|
||||
{OS: "windows", Arch: "amd64", Kind: connector.ArtifactKindExecutable, Version: "1.0.0"},
|
||||
{OS: "windows", Arch: "amd64", Kind: connector.ArtifactKindExecutable, Version: "1.0.0"},
|
||||
}
|
||||
|
||||
_, ok, err := LatestCompatibleVersion(versions, "windows", "amd64", connector.ArtifactKindExecutable)
|
||||
require.False(t, ok)
|
||||
require.Error(t, err)
|
||||
require.True(t, gerr.IsService(err))
|
||||
}
|
||||
Reference in New Issue
Block a user