MM-60679 - Validate playbook plugin version, based on license (#28366)

Automatic Merge
Этот коммит содержится в:
Scott Bishel
2024-10-02 12:14:32 -06:00
коммит произвёл GitHub
родитель 1ea854438a
Коммит 0048723ccd
2 изменённых файлов: 89 добавлений и 0 удалений

Просмотреть файл

@@ -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()