add test for webhook default method
https://github.com/go-gitea/gitea/pull/29690
This commit is contained in:
parent
c243323b4a
commit
ed6f724a5d
1 changed files with 13 additions and 4 deletions
|
@ -233,7 +233,8 @@ func TestWebhookDeliverSpecificTypes(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
type hookCase struct {
|
type hookCase struct {
|
||||||
gotBody chan []byte
|
gotBody chan []byte
|
||||||
|
expectedMethod string
|
||||||
}
|
}
|
||||||
|
|
||||||
cases := map[string]hookCase{
|
cases := map[string]hookCase{
|
||||||
|
@ -256,7 +257,8 @@ func TestWebhookDeliverSpecificTypes(t *testing.T) {
|
||||||
gotBody: make(chan []byte, 1),
|
gotBody: make(chan []byte, 1),
|
||||||
},
|
},
|
||||||
webhook_module.MATRIX: {
|
webhook_module.MATRIX: {
|
||||||
gotBody: make(chan []byte, 1),
|
gotBody: make(chan []byte, 1),
|
||||||
|
expectedMethod: "PUT",
|
||||||
},
|
},
|
||||||
webhook_module.WECHATWORK: {
|
webhook_module.WECHATWORK: {
|
||||||
gotBody: make(chan []byte, 1),
|
gotBody: make(chan []byte, 1),
|
||||||
|
@ -271,6 +273,13 @@ func TestWebhookDeliverSpecificTypes(t *testing.T) {
|
||||||
|
|
||||||
typ := strings.Split(r.URL.Path, "/")[1] // take first segment (after skipping leading slash)
|
typ := strings.Split(r.URL.Path, "/")[1] // take first segment (after skipping leading slash)
|
||||||
hc := cases[typ]
|
hc := cases[typ]
|
||||||
|
|
||||||
|
if hc.expectedMethod != "" {
|
||||||
|
assert.Equal(t, hc.expectedMethod, r.Method, r.URL.Path)
|
||||||
|
} else {
|
||||||
|
assert.Equal(t, "POST", r.Method, r.URL.Path)
|
||||||
|
}
|
||||||
|
|
||||||
require.NotNil(t, hc.gotBody, r.URL.Path)
|
require.NotNil(t, hc.gotBody, r.URL.Path)
|
||||||
body, err := io.ReadAll(r.Body)
|
body, err := io.ReadAll(r.Body)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -293,8 +302,8 @@ func TestWebhookDeliverSpecificTypes(t *testing.T) {
|
||||||
IsActive: true,
|
IsActive: true,
|
||||||
Type: typ,
|
Type: typ,
|
||||||
URL: s.URL + "/" + typ,
|
URL: s.URL + "/" + typ,
|
||||||
HTTPMethod: "POST",
|
HTTPMethod: "", // should fallback to POST, when left unset by the specific hook
|
||||||
ContentType: 0, // set to 0 so that falling back to default request fails with "invalid content type"
|
ContentType: 0, // set to 0 so that falling back to default request fails with "invalid content type"
|
||||||
Meta: "{}",
|
Meta: "{}",
|
||||||
}
|
}
|
||||||
assert.NoError(t, webhook_model.CreateWebhook(db.DefaultContext, hook))
|
assert.NoError(t, webhook_model.CreateWebhook(db.DefaultContext, hook))
|
||||||
|
|
Loading…
Reference in a new issue