2024-07-29 11:56:50 +02:00
// Copyright 2024 The Forgejo Authors
// SPDX-License-Identifier: MIT
package issues
import (
"testing"
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestCommentListLoadUser ( t * testing . T ) {
2024-07-30 19:41:10 +00:00
require . NoError ( t , unittest . PrepareTestDatabase ( ) )
2024-07-29 11:56:50 +02:00
issue := unittest . AssertExistsAndLoadBean ( t , & Issue { } )
repo := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : issue . RepoID } )
doer := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : repo . OwnerID } )
for _ , testCase := range [ ] struct {
poster int64
assignee int64
user * user_model . User
} {
{
poster : user_model . ActionsUserID ,
assignee : user_model . ActionsUserID ,
user : user_model . NewActionsUser ( ) ,
} ,
{
poster : user_model . GhostUserID ,
assignee : user_model . GhostUserID ,
user : user_model . NewGhostUser ( ) ,
} ,
{
poster : doer . ID ,
assignee : doer . ID ,
user : doer ,
} ,
{
poster : 0 ,
assignee : 0 ,
user : user_model . NewGhostUser ( ) ,
} ,
{
poster : - 200 ,
assignee : - 200 ,
user : user_model . NewGhostUser ( ) ,
} ,
{
poster : 200 ,
assignee : 200 ,
user : user_model . NewGhostUser ( ) ,
} ,
} {
t . Run ( testCase . user . Name , func ( t * testing . T ) {
comment , err := CreateComment ( db . DefaultContext , & CreateCommentOptions {
Type : CommentTypeComment ,
Doer : testCase . user ,
Repo : repo ,
Issue : issue ,
Content : "Hello" ,
} )
assert . NoError ( t , err )
list := CommentList { comment }
comment . PosterID = testCase . poster
comment . Poster = nil
assert . NoError ( t , list . LoadPosters ( db . DefaultContext ) )
require . NotNil ( t , comment . Poster )
assert . Equal ( t , testCase . user . ID , comment . Poster . ID )
comment . AssigneeID = testCase . assignee
comment . Assignee = nil
2024-07-30 19:41:10 +00:00
require . NoError ( t , list . loadAssignees ( db . DefaultContext ) )
2024-07-29 11:56:50 +02:00
require . NotNil ( t , comment . Assignee )
assert . Equal ( t , testCase . user . ID , comment . Assignee . ID )
} )
}
}