diff options
author | Ben Echols <lologarithm@gmail.com> | 2018-10-04 12:16:25 -0600 |
---|---|---|
committer | Jesús Espino <jespinog@gmail.com> | 2018-10-04 20:16:25 +0200 |
commit | 939ee15013bcb0eeed27f57cf1d7b7192d387976 (patch) | |
tree | 5a11ac24d73625f6f32c6bbe8b9208ab79cfdd2f /cmd/mattermost/commands/webhook_test.go | |
parent | 108fabc67de253b83060c6335cd4aa3c10a0f97c (diff) | |
download | chat-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.go | 51 |
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") + } + +} |