summaryrefslogtreecommitdiffstats
path: root/services/webhook/webhook_test.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2020-12-08 18:41:14 +0800
committerGitHub <noreply@github.com>2020-12-08 11:41:14 +0100
commit42354dfe45fa0cabb59674b896c44a55a56cf163 (patch)
tree86b859881da6ef6bf288183933d7bc519dedc3d4 /services/webhook/webhook_test.go
parent4d66ee1f74799196cbdbfd925c3f95e552584b42 (diff)
downloadgitea-42354dfe45fa0cabb59674b896c44a55a56cf163.tar.gz
gitea-42354dfe45fa0cabb59674b896c44a55a56cf163.zip
Move webhook type from int to string (#13664)
* Move webhook type from int to string * rename webhook_services * finish refactor * Fix merge * Ignore unnecessary ci Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'services/webhook/webhook_test.go')
-rw-r--r--services/webhook/webhook_test.go79
1 files changed, 79 insertions, 0 deletions
diff --git a/services/webhook/webhook_test.go b/services/webhook/webhook_test.go
new file mode 100644
index 0000000000..10c32a9485
--- /dev/null
+++ b/services/webhook/webhook_test.go
@@ -0,0 +1,79 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package webhook
+
+import (
+ "testing"
+
+ "code.gitea.io/gitea/models"
+ api "code.gitea.io/gitea/modules/structs"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestWebhook_GetSlackHook(t *testing.T) {
+ w := &models.Webhook{
+ Meta: `{"channel": "foo", "username": "username", "color": "blue"}`,
+ }
+ slackHook := GetSlackHook(w)
+ assert.Equal(t, *slackHook, SlackMeta{
+ Channel: "foo",
+ Username: "username",
+ Color: "blue",
+ })
+}
+
+func TestPrepareWebhooks(t *testing.T) {
+ assert.NoError(t, models.PrepareTestDatabase())
+
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
+ hookTasks := []*models.HookTask{
+ {RepoID: repo.ID, HookID: 1, EventType: models.HookEventPush},
+ }
+ for _, hookTask := range hookTasks {
+ models.AssertNotExistsBean(t, hookTask)
+ }
+ assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Commits: []*api.PayloadCommit{{}}}))
+ for _, hookTask := range hookTasks {
+ models.AssertExistsAndLoadBean(t, hookTask)
+ }
+}
+
+func TestPrepareWebhooksBranchFilterMatch(t *testing.T) {
+ assert.NoError(t, models.PrepareTestDatabase())
+
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
+ hookTasks := []*models.HookTask{
+ {RepoID: repo.ID, HookID: 4, EventType: models.HookEventPush},
+ }
+ for _, hookTask := range hookTasks {
+ models.AssertNotExistsBean(t, hookTask)
+ }
+ // this test also ensures that * doesn't handle / in any special way (like shell would)
+ assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Ref: "refs/heads/feature/7791", Commits: []*api.PayloadCommit{{}}}))
+ for _, hookTask := range hookTasks {
+ models.AssertExistsAndLoadBean(t, hookTask)
+ }
+}
+
+func TestPrepareWebhooksBranchFilterNoMatch(t *testing.T) {
+ assert.NoError(t, models.PrepareTestDatabase())
+
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
+ hookTasks := []*models.HookTask{
+ {RepoID: repo.ID, HookID: 4, EventType: models.HookEventPush},
+ }
+ for _, hookTask := range hookTasks {
+ models.AssertNotExistsBean(t, hookTask)
+ }
+ assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Ref: "refs/heads/fix_weird_bug"}))
+
+ for _, hookTask := range hookTasks {
+ models.AssertNotExistsBean(t, hookTask)
+ }
+}
+
+// TODO TestHookTask_deliver
+
+// TODO TestDeliverHooks