2017-03-31 02:20:08 +03:00
// Copyright 2017 The Gitea 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-03-31 02:20:08 +03:00
"github.com/stretchr/testify/assert"
)
func TestCreateOrUpdateIssueWatch ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-31 02:20:08 +03:00
assert . NoError ( t , CreateOrUpdateIssueWatch ( 3 , 1 , true ) )
2021-09-19 14:49:59 +03:00
iw := db . AssertExistsAndLoadBean ( t , & IssueWatch { UserID : 3 , IssueID : 1 } ) . ( * IssueWatch )
2019-11-20 17:50:54 +03:00
assert . True ( t , iw . IsWatching )
2017-03-31 02:20:08 +03:00
assert . NoError ( t , CreateOrUpdateIssueWatch ( 1 , 1 , false ) )
2021-09-19 14:49:59 +03:00
iw = db . AssertExistsAndLoadBean ( t , & IssueWatch { UserID : 1 , IssueID : 1 } ) . ( * IssueWatch )
2019-11-20 17:50:54 +03:00
assert . False ( t , iw . IsWatching )
2017-03-31 02:20:08 +03:00
}
func TestGetIssueWatch ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-31 02:20:08 +03:00
2017-10-24 20:36:19 +03:00
_ , exists , err := GetIssueWatch ( 9 , 1 )
2019-11-20 17:50:54 +03:00
assert . True ( t , exists )
2017-03-31 02:20:08 +03:00
assert . NoError ( t , err )
2017-04-01 16:05:58 +03:00
2020-01-07 18:41:35 +03:00
iw , exists , err := GetIssueWatch ( 2 , 2 )
assert . True ( t , exists )
2017-03-31 02:20:08 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . False ( t , iw . IsWatching )
2017-04-01 16:05:58 +03:00
_ , exists , err = GetIssueWatch ( 3 , 1 )
2019-11-20 17:50:54 +03:00
assert . False ( t , exists )
2017-04-01 16:05:58 +03:00
assert . NoError ( t , err )
2017-03-31 02:20:08 +03:00
}
func TestGetIssueWatchers ( t * testing . T ) {
2021-09-19 14:49:59 +03:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-31 02:20:08 +03:00
2021-09-24 14:32:56 +03:00
iws , err := GetIssueWatchers ( 1 , db . ListOptions { } )
2017-03-31 02:20:08 +03:00
assert . NoError ( t , err )
2017-09-16 03:18:25 +03:00
// Watcher is inactive, thus 0
2019-11-20 17:50:54 +03:00
assert . Len ( t , iws , 0 )
2017-09-16 03:18:25 +03:00
2021-09-24 14:32:56 +03:00
iws , err = GetIssueWatchers ( 2 , db . ListOptions { } )
2017-09-16 03:18:25 +03:00
assert . NoError ( t , err )
2019-11-20 17:50:54 +03:00
// Watcher is explicit not watching
assert . Len ( t , iws , 0 )
2017-04-01 16:05:58 +03:00
2021-09-24 14:32:56 +03:00
iws , err = GetIssueWatchers ( 5 , db . ListOptions { } )
2017-04-01 16:05:58 +03:00
assert . NoError ( t , err )
2019-11-20 17:50:54 +03:00
// Issue has no Watchers
assert . Len ( t , iws , 0 )
2021-09-24 14:32:56 +03:00
iws , err = GetIssueWatchers ( 7 , db . ListOptions { } )
2019-11-20 17:50:54 +03:00
assert . NoError ( t , err )
// Issue has one watcher
assert . Len ( t , iws , 1 )
2017-03-31 02:20:08 +03:00
}