summaryrefslogtreecommitdiffstats
path: root/cmd/mattermost/commands/webhook_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/mattermost/commands/webhook_test.go')
-rw-r--r--cmd/mattermost/commands/webhook_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/cmd/mattermost/commands/webhook_test.go b/cmd/mattermost/commands/webhook_test.go
index cdbe9d7bb..1eea36b76 100644
--- a/cmd/mattermost/commands/webhook_test.go
+++ b/cmd/mattermost/commands/webhook_test.go
@@ -4,6 +4,7 @@
package commands
import (
+ "github.com/stretchr/testify/require"
"strings"
"testing"
@@ -49,3 +50,47 @@ func TestListWebhooks(t *testing.T) {
}
}
+
+func TestCreateIncomingWebhook(t *testing.T) {
+ th := api4.Setup().InitBasic().InitSystemAdmin()
+ defer th.TearDown()
+
+ 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)
+
+ // should fail because you need to specify valid channel
+ require.Error(t, RunCommand(t, "webhook", "create-incoming"))
+ require.Error(t, RunCommand(t, "webhook", "create-incoming", "--channel", th.BasicTeam.Name+":doesnotexist"))
+
+ // should fail because you need to specify valid user
+ require.Error(t, RunCommand(t, "webhook", "create-incoming", "--channel", th.BasicChannel.Id))
+ require.Error(t, RunCommand(t, "webhook", "create-incoming", "--channel", th.BasicChannel.Id, "--user", "doesnotexist"))
+
+ description := "myhookinc"
+ displayName := "myhookinc"
+ CheckCommand(t, "webhook", "create-incoming", "--channel", th.BasicChannel.Id, "--user", th.BasicUser.Email, "--description", description, "--display-name", displayName)
+
+ webhooks, err := th.App.GetIncomingWebhooksPage(0, 1000)
+ if err != nil {
+ t.Fatal("unable to retrieve incoming webhooks")
+ }
+
+ found := false
+ for _, webhook := range webhooks {
+ if webhook.Description == description && webhook.UserId == th.BasicUser.Id {
+ found = true
+ }
+ }
+ if !found {
+ t.Fatal("Failed to create incoming webhook")
+ }
+}