gitea源码

hook_post_receive_test.go 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package private
  4. import (
  5. "testing"
  6. issues_model "code.gitea.io/gitea/models/issues"
  7. pull_model "code.gitea.io/gitea/models/pull"
  8. repo_model "code.gitea.io/gitea/models/repo"
  9. "code.gitea.io/gitea/models/unittest"
  10. user_model "code.gitea.io/gitea/models/user"
  11. "code.gitea.io/gitea/modules/private"
  12. repo_module "code.gitea.io/gitea/modules/repository"
  13. "code.gitea.io/gitea/services/contexttest"
  14. "github.com/stretchr/testify/assert"
  15. )
  16. func TestHandlePullRequestMerging(t *testing.T) {
  17. assert.NoError(t, unittest.PrepareTestDatabase())
  18. pr, err := issues_model.GetUnmergedPullRequest(t.Context(), 1, 1, "branch2", "master", issues_model.PullRequestFlowGithub)
  19. assert.NoError(t, err)
  20. assert.NoError(t, pr.LoadBaseRepo(t.Context()))
  21. user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
  22. err = pull_model.ScheduleAutoMerge(t.Context(), user1, pr.ID, repo_model.MergeStyleSquash, "squash merge a pr", false)
  23. assert.NoError(t, err)
  24. autoMerge := unittest.AssertExistsAndLoadBean(t, &pull_model.AutoMerge{PullID: pr.ID})
  25. ctx, resp := contexttest.MockPrivateContext(t, "/")
  26. handlePullRequestMerging(ctx, &private.HookOptions{
  27. PullRequestID: pr.ID,
  28. UserID: 2,
  29. }, pr.BaseRepo.OwnerName, pr.BaseRepo.Name, []*repo_module.PushUpdateOptions{
  30. {NewCommitID: "01234567"},
  31. })
  32. assert.Empty(t, resp.Body.String())
  33. pr, err = issues_model.GetPullRequestByID(t.Context(), pr.ID)
  34. assert.NoError(t, err)
  35. assert.True(t, pr.HasMerged)
  36. assert.Equal(t, "01234567", pr.MergedCommitID)
  37. unittest.AssertNotExistsBean(t, &pull_model.AutoMerge{ID: autoMerge.ID})
  38. }