summaryrefslogtreecommitdiffstats
path: root/cmd/mattermost/commands/webhook_test.go
diff options
context:
space:
mode:
authorBen Echols <lologarithm@gmail.com>2018-10-04 12:16:25 -0600
committerJesús Espino <jespinog@gmail.com>2018-10-04 20:16:25 +0200
commit939ee15013bcb0eeed27f57cf1d7b7192d387976 (patch)
tree5a11ac24d73625f6f32c6bbe8b9208ab79cfdd2f /cmd/mattermost/commands/webhook_test.go
parent108fabc67de253b83060c6335cd4aa3c10a0f97c (diff)
downloadchat-939ee15013bcb0eeed27f57cf1d7b7192d387976.tar.gz
chat-939ee15013bcb0eeed27f57cf1d7b7192d387976.tar.bz2
chat-939ee15013bcb0eeed27f57cf1d7b7192d387976.zip
MM-12371 Add webhook list command (#9528)
* Added start of the webhook command * start of unit tests * created a simple hook for unit test * added outgoing as well * have it all working * Add license headers to the files * Addressing code review, fixed print reverted sql change
Diffstat (limited to 'cmd/mattermost/commands/webhook_test.go')
-rw-r--r--cmd/mattermost/commands/webhook_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/cmd/mattermost/commands/webhook_test.go b/cmd/mattermost/commands/webhook_test.go
new file mode 100644
index 000000000..cdbe9d7bb
--- /dev/null
+++ b/cmd/mattermost/commands/webhook_test.go
@@ -0,0 +1,51 @@
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package commands
+
+import (
+ "strings"
+ "testing"
+
+ "github.com/mattermost/mattermost-server/api4"
+ "github.com/mattermost/mattermost-server/model"
+)
+
+func TestListWebhooks(t *testing.T) {
+ th := api4.Setup().InitBasic().InitSystemAdmin()
+ defer th.TearDown()
+ adminClient := th.SystemAdminClient
+
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnablePostUsernameOverride = true })
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnablePostIconOverride = true })
+
+ defaultRolePermissions := th.SaveDefaultRolePermissions()
+ defer func() {
+ th.RestoreDefaultRolePermissions(defaultRolePermissions)
+ }()
+ th.AddPermissionToRole(model.PERMISSION_MANAGE_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID)
+ th.RemovePermissionFromRole(model.PERMISSION_MANAGE_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID)
+
+ dispName := "myhookinc"
+ hook := &model.IncomingWebhook{DisplayName: dispName, ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId}
+ _, resp := adminClient.CreateIncomingWebhook(hook)
+ api4.CheckNoError(t, resp)
+
+ dispName2 := "myhookout"
+ outHook := &model.OutgoingWebhook{DisplayName: dispName2, ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}, Username: "some-user-name", IconURL: "http://some-icon-url/"}
+ _, resp = adminClient.CreateOutgoingWebhook(outHook)
+ api4.CheckNoError(t, resp)
+
+ output := CheckCommand(t, "webhook", "list", th.BasicTeam.Name)
+
+ if !strings.Contains(string(output), dispName) {
+ t.Fatal("should have incoming webhooks")
+ }
+
+ if !strings.Contains(string(output), dispName2) {
+ t.Fatal("should have outgoing webhooks")
+ }
+
+}