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
|
||||
lower_name: oldrepo1
|
||||
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