mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-10 19:32:02 +00:00
chore: add repo redirect unit test
This commit is contained in:
parent
ca7fcacddc
commit
1fc1f24cad
2 changed files with 61 additions and 0 deletions
|
@ -3,3 +3,9 @@
|
||||||
owner_id: 2
|
owner_id: 2
|
||||||
lower_name: oldrepo1
|
lower_name: oldrepo1
|
||||||
redirect_repo_id: 1
|
redirect_repo_id: 1
|
||||||
|
|
||||||
|
-
|
||||||
|
id: 2
|
||||||
|
owner_id: 17
|
||||||
|
lower_name: oldrepo24
|
||||||
|
redirect_repo_id: 24
|
||||||
|
|
55
services/redirect/repo_test.go
Normal file
55
services/redirect/repo_test.go
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
package redirect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
repo_model "forgejo.org/models/repo"
|
||||||
|
"forgejo.org/models/unittest"
|
||||||
|
user_model "forgejo.org/models/user"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLookupRepoRedirect(t *testing.T) {
|
||||||
|
require.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
|
normalUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
|
||||||
|
ownerUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 20})
|
||||||
|
|
||||||
|
testOk := func(t *testing.T, doer *user_model.User, ownerID int64, repoName string, expectedRedirectID int64) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
redirectID, err := LookupRepoRedirect(t.Context(), doer, ownerID, repoName)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, expectedRedirectID, redirectID)
|
||||||
|
}
|
||||||
|
|
||||||
|
testFail := func(t *testing.T, doer *user_model.User, ownerID int64, repoName string) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
redirectID, err := LookupRepoRedirect(t.Context(), doer, ownerID, repoName)
|
||||||
|
require.ErrorIs(t, err, repo_model.ErrRedirectNotExist{OwnerID: ownerID, RepoName: repoName, MissingPermission: true})
|
||||||
|
assert.Zero(t, redirectID)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("Public repository", func(t *testing.T) {
|
||||||
|
ownerID := int64(2)
|
||||||
|
reponame := "oldrepo1"
|
||||||
|
|
||||||
|
testOk(t, nil, ownerID, reponame, 1)
|
||||||
|
testOk(t, normalUser, ownerID, reponame, 1)
|
||||||
|
testOk(t, ownerUser, ownerID, reponame, 1)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Private repository", func(t *testing.T) {
|
||||||
|
ownerID := int64(17)
|
||||||
|
reponame := "oldrepo24"
|
||||||
|
|
||||||
|
testFail(t, nil, ownerID, reponame)
|
||||||
|
testFail(t, normalUser, ownerID, reponame)
|
||||||
|
testOk(t, ownerUser, ownerID, reponame, 24)
|
||||||
|
})
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue