mirror of
https://github.com/go-gitea/gitea.git
synced 2025-05-13 01:12:36 -04:00
Add a webhook push test for dev branch (#34421)
This commit is contained in:
parent
0902d42fc7
commit
355e9a9d54
@ -56,8 +56,12 @@ func TestNewWebHookLink(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPICreateWebhookForRepo(t *testing.T, session *TestSession, userName, repoName, url, event string) {
|
func testAPICreateWebhookForRepo(t *testing.T, session *TestSession, userName, repoName, url, event string, branchFilter ...string) {
|
||||||
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeAll)
|
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeAll)
|
||||||
|
var branchFilterString string
|
||||||
|
if len(branchFilter) > 0 {
|
||||||
|
branchFilterString = branchFilter[0]
|
||||||
|
}
|
||||||
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/"+userName+"/"+repoName+"/hooks", api.CreateHookOption{
|
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/"+userName+"/"+repoName+"/hooks", api.CreateHookOption{
|
||||||
Type: "gitea",
|
Type: "gitea",
|
||||||
Config: api.CreateHookOptionConfig{
|
Config: api.CreateHookOptionConfig{
|
||||||
@ -66,6 +70,7 @@ func testAPICreateWebhookForRepo(t *testing.T, session *TestSession, userName, r
|
|||||||
},
|
},
|
||||||
Events: []string{event},
|
Events: []string{event},
|
||||||
Active: true,
|
Active: true,
|
||||||
|
BranchFilter: branchFilterString,
|
||||||
}).AddTokenAuth(token)
|
}).AddTokenAuth(token)
|
||||||
MakeRequest(t, req, http.StatusCreated)
|
MakeRequest(t, req, http.StatusCreated)
|
||||||
}
|
}
|
||||||
@ -371,6 +376,45 @@ func Test_WebhookPush(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_WebhookPushDevBranch(t *testing.T) {
|
||||||
|
var payloads []api.PushPayload
|
||||||
|
var triggeredEvent string
|
||||||
|
provider := newMockWebhookProvider(func(r *http.Request) {
|
||||||
|
content, _ := io.ReadAll(r.Body)
|
||||||
|
var payload api.PushPayload
|
||||||
|
err := json.Unmarshal(content, &payload)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
payloads = append(payloads, payload)
|
||||||
|
triggeredEvent = "push"
|
||||||
|
}, http.StatusOK)
|
||||||
|
defer provider.Close()
|
||||||
|
|
||||||
|
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
|
||||||
|
// 1. create a new webhook with special webhook for repo1
|
||||||
|
session := loginUser(t, "user2")
|
||||||
|
|
||||||
|
// only for dev branch
|
||||||
|
testAPICreateWebhookForRepo(t, session, "user2", "repo1", provider.URL(), "push", "develop")
|
||||||
|
|
||||||
|
// 2. this should not trigger the webhook
|
||||||
|
testCreateFile(t, session, "user2", "repo1", "master", "test_webhook_push.md", "# a test file for webhook push")
|
||||||
|
assert.Empty(t, triggeredEvent)
|
||||||
|
assert.Empty(t, payloads)
|
||||||
|
|
||||||
|
// 3. trigger the webhook
|
||||||
|
testCreateFile(t, session, "user2", "repo1", "develop", "test_webhook_push.md", "# a test file for webhook push")
|
||||||
|
|
||||||
|
// 4. validate the webhook is triggered
|
||||||
|
assert.Equal(t, "push", triggeredEvent)
|
||||||
|
assert.Len(t, payloads, 1)
|
||||||
|
assert.Equal(t, "repo1", payloads[0].Repo.Name)
|
||||||
|
assert.Equal(t, "develop", payloads[0].Branch())
|
||||||
|
assert.Equal(t, "user2/repo1", payloads[0].Repo.FullName)
|
||||||
|
assert.Len(t, payloads[0].Commits, 1)
|
||||||
|
assert.Equal(t, []string{"test_webhook_push.md"}, payloads[0].Commits[0].Added)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func Test_WebhookIssue(t *testing.T) {
|
func Test_WebhookIssue(t *testing.T) {
|
||||||
var payloads []api.IssuePayload
|
var payloads []api.IssuePayload
|
||||||
var triggeredEvent string
|
var triggeredEvent string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user