summaryrefslogtreecommitdiffstats
path: root/app/plugin_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/plugin_test.go')
-rw-r--r--app/plugin_test.go59
1 files changed, 56 insertions, 3 deletions
diff --git a/app/plugin_test.go b/app/plugin_test.go
index 9ad5dc1fa..db5954d4d 100644
--- a/app/plugin_test.go
+++ b/app/plugin_test.go
@@ -7,8 +7,8 @@ import (
"errors"
"net/http"
"net/http/httptest"
- "strings"
"testing"
+ "time"
"github.com/gorilla/mux"
"github.com/stretchr/testify/assert"
@@ -158,6 +158,20 @@ func TestPluginCommands(t *testing.T) {
require.Nil(t, th.App.EnablePlugin("foo"))
+ // Ideally, we would wait for the websocket activation event instead of just sleeping.
+ time.Sleep(500 * time.Millisecond)
+
+ pluginStatuses, err := th.App.GetPluginStatuses()
+ require.Nil(t, err)
+ found := false
+ for _, pluginStatus := range pluginStatuses {
+ if pluginStatus.PluginId == "foo" {
+ require.Equal(t, model.PluginStateRunning, pluginStatus.State)
+ found = true
+ }
+ }
+ require.True(t, found, "failed to find plugin foo in plugin statuses")
+
resp, err := th.App.ExecuteCommand(&model.CommandArgs{
Command: "/foo2",
TeamId: th.BasicTeam.Id,
@@ -216,7 +230,46 @@ func TestPluginBadActivation(t *testing.T) {
t.Run("EnablePlugin bad activation", func(t *testing.T) {
err := th.App.EnablePlugin("foo")
- assert.NotNil(t, err)
- assert.True(t, strings.Contains(err.DetailedError, "won't activate for some reason"))
+ assert.Nil(t, err)
+
+ // Ideally, we would wait for the websocket activation event instead of just
+ // sleeping.
+ time.Sleep(500 * time.Millisecond)
+
+ pluginStatuses, err := th.App.GetPluginStatuses()
+ require.Nil(t, err)
+ found := false
+ for _, pluginStatus := range pluginStatuses {
+ if pluginStatus.PluginId == "foo" {
+ require.Equal(t, model.PluginStateFailedToStart, pluginStatus.State)
+ found = true
+ }
+ }
+ require.True(t, found, "failed to find plugin foo in plugin statuses")
+ })
+}
+
+func TestGetPluginStatusesDisabled(t *testing.T) {
+ th := Setup().InitBasic()
+ defer th.TearDown()
+
+ th.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg.PluginSettings.Enable = false
})
+
+ _, err := th.App.GetPluginStatuses()
+ require.EqualError(t, err, "GetPluginStatuses: Plugins have been disabled. Please check your logs for details., ")
+}
+
+func TestGetPluginStatuses(t *testing.T) {
+ th := Setup().InitBasic()
+ defer th.TearDown()
+
+ th.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg.PluginSettings.Enable = true
+ })
+
+ pluginStatuses, err := th.App.GetPluginStatuses()
+ require.Nil(t, err)
+ require.NotNil(t, pluginStatuses)
}