2019-10-28 05:11:50 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-10-28 05:11:50 +03:00
package issue
import (
"testing"
2022-05-20 17:08:52 +03:00
"code.gitea.io/gitea/models/db"
2022-06-13 12:37:59 +03:00
issues_model "code.gitea.io/gitea/models/issues"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2021-11-17 15:34:35 +03:00
2019-10-28 05:11:50 +03:00
"github.com/stretchr/testify/assert"
2024-07-30 22:41:10 +03:00
"github.com/stretchr/testify/require"
2019-10-28 05:11:50 +03:00
)
func TestDeleteNotPassedAssignee ( t * testing . T ) {
2024-07-30 22:41:10 +03:00
require . NoError ( t , unittest . PrepareTestDatabase ( ) )
2019-10-28 05:11:50 +03:00
// Fake issue with assignees
2023-12-19 22:12:02 +03:00
issue , err := issues_model . GetIssueByID ( db . DefaultContext , 1 )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2023-12-19 22:12:02 +03:00
err = issue . LoadAttributes ( db . DefaultContext )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2023-12-19 22:12:02 +03:00
2023-04-23 00:56:27 +03:00
assert . Len ( t , issue . Assignees , 1 )
2019-10-28 05:11:50 +03:00
2022-12-03 05:48:26 +03:00
user1 , err := user_model . GetUserByID ( db . DefaultContext , 1 ) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2019-10-28 05:11:50 +03:00
// Check if he got removed
2022-06-13 12:37:59 +03:00
isAssigned , err := issues_model . IsUserAssignedToIssue ( db . DefaultContext , issue , user1 )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2019-10-28 05:11:50 +03:00
assert . True ( t , isAssigned )
// Clean everyone
2023-04-14 21:18:28 +03:00
err = DeleteNotPassedAssignee ( db . DefaultContext , issue , user1 , [ ] * user_model . User { } )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2023-04-23 00:56:27 +03:00
assert . Empty ( t , issue . Assignees )
2019-10-28 05:11:50 +03:00
2024-05-31 15:10:11 +03:00
// Reload to check they're gone
issue . ResetAttributesLoaded ( )
2024-07-30 22:41:10 +03:00
require . NoError ( t , issue . LoadAssignees ( db . DefaultContext ) )
2023-04-23 00:56:27 +03:00
assert . Empty ( t , issue . Assignees )
2022-05-20 17:08:52 +03:00
assert . Empty ( t , issue . Assignee )
2019-10-28 05:11:50 +03:00
}