|
8 | 8 | "context"
|
9 | 9 | "fmt"
|
10 | 10 | "net/http"
|
| 11 | + "net/http/httptest" |
11 | 12 | "net/url"
|
12 | 13 | "os"
|
13 | 14 | "testing"
|
@@ -262,23 +263,26 @@ func doAPIMergePullRequest(ctx APITestContext, owner, repo string, index int64)
|
262 | 263 | return func(t *testing.T) {
|
263 | 264 | urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s",
|
264 | 265 | owner, repo, index, ctx.Token)
|
265 |
| - req := NewRequestWithJSON(t, http.MethodPost, urlStr, &forms.MergePullRequestForm{ |
266 |
| - MergeMessageField: "doAPIMergePullRequest Merge", |
267 |
| - Do: string(repo_model.MergeStyleMerge), |
268 |
| - }) |
269 | 266 |
|
270 |
| - resp := ctx.Session.MakeRequest(t, req, NoExpectedStatus) |
| 267 | + var req *http.Request |
| 268 | + var resp *httptest.ResponseRecorder |
271 | 269 |
|
272 |
| - if resp.Code == http.StatusMethodNotAllowed { |
273 |
| - err := api.APIError{} |
274 |
| - DecodeJSON(t, resp, &err) |
275 |
| - assert.EqualValues(t, "Please try again later", err.Message) |
276 |
| - queue.GetManager().FlushAll(context.Background(), 5*time.Second) |
| 270 | + for i := 0; i < 6; i++ { |
277 | 271 | req = NewRequestWithJSON(t, http.MethodPost, urlStr, &forms.MergePullRequestForm{
|
278 | 272 | MergeMessageField: "doAPIMergePullRequest Merge",
|
279 | 273 | Do: string(repo_model.MergeStyleMerge),
|
280 | 274 | })
|
| 275 | + |
281 | 276 | resp = ctx.Session.MakeRequest(t, req, NoExpectedStatus)
|
| 277 | + |
| 278 | + if resp.Code != http.StatusMethodNotAllowed { |
| 279 | + break |
| 280 | + } |
| 281 | + err := api.APIError{} |
| 282 | + DecodeJSON(t, resp, &err) |
| 283 | + assert.EqualValues(t, "Please try again later", err.Message) |
| 284 | + queue.GetManager().FlushAll(context.Background(), 5*time.Second) |
| 285 | + <-time.After(1 * time.Second) |
282 | 286 | }
|
283 | 287 |
|
284 | 288 | expected := ctx.ExpectedCode
|
|
0 commit comments