diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2020-12-08 18:41:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 11:41:14 +0100 |
commit | 42354dfe45fa0cabb59674b896c44a55a56cf163 (patch) | |
tree | 86b859881da6ef6bf288183933d7bc519dedc3d4 /services/webhook/webhook_test.go | |
parent | 4d66ee1f74799196cbdbfd925c3f95e552584b42 (diff) | |
download | gitea-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.go | 79 |
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 |