code.gitea.io/gitea@v1.22.3/services/pull/review_test.go (about)

     1  // Copyright 2024 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package pull_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	issues_model "code.gitea.io/gitea/models/issues"
    11  	"code.gitea.io/gitea/models/unittest"
    12  	user_model "code.gitea.io/gitea/models/user"
    13  	pull_service "code.gitea.io/gitea/services/pull"
    14  
    15  	"github.com/stretchr/testify/assert"
    16  )
    17  
    18  func TestDismissReview(t *testing.T) {
    19  	assert.NoError(t, unittest.PrepareTestDatabase())
    20  
    21  	pull := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{})
    22  	assert.NoError(t, pull.LoadIssue(db.DefaultContext))
    23  	issue := pull.Issue
    24  	assert.NoError(t, issue.LoadRepo(db.DefaultContext))
    25  	reviewer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
    26  	review, err := issues_model.CreateReview(db.DefaultContext, issues_model.CreateReviewOptions{
    27  		Issue:    issue,
    28  		Reviewer: reviewer,
    29  		Type:     issues_model.ReviewTypeReject,
    30  	})
    31  
    32  	assert.NoError(t, err)
    33  	issue.IsClosed = true
    34  	pull.HasMerged = false
    35  	assert.NoError(t, issues_model.UpdateIssueCols(db.DefaultContext, issue, "is_closed"))
    36  	assert.NoError(t, pull.UpdateCols(db.DefaultContext, "has_merged"))
    37  	_, err = pull_service.DismissReview(db.DefaultContext, review.ID, issue.RepoID, "", &user_model.User{}, false, false)
    38  	assert.Error(t, err)
    39  	assert.True(t, pull_service.IsErrDismissRequestOnClosedPR(err))
    40  
    41  	pull.HasMerged = true
    42  	pull.Issue.IsClosed = false
    43  	assert.NoError(t, issues_model.UpdateIssueCols(db.DefaultContext, issue, "is_closed"))
    44  	assert.NoError(t, pull.UpdateCols(db.DefaultContext, "has_merged"))
    45  	_, err = pull_service.DismissReview(db.DefaultContext, review.ID, issue.RepoID, "", &user_model.User{}, false, false)
    46  	assert.Error(t, err)
    47  	assert.True(t, pull_service.IsErrDismissRequestOnClosedPR(err))
    48  }