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  }