2017-02-04 15:37:26 +03:00
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
"testing"
2021-09-19 14:49:59 +03:00
"code.gitea.io/gitea/models/db"
2017-02-04 15:37:26 +03:00
"github.com/stretchr/testify/assert"
)
func Test_newIssueUsers ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-02-04 15:37:26 +03:00
2021-09-19 14:49:59 +03:00
repo := db . AssertExistsAndLoadBean ( t , & Repository { ID : 1 } ) . ( * Repository )
2017-02-04 15:37:26 +03:00
newIssue := & Issue {
RepoID : repo . ID ,
PosterID : 4 ,
2020-01-17 09:03:40 +03:00
Index : 6 ,
2017-02-04 15:37:26 +03:00
Title : "newTestIssueTitle" ,
Content : "newTestIssueContent" ,
}
// artificially insert new issue
2021-09-19 14:49:59 +03:00
db . AssertSuccessfulInsert ( t , newIssue )
2017-02-04 15:37:26 +03:00
2021-09-23 18:45:36 +03:00
assert . NoError ( t , newIssueUsers ( db . GetEngine ( db . DefaultContext ) , repo , newIssue ) )
2017-02-04 15:37:26 +03:00
// issue_user table should now have entries for new issue
2021-09-19 14:49:59 +03:00
db . AssertExistsAndLoadBean ( t , & IssueUser { IssueID : newIssue . ID , UID : newIssue . PosterID } )
db . AssertExistsAndLoadBean ( t , & IssueUser { IssueID : newIssue . ID , UID : repo . OwnerID } )
2017-02-04 15:37:26 +03:00
}
func TestUpdateIssueUserByRead ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
issue := db . AssertExistsAndLoadBean ( t , & Issue { ID : 1 } ) . ( * Issue )
2017-02-04 15:37:26 +03:00
assert . NoError ( t , UpdateIssueUserByRead ( 4 , issue . ID ) )
2021-09-19 14:49:59 +03:00
db . AssertExistsAndLoadBean ( t , & IssueUser { IssueID : issue . ID , UID : 4 } , "is_read=1" )
2017-02-04 15:37:26 +03:00
assert . NoError ( t , UpdateIssueUserByRead ( 4 , issue . ID ) )
2021-09-19 14:49:59 +03:00
db . AssertExistsAndLoadBean ( t , & IssueUser { IssueID : issue . ID , UID : 4 } , "is_read=1" )
2017-02-04 15:37:26 +03:00
2021-09-19 14:49:59 +03:00
assert . NoError ( t , UpdateIssueUserByRead ( db . NonexistentID , db . NonexistentID ) )
2017-02-04 15:37:26 +03:00
}
func TestUpdateIssueUsersByMentions ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
issue := db . AssertExistsAndLoadBean ( t , & Issue { ID : 1 } ) . ( * Issue )
2017-02-04 15:37:26 +03:00
uids := [ ] int64 { 2 , 5 }
2021-09-23 18:45:36 +03:00
assert . NoError ( t , UpdateIssueUsersByMentions ( db . DefaultContext , issue . ID , uids ) )
2017-02-04 15:37:26 +03:00
for _ , uid := range uids {
2021-09-19 14:49:59 +03:00
db . AssertExistsAndLoadBean ( t , & IssueUser { IssueID : issue . ID , UID : uid } , "is_mentioned=1" )
2017-02-04 15:37:26 +03:00
}
}