2019-11-02 01:51:22 +03:00
// 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"
)
2019-11-04 01:13:25 +03:00
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" ,
} )
}
2019-11-02 01:51:22 +03:00
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 )
}
2020-09-03 05:46:02 +03:00
assert . NoError ( t , PrepareWebhooks ( repo , models . HookEventPush , & api . PushPayload { Commits : [ ] * api . PayloadCommit { { } } } ) )
2019-11-02 01:51:22 +03:00
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)
2020-09-03 05:46:02 +03:00
assert . NoError ( t , PrepareWebhooks ( repo , models . HookEventPush , & api . PushPayload { Ref : "refs/heads/feature/7791" , Commits : [ ] * api . PayloadCommit { { } } } ) )
2019-11-02 01:51:22 +03:00
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