diff options
Diffstat (limited to 'plugin/pluginenv')
-rw-r--r-- | plugin/pluginenv/environment.go | 6 | ||||
-rw-r--r-- | plugin/pluginenv/environment_test.go | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/plugin/pluginenv/environment.go b/plugin/pluginenv/environment.go index adc9ddbde..adc02e885 100644 --- a/plugin/pluginenv/environment.go +++ b/plugin/pluginenv/environment.go @@ -112,8 +112,12 @@ func (env *Environment) ActivatePlugin(id string) error { env.mutex.Lock() defer env.mutex.Unlock() + if !plugin.IsValidId(id) { + return fmt.Errorf("invalid plugin id: %s", id) + } + if _, ok := env.activePlugins[id]; ok { - return fmt.Errorf("plugin already active: %v", id) + return nil } plugins, err := ScanSearchPath(env.searchPath) if err != nil { diff --git a/plugin/pluginenv/environment_test.go b/plugin/pluginenv/environment_test.go index 2a52b3830..91d639f69 100644 --- a/plugin/pluginenv/environment_test.go +++ b/plugin/pluginenv/environment_test.go @@ -149,7 +149,7 @@ func TestEnvironment(t *testing.T) { assert.Equal(t, env.ActivePluginIds(), []string{"foo"}) activePlugins = env.ActivePlugins() assert.Len(t, activePlugins, 1) - assert.Error(t, env.ActivatePlugin("foo")) + assert.NoError(t, env.ActivatePlugin("foo")) assert.True(t, env.IsPluginActive("foo")) hooks.On("OnDeactivate").Return(nil) |