@@ -17,6 +17,7 @@ import (
1717 repo_model "code.gitea.io/gitea/models/repo"
1818 "code.gitea.io/gitea/models/unittest"
1919 user_model "code.gitea.io/gitea/models/user"
20+ "code.gitea.io/gitea/modules/setting"
2021 "code.gitea.io/gitea/modules/util"
2122
2223 "github.com/stretchr/testify/assert"
@@ -539,3 +540,47 @@ func TestCountIssues(t *testing.T) {
539540 assert .NoError (t , err )
540541 assert .EqualValues (t , 18 , count )
541542}
543+
544+ func TestIssueLoadAttributes (t * testing.T ) {
545+ assert .NoError (t , unittest .PrepareTestDatabase ())
546+ setting .Service .EnableTimetracking = true
547+
548+ issueList := issues_model.IssueList {
549+ unittest .AssertExistsAndLoadBean (t , & issues_model.Issue {ID : 1 }),
550+ unittest .AssertExistsAndLoadBean (t , & issues_model.Issue {ID : 4 }),
551+ }
552+
553+ for _ , issue := range issueList {
554+ assert .NoError (t , issue .LoadAttributes (db .DefaultContext ))
555+ assert .EqualValues (t , issue .RepoID , issue .Repo .ID )
556+ for _ , label := range issue .Labels {
557+ assert .EqualValues (t , issue .RepoID , label .RepoID )
558+ unittest .AssertExistsAndLoadBean (t , & issues_model.IssueLabel {IssueID : issue .ID , LabelID : label .ID })
559+ }
560+ if issue .PosterID > 0 {
561+ assert .EqualValues (t , issue .PosterID , issue .Poster .ID )
562+ }
563+ if issue .AssigneeID > 0 {
564+ assert .EqualValues (t , issue .AssigneeID , issue .Assignee .ID )
565+ }
566+ if issue .MilestoneID > 0 {
567+ assert .EqualValues (t , issue .MilestoneID , issue .Milestone .ID )
568+ }
569+ if issue .IsPull {
570+ assert .EqualValues (t , issue .ID , issue .PullRequest .IssueID )
571+ }
572+ for _ , attachment := range issue .Attachments {
573+ assert .EqualValues (t , issue .ID , attachment .IssueID )
574+ }
575+ for _ , comment := range issue .Comments {
576+ assert .EqualValues (t , issue .ID , comment .IssueID )
577+ }
578+ if issue .ID == int64 (1 ) {
579+ assert .Equal (t , int64 (400 ), issue .TotalTrackedTime )
580+ assert .NotNil (t , issue .Project )
581+ assert .Equal (t , int64 (1 ), issue .Project .ID )
582+ } else {
583+ assert .Nil (t , issue .Project )
584+ }
585+ }
586+ }
0 commit comments