summaryrefslogtreecommitdiffstats
path: root/web/webhook_test.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-07-06 09:07:36 +0100
committerCarlos Tadeu Panato Junior <ctadeu@gmail.com>2018-07-06 10:07:36 +0200
commit0896b5c64ef224f0f8835b9727d1c1b94cbe7c29 (patch)
tree4ead8f6f96b730471fafac211a5f03ee0bc06eeb /web/webhook_test.go
parent8d3ea1bbf6f6ef6164d26b6801c46cfe7f936fa1 (diff)
downloadchat-0896b5c64ef224f0f8835b9727d1c1b94cbe7c29.tar.gz
chat-0896b5c64ef224f0f8835b9727d1c1b94cbe7c29.tar.bz2
chat-0896b5c64ef224f0f8835b9727d1c1b94cbe7c29.zip
MM-11106: Allow systeadmin webook to post to read only town square. (#9051)
Diffstat (limited to 'web/webhook_test.go')
-rw-r--r--web/webhook_test.go29
1 files changed, 23 insertions, 6 deletions
diff --git a/web/webhook_test.go b/web/webhook_test.go
index 64ce7bf25..07fca70ed 100644
--- a/web/webhook_test.go
+++ b/web/webhook_test.go
@@ -97,13 +97,30 @@ func TestIncomingWebhook(t *testing.T) {
assert.True(t, resp.StatusCode == http.StatusOK)
})
- t.Run("WebhookExperimentReadOnly", func(t *testing.T) {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = false })
- _, err := http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL)))
- assert.Nil(t, err, "Not read only")
-
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = true })
+ t.Run("WebhookExperimentalReadOnly", func(t *testing.T) {
th.App.SetLicense(model.NewTestLicense())
+ th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = true })
+
+ // Read only default channel should fail.
+ resp, err := http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL)))
+ require.Nil(t, err)
+ assert.True(t, resp.StatusCode != http.StatusOK)
+
+ // None-default channel should still work.
+ resp, err = http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", th.BasicChannel.Name)))
+ require.Nil(t, err)
+ assert.True(t, resp.StatusCode == http.StatusOK)
+
+ // System-Admin Owned Hook
+ adminHook, err := th.App.CreateIncomingWebhookForChannel(th.SystemAdminUser.Id, th.BasicChannel, &model.IncomingWebhook{ChannelId: th.BasicChannel.Id})
+ require.Nil(t, err)
+ adminUrl := ApiClient.Url + "/hooks/" + adminHook.Id
+
+ resp, err = http.Post(adminUrl, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL)))
+ require.Nil(t, err)
+ assert.True(t, resp.StatusCode == http.StatusOK)
+
+ th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = false })
})
t.Run("WebhookAttachments", func(t *testing.T) {