MM-60679 - Validate playbook plugin version, based on license (#28366)
Automatic Merge
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
1ea854438a
Коммит
0048723ccd
@@ -1316,6 +1316,78 @@ func TestGetPrepackagedPluginInMarketplace(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetPrepackagedPlaybooksPluginIn(t *testing.T) {
|
||||
th := Setup(t)
|
||||
defer th.TearDown()
|
||||
|
||||
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
res.WriteHeader(http.StatusOK)
|
||||
json, err := json.Marshal([]*model.MarketplacePlugin{})
|
||||
require.NoError(t, err)
|
||||
res.Write(json)
|
||||
}))
|
||||
defer testServer.Close()
|
||||
|
||||
prepackagePlugins := []*plugin.PrepackagedPlugin{
|
||||
{
|
||||
Manifest: &model.Manifest{
|
||||
Version: "1.40.0",
|
||||
Id: "playbooks",
|
||||
},
|
||||
},
|
||||
{
|
||||
Manifest: &model.Manifest{
|
||||
Version: "2.0.1",
|
||||
Id: "playbooks",
|
||||
},
|
||||
},
|
||||
}
|
||||
env := th.App.GetPluginsEnvironment()
|
||||
env.SetPrepackagedPlugins(prepackagePlugins, nil)
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.PluginSettings.Enable = true
|
||||
*cfg.PluginSettings.EnableMarketplace = true
|
||||
*cfg.PluginSettings.MarketplaceURL = testServer.URL
|
||||
})
|
||||
|
||||
t.Run("playbooks v1 is returned if not licensed", func(t *testing.T) {
|
||||
plugins, _, err := th.SystemAdminClient.GetMarketplacePlugins(context.Background(), &model.MarketplacePluginFilter{})
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedPlugins := prepackagePlugins[0]
|
||||
|
||||
require.Equal(t, expectedPlugins.Manifest.Version, plugins[0].Manifest.Version)
|
||||
require.Len(t, plugins, 1)
|
||||
})
|
||||
|
||||
t.Run("playbooks v2 is returned if Enterprise licensed", func(t *testing.T) {
|
||||
lic := th.App.Srv().License()
|
||||
th.App.Srv().SetLicense(model.NewTestLicenseSKU("enterprise"))
|
||||
defer th.App.Srv().SetLicense(lic)
|
||||
|
||||
plugins, _, err := th.SystemAdminClient.GetMarketplacePlugins(context.Background(), &model.MarketplacePluginFilter{})
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedPlugins := prepackagePlugins[1]
|
||||
require.Equal(t, expectedPlugins.Manifest.Version, plugins[0].Manifest.Version)
|
||||
require.Len(t, plugins, 1)
|
||||
})
|
||||
|
||||
t.Run("playbooks v1 is returned if professional licensed", func(t *testing.T) {
|
||||
lic := th.App.Srv().License()
|
||||
th.App.Srv().SetLicense(model.NewTestLicenseSKU("professional"))
|
||||
defer th.App.Srv().SetLicense(lic)
|
||||
|
||||
plugins, _, err := th.SystemAdminClient.GetMarketplacePlugins(context.Background(), &model.MarketplacePluginFilter{})
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedPlugins := prepackagePlugins[0]
|
||||
require.Equal(t, expectedPlugins.Manifest.Version, plugins[0].Manifest.Version)
|
||||
require.Len(t, plugins, 1)
|
||||
})
|
||||
}
|
||||
|
||||
func TestInstallMarketplacePlugin(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
|
||||
Ссылка в новой задаче
Block a user