2017-03-30 20:20:08 -03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2017-03-30 20:20:08 -03:00
2022-06-13 17:37:59 +08:00
package issues_test
2017-03-30 20:20:08 -03:00
import (
"testing"
2021-09-19 19:49:59 +08:00
"code.gitea.io/gitea/models/db"
2022-06-13 17:37:59 +08:00
issues_model "code.gitea.io/gitea/models/issues"
2021-11-12 22:36:47 +08:00
"code.gitea.io/gitea/models/unittest"
2021-11-17 20:34:35 +08:00
2017-03-30 20:20:08 -03:00
"github.com/stretchr/testify/assert"
)
func TestCreateOrUpdateIssueWatch ( t * testing . T ) {
2021-11-12 22:36:47 +08:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-03-30 20:20:08 -03:00
2023-09-16 16:39:12 +02:00
assert . NoError ( t , issues_model . CreateOrUpdateIssueWatch ( db . DefaultContext , 3 , 1 , true ) )
2022-08-16 10:22:25 +08:00
iw := unittest . AssertExistsAndLoadBean ( t , & issues_model . IssueWatch { UserID : 3 , IssueID : 1 } )
2019-11-20 15:50:54 +01:00
assert . True ( t , iw . IsWatching )
2017-03-30 20:20:08 -03:00
2023-09-16 16:39:12 +02:00
assert . NoError ( t , issues_model . CreateOrUpdateIssueWatch ( db . DefaultContext , 1 , 1 , false ) )
2022-08-16 10:22:25 +08:00
iw = unittest . AssertExistsAndLoadBean ( t , & issues_model . IssueWatch { UserID : 1 , IssueID : 1 } )
2019-11-20 15:50:54 +01:00
assert . False ( t , iw . IsWatching )
2017-03-30 20:20:08 -03:00
}
func TestGetIssueWatch ( t * testing . T ) {
2021-11-12 22:36:47 +08:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-03-30 20:20:08 -03:00
2022-06-13 17:37:59 +08:00
_ , exists , err := issues_model . GetIssueWatch ( db . DefaultContext , 9 , 1 )
2019-11-20 15:50:54 +01:00
assert . True ( t , exists )
2017-03-30 20:20:08 -03:00
assert . NoError ( t , err )
2017-04-01 10:05:58 -03:00
2022-06-13 17:37:59 +08:00
iw , exists , err := issues_model . GetIssueWatch ( db . DefaultContext , 2 , 2 )
2020-01-07 16:41:35 +01:00
assert . True ( t , exists )
2017-03-30 20:20:08 -03:00
assert . NoError ( t , err )
2021-06-07 07:27:09 +02:00
assert . False ( t , iw . IsWatching )
2017-04-01 10:05:58 -03:00
2022-06-13 17:37:59 +08:00
_ , exists , err = issues_model . GetIssueWatch ( db . DefaultContext , 3 , 1 )
2019-11-20 15:50:54 +01:00
assert . False ( t , exists )
2017-04-01 10:05:58 -03:00
assert . NoError ( t , err )
2017-03-30 20:20:08 -03:00
}
func TestGetIssueWatchers ( t * testing . T ) {
2021-11-12 22:36:47 +08:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-03-30 20:20:08 -03:00
2022-06-13 17:37:59 +08:00
iws , err := issues_model . GetIssueWatchers ( db . DefaultContext , 1 , db . ListOptions { } )
2017-03-30 20:20:08 -03:00
assert . NoError ( t , err )
2017-09-16 02:18:25 +02:00
// Watcher is inactive, thus 0
2019-11-20 15:50:54 +01:00
assert . Len ( t , iws , 0 )
2017-09-16 02:18:25 +02:00
2022-06-13 17:37:59 +08:00
iws , err = issues_model . GetIssueWatchers ( db . DefaultContext , 2 , db . ListOptions { } )
2017-09-16 02:18:25 +02:00
assert . NoError ( t , err )
2019-11-20 15:50:54 +01:00
// Watcher is explicit not watching
assert . Len ( t , iws , 0 )
2017-04-01 10:05:58 -03:00
2022-06-13 17:37:59 +08:00
iws , err = issues_model . GetIssueWatchers ( db . DefaultContext , 5 , db . ListOptions { } )
2017-04-01 10:05:58 -03:00
assert . NoError ( t , err )
2019-11-20 15:50:54 +01:00
// Issue has no Watchers
assert . Len ( t , iws , 0 )
2022-06-13 17:37:59 +08:00
iws , err = issues_model . GetIssueWatchers ( db . DefaultContext , 7 , db . ListOptions { } )
2019-11-20 15:50:54 +01:00
assert . NoError ( t , err )
// Issue has one watcher
assert . Len ( t , iws , 1 )
2017-03-30 20:20:08 -03:00
}