code.gitea.io/gitea@v1.21.7/services/issue/assignee_test.go (about)

     1  // Copyright 2019 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package issue
     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  
    14  	"github.com/stretchr/testify/assert"
    15  )
    16  
    17  func TestDeleteNotPassedAssignee(t *testing.T) {
    18  	assert.NoError(t, unittest.PrepareTestDatabase())
    19  
    20  	// Fake issue with assignees
    21  	issue, err := issues_model.GetIssueWithAttrsByID(1)
    22  	assert.NoError(t, err)
    23  	assert.Len(t, issue.Assignees, 1)
    24  
    25  	user1, err := user_model.GetUserByID(db.DefaultContext, 1) // This user is already assigned (see the definition in fixtures), so running  UpdateAssignee should unassign him
    26  	assert.NoError(t, err)
    27  
    28  	// Check if he got removed
    29  	isAssigned, err := issues_model.IsUserAssignedToIssue(db.DefaultContext, issue, user1)
    30  	assert.NoError(t, err)
    31  	assert.True(t, isAssigned)
    32  
    33  	// Clean everyone
    34  	err = DeleteNotPassedAssignee(db.DefaultContext, issue, user1, []*user_model.User{})
    35  	assert.NoError(t, err)
    36  	assert.Empty(t, issue.Assignees)
    37  
    38  	// Check they're gone
    39  	assert.NoError(t, issue.LoadAssignees(db.DefaultContext))
    40  	assert.Empty(t, issue.Assignees)
    41  	assert.Empty(t, issue.Assignee)
    42  }