61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
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))
|
|
}
|