code.gitea.io/gitea@v1.22.3/models/repo/star_test.go (about)

     1  // Copyright 2017 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package repo_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	repo_model "code.gitea.io/gitea/models/repo"
    11  	"code.gitea.io/gitea/models/unittest"
    12  	user_model "code.gitea.io/gitea/models/user"
    13  
    14  	"github.com/stretchr/testify/assert"
    15  )
    16  
    17  func TestStarRepo(t *testing.T) {
    18  	assert.NoError(t, unittest.PrepareTestDatabase())
    19  
    20  	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
    21  	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
    22  
    23  	unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    24  	assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true))
    25  	unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    26  	assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true))
    27  	unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    28  	assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, false))
    29  	unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    30  }
    31  
    32  func TestIsStaring(t *testing.T) {
    33  	assert.NoError(t, unittest.PrepareTestDatabase())
    34  	assert.True(t, repo_model.IsStaring(db.DefaultContext, 2, 4))
    35  	assert.False(t, repo_model.IsStaring(db.DefaultContext, 3, 4))
    36  }
    37  
    38  func TestRepository_GetStargazers(t *testing.T) {
    39  	// repo with stargazers
    40  	assert.NoError(t, unittest.PrepareTestDatabase())
    41  	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4})
    42  	gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
    43  	assert.NoError(t, err)
    44  	if assert.Len(t, gazers, 1) {
    45  		assert.Equal(t, int64(2), gazers[0].ID)
    46  	}
    47  }
    48  
    49  func TestRepository_GetStargazers2(t *testing.T) {
    50  	// repo with stargazers
    51  	assert.NoError(t, unittest.PrepareTestDatabase())
    52  	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
    53  	gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
    54  	assert.NoError(t, err)
    55  	assert.Len(t, gazers, 0)
    56  }
    57  
    58  func TestClearRepoStars(t *testing.T) {
    59  	assert.NoError(t, unittest.PrepareTestDatabase())
    60  
    61  	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
    62  	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
    63  
    64  	unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    65  	assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true))
    66  	unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    67  	assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, false))
    68  	unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    69  	assert.NoError(t, repo_model.ClearRepoStars(db.DefaultContext, repo.ID))
    70  	unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID})
    71  
    72  	gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
    73  	assert.NoError(t, err)
    74  	assert.Len(t, gazers, 0)
    75  }