|
5 | 5 | package integrations
|
6 | 6 |
|
7 | 7 | import (
|
| 8 | + "encoding/hex" |
8 | 9 | "fmt"
|
9 | 10 | "io/ioutil"
|
10 | 11 | "math/rand"
|
@@ -451,26 +452,34 @@ func doMergeFork(ctx, baseCtx APITestContext, baseBranch, headBranch string) fun
|
451 | 452 |
|
452 | 453 | // Then get the diff string
|
453 | 454 | var diffHash string
|
| 455 | + var diffLength int |
454 | 456 | t.Run("GetDiff", func(t *testing.T) {
|
455 | 457 | req := NewRequest(t, "GET", fmt.Sprintf("/%s/%s/pulls/%d.diff", url.PathEscape(baseCtx.Username), url.PathEscape(baseCtx.Reponame), pr.Index))
|
456 | 458 | resp := ctx.Session.MakeRequestNilResponseHashSumRecorder(t, req, http.StatusOK)
|
457 | 459 | diffHash = string(resp.Hash.Sum(nil))
|
| 460 | + diffLength = resp.Length |
458 | 461 | })
|
459 | 462 |
|
460 | 463 | // Now: Merge the PR & make sure that doesn't break the PR page or change its diff
|
461 | 464 | t.Run("MergePR", doAPIMergePullRequest(baseCtx, baseCtx.Username, baseCtx.Reponame, pr.Index))
|
462 | 465 | t.Run("EnsureCanSeePull", doEnsureCanSeePull(baseCtx, pr))
|
463 |
| - t.Run("EnsureDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash)) |
| 466 | + t.Run("CheckPR", func(t *testing.T) { |
| 467 | + oldMergeBase := pr.MergeBase |
| 468 | + pr2, err := doAPIGetPullRequest(baseCtx, baseCtx.Username, baseCtx.Reponame, pr.Index)(t) |
| 469 | + assert.NoError(t, err) |
| 470 | + assert.Equal(t, oldMergeBase, pr2.MergeBase) |
| 471 | + }) |
| 472 | + t.Run("EnsurDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash, diffLength)) |
464 | 473 |
|
465 | 474 | // Then: Delete the head branch & make sure that doesn't break the PR page or change its diff
|
466 | 475 | t.Run("DeleteHeadBranch", doBranchDelete(baseCtx, baseCtx.Username, baseCtx.Reponame, headBranch))
|
467 | 476 | t.Run("EnsureCanSeePull", doEnsureCanSeePull(baseCtx, pr))
|
468 |
| - t.Run("EnsureDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash)) |
| 477 | + t.Run("EnsureDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash, diffLength)) |
469 | 478 |
|
470 | 479 | // Delete the head repository & make sure that doesn't break the PR page or change its diff
|
471 | 480 | t.Run("DeleteHeadRepository", doAPIDeleteRepository(ctx))
|
472 | 481 | t.Run("EnsureCanSeePull", doEnsureCanSeePull(baseCtx, pr))
|
473 |
| - t.Run("EnsureDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash)) |
| 482 | + t.Run("EnsureDiffNoChange", doEnsureDiffNoChange(baseCtx, pr, diffHash, diffLength)) |
474 | 483 | }
|
475 | 484 | }
|
476 | 485 |
|
@@ -514,14 +523,15 @@ func doEnsureCanSeePull(ctx APITestContext, pr api.PullRequest) func(t *testing.
|
514 | 523 | }
|
515 | 524 | }
|
516 | 525 |
|
517 |
| -func doEnsureDiffNoChange(ctx APITestContext, pr api.PullRequest, diffHash string) func(t *testing.T) { |
| 526 | +func doEnsureDiffNoChange(ctx APITestContext, pr api.PullRequest, diffHash string, diffLength int) func(t *testing.T) { |
518 | 527 | return func(t *testing.T) {
|
519 | 528 | req := NewRequest(t, "GET", fmt.Sprintf("/%s/%s/pulls/%d.diff", url.PathEscape(ctx.Username), url.PathEscape(ctx.Reponame), pr.Index))
|
520 | 529 | resp := ctx.Session.MakeRequestNilResponseHashSumRecorder(t, req, http.StatusOK)
|
521 | 530 | actual := string(resp.Hash.Sum(nil))
|
| 531 | + actualLength := resp.Length |
522 | 532 |
|
523 | 533 | equal := diffHash == actual
|
524 |
| - assert.True(t, equal, "Unexpected change in the diff string: expected hash: %s but was actually: %s", diffHash, actual) |
| 534 | + assert.True(t, equal, "Unexpected change in the diff string: expected hash: %s size: %d but was actually: %s size: %d", hex.EncodeToString([]byte(diffHash)), diffLength, hex.EncodeToString([]byte(actual)), actualLength) |
525 | 535 | }
|
526 | 536 | }
|
527 | 537 |
|
|
0 commit comments