@@ -84,17 +84,11 @@ type mockWebhookProvider struct {
8484 server * httptest.Server
8585}
8686
87- func newMockWebhookProvider (callback func (content string ) ) * mockWebhookProvider {
87+ func newMockWebhookProvider (callback func (r * http. Request ), status int ) * mockWebhookProvider {
8888 m := & mockWebhookProvider {}
8989 m .server = httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
90- bs , err := io .ReadAll (r .Body )
91- if err != nil {
92- w .WriteHeader (http .StatusInternalServerError )
93- return
94- }
95-
96- callback (string (bs ))
97- w .WriteHeader (http .StatusOK )
90+ callback (r )
91+ w .WriteHeader (status )
9892 }))
9993 return m
10094}
@@ -117,13 +111,14 @@ func (m *mockWebhookProvider) Close() {
117111func Test_WebhookCreate (t * testing.T ) {
118112 var payloads []api.CreatePayload
119113 var triggeredEvent string
120- provider := newMockWebhookProvider (func (content string ) {
114+ provider := newMockWebhookProvider (func (r * http.Request ) {
115+ content , _ := io .ReadAll (r .Body )
121116 var payload api.CreatePayload
122117 err := json .Unmarshal ([]byte (content ), & payload )
123118 assert .NoError (t , err )
124119 payloads = append (payloads , payload )
125120 triggeredEvent = string (webhook_module .HookEventCreate )
126- })
121+ }, http . StatusOK )
127122 defer provider .Close ()
128123
129124 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -148,13 +143,14 @@ func Test_WebhookCreate(t *testing.T) {
148143func Test_WebhookDelete (t * testing.T ) {
149144 var payloads []api.DeletePayload
150145 var triggeredEvent string
151- provider := newMockWebhookProvider (func (content string ) {
146+ provider := newMockWebhookProvider (func (r * http.Request ) {
147+ content , _ := io .ReadAll (r .Body )
152148 var payload api.DeletePayload
153149 err := json .Unmarshal ([]byte (content ), & payload )
154150 assert .NoError (t , err )
155151 payloads = append (payloads , payload )
156152 triggeredEvent = "delete"
157- })
153+ }, http . StatusOK )
158154 defer provider .Close ()
159155
160156 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -180,13 +176,14 @@ func Test_WebhookDelete(t *testing.T) {
180176func Test_WebhookFork (t * testing.T ) {
181177 var payloads []api.ForkPayload
182178 var triggeredEvent string
183- provider := newMockWebhookProvider (func (content string ) {
179+ provider := newMockWebhookProvider (func (r * http.Request ) {
180+ content , _ := io .ReadAll (r .Body )
184181 var payload api.ForkPayload
185182 err := json .Unmarshal ([]byte (content ), & payload )
186183 assert .NoError (t , err )
187184 payloads = append (payloads , payload )
188185 triggeredEvent = "fork"
189- })
186+ }, http . StatusOK )
190187 defer provider .Close ()
191188
192189 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -211,13 +208,14 @@ func Test_WebhookFork(t *testing.T) {
211208func Test_WebhookIssueComment (t * testing.T ) {
212209 var payloads []api.IssueCommentPayload
213210 var triggeredEvent string
214- provider := newMockWebhookProvider (func (content string ) {
211+ provider := newMockWebhookProvider (func (r * http.Request ) {
212+ content , _ := io .ReadAll (r .Body )
215213 var payload api.IssueCommentPayload
216214 err := json .Unmarshal ([]byte (content ), & payload )
217215 assert .NoError (t , err )
218216 payloads = append (payloads , payload )
219217 triggeredEvent = "issue_comment"
220- })
218+ }, http . StatusOK )
221219 defer provider .Close ()
222220
223221 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -245,13 +243,14 @@ func Test_WebhookIssueComment(t *testing.T) {
245243func Test_WebhookRelease (t * testing.T ) {
246244 var payloads []api.ReleasePayload
247245 var triggeredEvent string
248- provider := newMockWebhookProvider (func (content string ) {
246+ provider := newMockWebhookProvider (func (r * http.Request ) {
247+ content , _ := io .ReadAll (r .Body )
249248 var payload api.ReleasePayload
250249 err := json .Unmarshal ([]byte (content ), & payload )
251250 assert .NoError (t , err )
252251 payloads = append (payloads , payload )
253252 triggeredEvent = "release"
254- })
253+ }, http . StatusOK )
255254 defer provider .Close ()
256255
257256 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -277,13 +276,14 @@ func Test_WebhookRelease(t *testing.T) {
277276func Test_WebhookPush (t * testing.T ) {
278277 var payloads []api.PushPayload
279278 var triggeredEvent string
280- provider := newMockWebhookProvider (func (content string ) {
279+ provider := newMockWebhookProvider (func (r * http.Request ) {
280+ content , _ := io .ReadAll (r .Body )
281281 var payload api.PushPayload
282282 err := json .Unmarshal ([]byte (content ), & payload )
283283 assert .NoError (t , err )
284284 payloads = append (payloads , payload )
285285 triggeredEvent = "push"
286- })
286+ }, http . StatusOK )
287287 defer provider .Close ()
288288
289289 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -308,13 +308,14 @@ func Test_WebhookPush(t *testing.T) {
308308func Test_WebhookIssue (t * testing.T ) {
309309 var payloads []api.IssuePayload
310310 var triggeredEvent string
311- provider := newMockWebhookProvider (func (content string ) {
311+ provider := newMockWebhookProvider (func (r * http.Request ) {
312+ content , _ := io .ReadAll (r .Body )
312313 var payload api.IssuePayload
313314 err := json .Unmarshal ([]byte (content ), & payload )
314315 assert .NoError (t , err )
315316 payloads = append (payloads , payload )
316317 triggeredEvent = "issues"
317- })
318+ }, http . StatusOK )
318319 defer provider .Close ()
319320
320321 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -340,13 +341,14 @@ func Test_WebhookIssue(t *testing.T) {
340341func Test_WebhookPullRequest (t * testing.T ) {
341342 var payloads []api.PullRequestPayload
342343 var triggeredEvent string
343- provider := newMockWebhookProvider (func (content string ) {
344+ provider := newMockWebhookProvider (func (r * http.Request ) {
345+ content , _ := io .ReadAll (r .Body )
344346 var payload api.PullRequestPayload
345347 err := json .Unmarshal ([]byte (content ), & payload )
346348 assert .NoError (t , err )
347349 payloads = append (payloads , payload )
348350 triggeredEvent = "pull_request"
349- })
351+ }, http . StatusOK )
350352 defer provider .Close ()
351353
352354 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -374,13 +376,14 @@ func Test_WebhookPullRequest(t *testing.T) {
374376func Test_WebhookWiki (t * testing.T ) {
375377 var payloads []api.WikiPayload
376378 var triggeredEvent string
377- provider := newMockWebhookProvider (func (content string ) {
379+ provider := newMockWebhookProvider (func (r * http.Request ) {
380+ content , _ := io .ReadAll (r .Body )
378381 var payload api.WikiPayload
379382 err := json .Unmarshal ([]byte (content ), & payload )
380383 assert .NoError (t , err )
381384 payloads = append (payloads , payload )
382385 triggeredEvent = "wiki"
383- })
386+ }, http . StatusOK )
384387 defer provider .Close ()
385388
386389 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -405,13 +408,14 @@ func Test_WebhookWiki(t *testing.T) {
405408func Test_WebhookRepository (t * testing.T ) {
406409 var payloads []api.RepositoryPayload
407410 var triggeredEvent string
408- provider := newMockWebhookProvider (func (content string ) {
411+ provider := newMockWebhookProvider (func (r * http.Request ) {
412+ content , _ := io .ReadAll (r .Body )
409413 var payload api.RepositoryPayload
410414 err := json .Unmarshal ([]byte (content ), & payload )
411415 assert .NoError (t , err )
412416 payloads = append (payloads , payload )
413417 triggeredEvent = "repository"
414- })
418+ }, http . StatusOK )
415419 defer provider .Close ()
416420
417421 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -436,13 +440,14 @@ func Test_WebhookRepository(t *testing.T) {
436440func Test_WebhookPackage (t * testing.T ) {
437441 var payloads []api.PackagePayload
438442 var triggeredEvent string
439- provider := newMockWebhookProvider (func (content string ) {
443+ provider := newMockWebhookProvider (func (r * http.Request ) {
444+ content , _ := io .ReadAll (r .Body )
440445 var payload api.PackagePayload
441446 err := json .Unmarshal ([]byte (content ), & payload )
442447 assert .NoError (t , err )
443448 payloads = append (payloads , payload )
444449 triggeredEvent = "package"
445- })
450+ }, http . StatusOK )
446451 defer provider .Close ()
447452
448453 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
@@ -472,13 +477,17 @@ func Test_WebhookPackage(t *testing.T) {
472477func Test_WebhookStatus (t * testing.T ) {
473478 var payloads []api.CommitStatusPayload
474479 var triggeredEvent string
475- provider := newMockWebhookProvider (func (content string ) {
480+ provider := newMockWebhookProvider (func (r * http.Request ) {
481+ assert .Contains (t , r .Header ["X-Github-Event-Type" ], "status" , "X-GitHub-Event-Type should contain status" )
482+ assert .Contains (t , r .Header ["X-Gitea-Event-Type" ], "status" , "X-Gitea-Event-Type should contain status" )
483+ assert .Contains (t , r .Header ["X-Gogs-Event-Type" ], "status" , "X-Gogs-Event-Type should contain status" )
484+ content , _ := io .ReadAll (r .Body )
476485 var payload api.CommitStatusPayload
477486 err := json .Unmarshal ([]byte (content ), & payload )
478487 assert .NoError (t , err )
479488 payloads = append (payloads , payload )
480489 triggeredEvent = "status"
481- })
490+ }, http . StatusOK )
482491 defer provider .Close ()
483492
484493 onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
0 commit comments