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