// Copyright 2023 The Forgejo Authors. All rights reserved. // SPDX-License-Identifier: MIT package user import ( "testing" "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" "github.com/stretchr/testify/assert" ) // TestBlockUser will ensure that when you block a user, certain actions have // been taken, like unfollowing each other etc. func TestBlockUser(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}) blockedUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) // Follow each other. assert.NoError(t, user_model.FollowUser(db.DefaultContext, doer.ID, blockedUser.ID)) assert.NoError(t, user_model.FollowUser(db.DefaultContext, blockedUser.ID, doer.ID)) // Blocked user watch repository of doer. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerID: doer.ID}) assert.NoError(t, repo_model.WatchRepo(db.DefaultContext, blockedUser.ID, repo.ID, true)) assert.NoError(t, BlockUser(db.DefaultContext, doer.ID, blockedUser.ID)) // Ensure they aren't following each other anymore. assert.False(t, user_model.IsFollowing(doer.ID, blockedUser.ID)) assert.False(t, user_model.IsFollowing(blockedUser.ID, doer.ID)) // Ensure blocked user isn't following doer's repository. assert.False(t, repo_model.IsWatching(blockedUser.ID, repo.ID)) }