From 4731b8f9b993536ed61dbc065e161e8994253f0d Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 12 Sep 2017 14:12:29 -0500 Subject: fix plugin test (#7436) * fix plugin test * ugh. global state * Fix plugin test * Fix TestDeleteChannel * Remove plugin config listener when shutting down --- api/apitestlib.go | 8 +++++--- api4/apitestlib.go | 8 +++++--- api4/channel_test.go | 3 ++- api4/plugin_test.go | 14 ++++++++------ app/app.go | 5 +++-- app/apptestlib.go | 8 +++++--- app/plugins.go | 4 +++- 7 files changed, 31 insertions(+), 19 deletions(-) diff --git a/api/apitestlib.go b/api/apitestlib.go index 3f63f3ffc..276ff81e1 100644 --- a/api/apitestlib.go +++ b/api/apitestlib.go @@ -46,9 +46,6 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.RateLimitSettings.Enable = false utils.Cfg.EmailSettings.SendEmailNotifications = true utils.DisableDebugLogForTest() - if enterprise { - utils.License().Features.SetDefaults() - } th.App.NewServer() th.App.InitStores() th.App.Srv.Router = NewRouter() @@ -63,6 +60,11 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.TeamSettings.EnableOpenServer = true } + utils.SetIsLicensed(enterprise) + if enterprise { + utils.License().Features.SetDefaults() + } + return th } diff --git a/api4/apitestlib.go b/api4/apitestlib.go index d98683d32..9538eb99c 100644 --- a/api4/apitestlib.go +++ b/api4/apitestlib.go @@ -58,9 +58,6 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.RateLimitSettings.Enable = false utils.Cfg.EmailSettings.SendEmailNotifications = true utils.DisableDebugLogForTest() - if enterprise { - utils.License().Features.SetDefaults() - } th.App.NewServer() th.App.InitStores() th.App.Srv.Router = NewRouter() @@ -74,6 +71,11 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.TeamSettings.EnableOpenServer = true } + utils.SetIsLicensed(enterprise) + if enterprise { + utils.License().Features.SetDefaults() + } + if jobs.Srv.Store == nil { jobs.Srv.Store = th.App.Srv.Store } diff --git a/api4/channel_test.go b/api4/channel_test.go index 57b760178..7237eb47a 100644 --- a/api4/channel_test.go +++ b/api4/channel_test.go @@ -876,6 +876,8 @@ func TestDeleteChannel(t *testing.T) { _, resp = th.SystemAdminClient.DeleteChannel(publicChannel5.Id) CheckNoError(t, resp) + th = Setup().InitBasic().InitSystemAdmin() + isLicensed := utils.IsLicensed() license := utils.License() restrictPublicChannel := *utils.Cfg.TeamSettings.RestrictPublicChannelManagement @@ -894,7 +896,6 @@ func TestDeleteChannel(t *testing.T) { utils.License().Features.SetDefaults() utils.SetDefaultRolesBasedOnConfig() - th = Setup().InitBasic().InitSystemAdmin() Client = th.Client team = th.BasicTeam user = th.BasicUser diff --git a/api4/plugin_test.go b/api4/plugin_test.go index 898649f56..f92e58ea0 100644 --- a/api4/plugin_test.go +++ b/api4/plugin_test.go @@ -26,17 +26,21 @@ func TestPlugin(t *testing.T) { os.RemoveAll(webappDir) }() - th := Setup().InitBasic().InitSystemAdmin() + th := SetupEnterprise().InitBasic().InitSystemAdmin() defer TearDown() - th.App.InitPlugins(pluginDir, webappDir) - enablePlugins := *utils.Cfg.PluginSettings.Enable defer func() { *utils.Cfg.PluginSettings.Enable = enablePlugins }() *utils.Cfg.PluginSettings.Enable = true + th.App.InitPlugins(pluginDir, webappDir) + defer func() { + th.App.ShutDownPlugins() + th.App.PluginEnv = nil + }() + path, _ := utils.FindDir("tests") file, err := os.Open(path + "/testplugin.tar.gz") if err != nil { @@ -108,7 +112,5 @@ func TestPlugin(t *testing.T) { CheckForbiddenStatus(t, resp) _, resp = th.SystemAdminClient.RemovePlugin("bad.id") - CheckNotFoundStatus(t, resp) - - th.App.PluginEnv = nil + CheckBadRequestStatus(t, resp) } diff --git a/app/app.go b/app/app.go index 953ca285a..667c425bd 100644 --- a/app/app.go +++ b/app/app.go @@ -11,8 +11,9 @@ import ( ) type App struct { - Srv *Server - PluginEnv *pluginenv.Environment + Srv *Server + PluginEnv *pluginenv.Environment + PluginConfigListenerId string } var globalApp App diff --git a/app/apptestlib.go b/app/apptestlib.go index a640ff391..67a380f2d 100644 --- a/app/apptestlib.go +++ b/app/apptestlib.go @@ -33,9 +33,6 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.TeamSettings.MaxUsersPerTeam = 50 *utils.Cfg.RateLimitSettings.Enable = false utils.DisableDebugLogForTest() - if enterprise { - utils.License().Features.SetDefaults() - } th.App.NewServer() th.App.InitStores() th.App.StartServer() @@ -46,6 +43,11 @@ func setupTestHelper(enterprise bool) *TestHelper { *utils.Cfg.TeamSettings.EnableOpenServer = true } + utils.SetIsLicensed(enterprise) + if enterprise { + utils.License().Features.SetDefaults() + } + return th } diff --git a/app/plugins.go b/app/plugins.go index f165f7b49..f00308a86 100644 --- a/app/plugins.go +++ b/app/plugins.go @@ -354,7 +354,7 @@ func (a *App) InitPlugins(pluginPath, webappPath string) { return } - utils.AddConfigListener(func(_, _ *model.Config) { + a.PluginConfigListenerId = utils.AddConfigListener(func(_, _ *model.Config) { for _, err := range a.PluginEnv.Hooks().OnConfigurationChange() { l4g.Error(err.Error()) } @@ -412,4 +412,6 @@ func (a *App) ShutDownPlugins() { for _, err := range a.PluginEnv.Shutdown() { l4g.Error(err.Error()) } + utils.RemoveConfigListener(a.PluginConfigListenerId) + a.PluginConfigListenerId = "" } -- cgit v1.2.3-1-g7c22