chore: add unit test
This commit is contained in:
parent
4019b99217
commit
50837322cc
3 changed files with 95 additions and 0 deletions
|
|
@ -3,3 +3,15 @@
|
||||||
lower_name: olduser1
|
lower_name: olduser1
|
||||||
redirect_user_id: 1
|
redirect_user_id: 1
|
||||||
created_unix: 1730000000
|
created_unix: 1730000000
|
||||||
|
|
||||||
|
-
|
||||||
|
id: 2
|
||||||
|
lower_name: oldorg22
|
||||||
|
redirect_user_id: 22
|
||||||
|
created_unix: 1730000000
|
||||||
|
|
||||||
|
-
|
||||||
|
id: 3
|
||||||
|
lower_name: oldorg23
|
||||||
|
redirect_user_id: 23
|
||||||
|
created_unix: 1730000000
|
||||||
|
|
|
||||||
18
services/redirect/main_test.go
Normal file
18
services/redirect/main_test.go
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
package redirect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"forgejo.org/models/unittest"
|
||||||
|
|
||||||
|
_ "forgejo.org/models"
|
||||||
|
_ "forgejo.org/models/actions"
|
||||||
|
_ "forgejo.org/models/activities"
|
||||||
|
_ "forgejo.org/models/forgefed"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
unittest.MainTest(m)
|
||||||
|
}
|
||||||
65
services/redirect/user_test.go
Normal file
65
services/redirect/user_test.go
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
package redirect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"forgejo.org/models/unittest"
|
||||||
|
user_model "forgejo.org/models/user"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLookupUserRedirect(t *testing.T) {
|
||||||
|
require.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
|
adminUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
||||||
|
normalUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||||
|
|
||||||
|
testOk := func(t *testing.T, doer *user_model.User, username string, expectedRedirectID int64) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
redirectID, err := LookupUserRedirect(t.Context(), doer, username)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, expectedRedirectID, redirectID)
|
||||||
|
}
|
||||||
|
|
||||||
|
testFail := func(t *testing.T, doer *user_model.User, username string) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
redirectID, err := LookupUserRedirect(t.Context(), doer, username)
|
||||||
|
require.ErrorIs(t, err, user_model.ErrUserRedirectNotExist{Name: username, MissingPermission: true})
|
||||||
|
assert.Zero(t, redirectID)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("Public visibility", func(t *testing.T) {
|
||||||
|
username := "olduser1"
|
||||||
|
redirectID := int64(1)
|
||||||
|
|
||||||
|
testOk(t, nil, username, redirectID)
|
||||||
|
testOk(t, normalUser, username, redirectID)
|
||||||
|
testOk(t, adminUser, username, redirectID)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Limited visibility", func(t *testing.T) {
|
||||||
|
username := "oldorg22"
|
||||||
|
redirectID := int64(22)
|
||||||
|
|
||||||
|
testFail(t, nil, username)
|
||||||
|
testOk(t, normalUser, username, redirectID)
|
||||||
|
testOk(t, adminUser, username, redirectID)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Private visibility", func(t *testing.T) {
|
||||||
|
orgUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
|
||||||
|
username := "oldorg23"
|
||||||
|
redirectID := int64(23)
|
||||||
|
|
||||||
|
testFail(t, nil, username)
|
||||||
|
testFail(t, normalUser, username)
|
||||||
|
testOk(t, orgUser, username, redirectID)
|
||||||
|
testOk(t, adminUser, username, redirectID)
|
||||||
|
})
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue