code.gitea.io/gitea@v1.22.3/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.GetIssueByID(db.DefaultContext, 1)
    22  	assert.NoError(t, err)
    23  
    24  	err = issue.LoadAttributes(db.DefaultContext)
    25  	assert.NoError(t, err)
    26  
    27  	assert.Len(t, issue.Assignees, 1)
    28  
    29  	user1, err := user_model.GetUserByID(db.DefaultContext, 1) // This user is already assigned (see the definition in fixtures), so running  UpdateAssignee should unassign him
    30  	assert.NoError(t, err)
    31  
    32  	// Check if he got removed
    33  	isAssigned, err := issues_model.IsUserAssignedToIssue(db.DefaultContext, issue, user1)
    34  	assert.NoError(t, err)
    35  	assert.True(t, isAssigned)
    36  
    37  	// Clean everyone
    38  	err = DeleteNotPassedAssignee(db.DefaultContext, issue, user1, []*user_model.User{})
    39  	assert.NoError(t, err)
    40  	assert.Empty(t, issue.Assignees)
    41  
    42  	// Check they're gone
    43  	assert.NoError(t, issue.LoadAssignees(db.DefaultContext))
    44  	assert.Empty(t, issue.Assignees)
    45  	assert.Empty(t, issue.Assignee)
    46  }