code.gitea.io/gitea@v1.22.3/routers/private/hook_post_receive_test.go (about)

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