|
|
|
|
@ -8,15 +8,25 @@ import ( |
|
|
|
|
"github.com/grafana/grafana/pkg/plugins/log" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func fakeCompatOpts() CompatOpts { |
|
|
|
|
return NewCompatOpts("7.0.0", "linux", "amd64") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestSelectSystemCompatibleVersion(t *testing.T) { |
|
|
|
|
logger := log.NewTestPrettyLogger() |
|
|
|
|
t.Run("Should return error when requested version does not exist", func(t *testing.T) { |
|
|
|
|
_, err := SelectSystemCompatibleVersion(log.NewTestPrettyLogger(), createPluginVersions(versionArg{version: "version"}), "test", "1.1.1", SystemCompatOpts{}) |
|
|
|
|
_, err := SelectSystemCompatibleVersion( |
|
|
|
|
log.NewTestPrettyLogger(), |
|
|
|
|
createPluginVersions(versionArg{version: "version"}), |
|
|
|
|
"test", "1.1.1", fakeCompatOpts()) |
|
|
|
|
require.Error(t, err) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("Should return error when no version supports current arch", func(t *testing.T) { |
|
|
|
|
_, err := SelectSystemCompatibleVersion(logger, createPluginVersions(versionArg{version: "version", arch: []string{"non-existent"}}), "test", "", SystemCompatOpts{}) |
|
|
|
|
_, err := SelectSystemCompatibleVersion( |
|
|
|
|
logger, |
|
|
|
|
createPluginVersions(versionArg{version: "version", arch: []string{"non-existent"}}), |
|
|
|
|
"test", "", fakeCompatOpts()) |
|
|
|
|
require.Error(t, err) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
@ -24,7 +34,7 @@ func TestSelectSystemCompatibleVersion(t *testing.T) { |
|
|
|
|
_, err := SelectSystemCompatibleVersion(logger, createPluginVersions( |
|
|
|
|
versionArg{version: "2.0.0"}, |
|
|
|
|
versionArg{version: "1.1.1", arch: []string{"non-existent"}}, |
|
|
|
|
), "test", "1.1.1", SystemCompatOpts{}) |
|
|
|
|
), "test", "1.1.1", fakeCompatOpts()) |
|
|
|
|
require.Error(t, err) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
@ -32,20 +42,35 @@ func TestSelectSystemCompatibleVersion(t *testing.T) { |
|
|
|
|
ver, err := SelectSystemCompatibleVersion(logger, createPluginVersions( |
|
|
|
|
versionArg{version: "2.0.0", arch: []string{"non-existent"}}, |
|
|
|
|
versionArg{version: "1.0.0"}, |
|
|
|
|
), "test", "", SystemCompatOpts{}) |
|
|
|
|
), "test", "", fakeCompatOpts()) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
require.Equal(t, "1.0.0", ver.Version) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("Should return latest version when no version specified", func(t *testing.T) { |
|
|
|
|
ver, err := SelectSystemCompatibleVersion(logger, createPluginVersions(versionArg{version: "2.0.0"}, versionArg{version: "1.0.0"}), "test", "", SystemCompatOpts{}) |
|
|
|
|
ver, err := SelectSystemCompatibleVersion(logger, createPluginVersions( |
|
|
|
|
versionArg{version: "2.0.0"}, |
|
|
|
|
versionArg{version: "1.0.0"}), |
|
|
|
|
"test", "", fakeCompatOpts()) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
require.Equal(t, "2.0.0", ver.Version) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("Should return requested version", func(t *testing.T) { |
|
|
|
|
ver, err := SelectSystemCompatibleVersion(logger, createPluginVersions(versionArg{version: "2.0.0"}, versionArg{version: "1.0.0"}), "test", "1.0.0", SystemCompatOpts{}) |
|
|
|
|
ver, err := SelectSystemCompatibleVersion(logger, createPluginVersions( |
|
|
|
|
versionArg{version: "2.0.0"}, |
|
|
|
|
versionArg{version: "1.0.0"}), |
|
|
|
|
"test", "1.0.0", fakeCompatOpts()) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
require.Equal(t, "1.0.0", ver.Version) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("Should return error when requested version is not compatible", func(t *testing.T) { |
|
|
|
|
isCompatible := false |
|
|
|
|
_, err := SelectSystemCompatibleVersion(logger, |
|
|
|
|
createPluginVersions(versionArg{version: "2.0.0", isCompatible: &isCompatible}), |
|
|
|
|
"test", "2.0.0", fakeCompatOpts(), |
|
|
|
|
) |
|
|
|
|
require.ErrorContains(t, err, "not compatible") |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|