diff options
Diffstat (limited to 'cmd/mattermost/commands/webhook_test.go')
-rw-r--r-- | cmd/mattermost/commands/webhook_test.go | 45 |
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") + } +} |