diff options
author | Joram Wilander <jwawilander@gmail.com> | 2015-09-22 15:47:57 -0400 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2015-09-22 15:47:57 -0400 |
commit | ac7918c5540900ab0dbe43d61b8c1155e4279b55 (patch) | |
tree | 2e519e101e995d24d656d7cf1f7a9d404303a364 /web/web_test.go | |
parent | a44e8f0cd904d386caea410398dcaf7dbfd9c138 (diff) | |
parent | 98186e5018bbc604796d4f9762c93f4f75e2913f (diff) | |
download | chat-ac7918c5540900ab0dbe43d61b8c1155e4279b55.tar.gz chat-ac7918c5540900ab0dbe43d61b8c1155e4279b55.tar.bz2 chat-ac7918c5540900ab0dbe43d61b8c1155e4279b55.zip |
Merge pull request #715 from mattermost/plt-27
PLT-27 Implement incoming webhooks.
Diffstat (limited to 'web/web_test.go')
-rw-r--r-- | web/web_test.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/web/web_test.go b/web/web_test.go index 3da7eb2dc..1cb1c0a34 100644 --- a/web/web_test.go +++ b/web/web_test.go @@ -180,6 +180,51 @@ func TestGetAccessToken(t *testing.T) { } } +func TestIncomingWebhook(t *testing.T) { + Setup() + + team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + team = ApiClient.Must(ApiClient.CreateTeam(team)).Data.(*model.Team) + + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user = ApiClient.Must(ApiClient.CreateUser(user, "")).Data.(*model.User) + store.Must(api.Srv.Store.User().VerifyEmail(user.Id)) + + ApiClient.LoginByEmail(team.Name, user.Email, "pwd") + + channel1 := &model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} + channel1 = ApiClient.Must(ApiClient.CreateChannel(channel1)).Data.(*model.Channel) + + if utils.Cfg.ServiceSettings.AllowIncomingWebhooks { + hook1 := &model.IncomingWebhook{ChannelId: channel1.Id} + hook1 = ApiClient.Must(ApiClient.CreateIncomingWebhook(hook1)).Data.(*model.IncomingWebhook) + + payload := "payload={\"text\": \"test text\"}" + if _, err := ApiClient.PostToWebhook(hook1.Id, payload); err != nil { + t.Fatal(err) + } + + payload = "payload={\"text\": \"\"}" + if _, err := ApiClient.PostToWebhook(hook1.Id, payload); err == nil { + t.Fatal("should have errored - no text to post") + } + + payload = "payload={\"text\": \"test text\", \"channel\": \"junk\"}" + if _, err := ApiClient.PostToWebhook(hook1.Id, payload); err == nil { + t.Fatal("should have errored - bad channel") + } + + payload = "payload={\"text\": \"test text\"}" + if _, err := ApiClient.PostToWebhook("abc123", payload); err == nil { + t.Fatal("should have errored - bad hook") + } + } else { + if _, err := ApiClient.PostToWebhook("123", "123"); err == nil { + t.Fatal("should have failed - webhooks turned off") + } + } +} + func TestZZWebTearDown(t *testing.T) { // *IMPORTANT* // This should be the last function in any test file |