mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[MM-26507] Send license type for install plugin request (#14913)
This commit is contained in:
@@ -1371,6 +1371,111 @@ func TestInstallMarketplacePlugin(t *testing.T) {
|
||||
require.Nil(t, appErr)
|
||||
})
|
||||
|
||||
t.Run("verify EnterprisePlugins is false for TE", func(t *testing.T) {
|
||||
requestHandled := false
|
||||
|
||||
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
licenseType, ok := req.URL.Query()["enterprise_plugins"]
|
||||
require.True(t, ok)
|
||||
require.Len(t, licenseType, 1)
|
||||
require.Equal(t, "false", licenseType[0])
|
||||
|
||||
res.WriteHeader(http.StatusOK)
|
||||
json, err := json.Marshal([]*model.MarketplacePlugin{samplePlugins[0]})
|
||||
require.NoError(t, err)
|
||||
_, err = res.Write(json)
|
||||
require.NoError(t, err)
|
||||
|
||||
requestHandled = true
|
||||
}))
|
||||
defer func() { testServer.Close() }()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.PluginSettings.EnableMarketplace = true
|
||||
*cfg.PluginSettings.EnableRemoteMarketplace = true
|
||||
*cfg.PluginSettings.MarketplaceUrl = testServer.URL
|
||||
})
|
||||
|
||||
// The content of the request is irrelevant. This test only cares about enterprise_plugins.
|
||||
pRequest := &model.InstallMarketplacePluginRequest{}
|
||||
manifest, resp := th.SystemAdminClient.InstallMarketplacePlugin(pRequest)
|
||||
CheckInternalErrorStatus(t, resp)
|
||||
require.Nil(t, manifest)
|
||||
assert.True(t, requestHandled)
|
||||
})
|
||||
|
||||
t.Run("verify EnterprisePlugins is false for E10", func(t *testing.T) {
|
||||
requestHandled := false
|
||||
|
||||
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
licenseType, ok := req.URL.Query()["enterprise_plugins"]
|
||||
require.True(t, ok)
|
||||
require.Len(t, licenseType, 1)
|
||||
require.Equal(t, "false", licenseType[0])
|
||||
|
||||
res.WriteHeader(http.StatusOK)
|
||||
json, err := json.Marshal([]*model.MarketplacePlugin{})
|
||||
require.NoError(t, err)
|
||||
_, err = res.Write(json)
|
||||
require.NoError(t, err)
|
||||
|
||||
requestHandled = true
|
||||
}))
|
||||
defer func() { testServer.Close() }()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.PluginSettings.EnableMarketplace = true
|
||||
*cfg.PluginSettings.EnableRemoteMarketplace = true
|
||||
*cfg.PluginSettings.MarketplaceUrl = testServer.URL
|
||||
})
|
||||
|
||||
l := model.NewTestLicense()
|
||||
// model.NewTestLicense generates a E20 license
|
||||
*l.Features.EnterprisePlugins = false
|
||||
th.App.Srv().SetLicense(l)
|
||||
|
||||
// The content of the request is irrelevant. This test only cares about enterprise_plugins.
|
||||
pRequest := &model.InstallMarketplacePluginRequest{}
|
||||
manifest, resp := th.SystemAdminClient.InstallMarketplacePlugin(pRequest)
|
||||
CheckInternalErrorStatus(t, resp)
|
||||
require.Nil(t, manifest)
|
||||
assert.True(t, requestHandled)
|
||||
})
|
||||
|
||||
t.Run("verify EnterprisePlugins is true for E20", func(t *testing.T) {
|
||||
requestHandled := false
|
||||
|
||||
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
licenseType, ok := req.URL.Query()["enterprise_plugins"]
|
||||
require.True(t, ok)
|
||||
require.Len(t, licenseType, 1)
|
||||
require.Equal(t, "true", licenseType[0])
|
||||
|
||||
res.WriteHeader(http.StatusOK)
|
||||
json, err := json.Marshal([]*model.MarketplacePlugin{})
|
||||
require.NoError(t, err)
|
||||
_, err = res.Write(json)
|
||||
require.NoError(t, err)
|
||||
|
||||
requestHandled = true
|
||||
}))
|
||||
defer func() { testServer.Close() }()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.PluginSettings.EnableMarketplace = true
|
||||
*cfg.PluginSettings.MarketplaceUrl = testServer.URL
|
||||
})
|
||||
|
||||
th.App.Srv().SetLicense(model.NewTestLicense("enterprise_plugins"))
|
||||
|
||||
// The content of the request is irrelevant. This test only cares about enterprise_plugins.
|
||||
pRequest := &model.InstallMarketplacePluginRequest{}
|
||||
manifest, resp := th.SystemAdminClient.InstallMarketplacePlugin(pRequest)
|
||||
CheckInternalErrorStatus(t, resp)
|
||||
require.Nil(t, manifest)
|
||||
assert.True(t, requestHandled)
|
||||
})
|
||||
|
||||
t.Run("install prepackaged and remote plugins through marketplace", func(t *testing.T) {
|
||||
prepackagedPluginsDir := "prepackaged_plugins"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user