diff options
author | Thomas Balthazar <tbalthazar@users.noreply.github.com> | 2016-05-18 22:36:01 +0200 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2016-05-18 16:36:01 -0400 |
commit | 4f34730b3f82ee3fc1a21f3f2bf7ee5a5f8f3c0a (patch) | |
tree | 642219d85059f754c36a05633846c7ccd63fbef8 /model/incoming_webhook_test.go | |
parent | 55f6a0b21c46f77fb33e1af29c5960298bdb6907 (diff) | |
download | chat-4f34730b3f82ee3fc1a21f3f2bf7ee5a5f8f3c0a.tar.gz chat-4f34730b3f82ee3fc1a21f3f2bf7ee5a5f8f3c0a.tar.bz2 chat-4f34730b3f82ee3fc1a21f3f2bf7ee5a5f8f3c0a.zip |
Integrations: Enable <!channel> notifications in incoming webhooks (#3039)
Diffstat (limited to 'model/incoming_webhook_test.go')
-rw-r--r-- | model/incoming_webhook_test.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/model/incoming_webhook_test.go b/model/incoming_webhook_test.go index 8b62bbbdf..8246b6c0a 100644 --- a/model/incoming_webhook_test.go +++ b/model/incoming_webhook_test.go @@ -101,6 +101,65 @@ func TestIncomingWebhookPreUpdate(t *testing.T) { o.PreUpdate() } +func TestIncomingWebhookRequestFromJson_Announcements(t *testing.T) { + text := "This message will send a notification to all team members in the channel where you post the message, because it contains: <!channel>" + expected := "This message will send a notification to all team members in the channel where you post the message, because it contains: @channel" + + // simple payload + payload := `{"text": "` + text + `"}` + data := strings.NewReader(payload) + iwr := IncomingWebhookRequestFromJson(data) + + if iwr == nil { + t.Fatal("IncomingWebhookRequest should not be nil") + } + if iwr.Text != expected { + t.Fatalf("Sample text should be: %s, got: %s", expected, iwr.Text) + } + + // payload with attachment (pretext, title, text, value) + payload = `{ + "attachments": [ + { + "pretext": "` + text + `", + "title": "` + text + `", + "text": "` + text + `", + "fields": [ + { + "title": "A title", + "value": "` + text + `", + "short": false + } + ] + } + ] + }` + + data = strings.NewReader(payload) + iwr = IncomingWebhookRequestFromJson(data) + + if iwr == nil { + t.Fatal("IncomingWebhookRequest should not be nil") + } + + attachments := iwr.Attachments.([]interface{}) + attachment := attachments[0].(map[string]interface{}) + if attachment["pretext"] != expected { + t.Fatalf("Sample attachment pretext should be: %s, got: %s", expected, attachment["pretext"]) + } + if attachment["text"] != expected { + t.Fatalf("Sample attachment text should be: %s, got: %s", expected, attachment["text"]) + } + if attachment["title"] != expected { + t.Fatalf("Sample attachment title should be: %s, got: %s", expected, attachment["title"]) + } + fields := attachment["fields"].([]interface{}) + field := fields[0].(map[string]interface{}) + if field["value"] != expected { + t.Fatalf("Sample attachment field value should be: %s, got: %s", expected, field["value"]) + } +} + func TestIncomingWebhookRequestFromJson(t *testing.T) { texts := []string{ `this is a test`, |