code.gitea.io/gitea@v1.22.3/models/issues/issue_user_test.go (about) 1 // Copyright 2017 The Gogs Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package issues_test 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/db" 10 issues_model "code.gitea.io/gitea/models/issues" 11 repo_model "code.gitea.io/gitea/models/repo" 12 "code.gitea.io/gitea/models/unittest" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func Test_NewIssueUsers(t *testing.T) { 18 assert.NoError(t, unittest.PrepareTestDatabase()) 19 20 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 21 newIssue := &issues_model.Issue{ 22 RepoID: repo.ID, 23 PosterID: 4, 24 Index: 6, 25 Title: "newTestIssueTitle", 26 Content: "newTestIssueContent", 27 } 28 29 // artificially insert new issue 30 unittest.AssertSuccessfulInsert(t, newIssue) 31 32 assert.NoError(t, issues_model.NewIssueUsers(db.DefaultContext, repo, newIssue)) 33 34 // issue_user table should now have entries for new issue 35 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueUser{IssueID: newIssue.ID, UID: newIssue.PosterID}) 36 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueUser{IssueID: newIssue.ID, UID: repo.OwnerID}) 37 } 38 39 func TestUpdateIssueUserByRead(t *testing.T) { 40 assert.NoError(t, unittest.PrepareTestDatabase()) 41 issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 1}) 42 43 assert.NoError(t, issues_model.UpdateIssueUserByRead(db.DefaultContext, 4, issue.ID)) 44 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueUser{IssueID: issue.ID, UID: 4}, "is_read=1") 45 46 assert.NoError(t, issues_model.UpdateIssueUserByRead(db.DefaultContext, 4, issue.ID)) 47 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueUser{IssueID: issue.ID, UID: 4}, "is_read=1") 48 49 assert.NoError(t, issues_model.UpdateIssueUserByRead(db.DefaultContext, unittest.NonexistentID, unittest.NonexistentID)) 50 } 51 52 func TestUpdateIssueUsersByMentions(t *testing.T) { 53 assert.NoError(t, unittest.PrepareTestDatabase()) 54 issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 1}) 55 56 uids := []int64{2, 5} 57 assert.NoError(t, issues_model.UpdateIssueUsersByMentions(db.DefaultContext, issue.ID, uids)) 58 for _, uid := range uids { 59 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueUser{IssueID: issue.ID, UID: uid}, "is_mentioned=1") 60 } 61 }