mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-09-30 19:22:08 +00:00
61 lines
2.3 KiB
Go
61 lines
2.3 KiB
Go
|
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
|
||
|
package user_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"forgejo.org/models/moderation"
|
||
|
"forgejo.org/models/user"
|
||
|
"forgejo.org/modules/timeutil"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
tsCreated timeutil.TimeStamp = timeutil.TimeStamp(1753093200) // 2025-07-21 10:20:00 UTC
|
||
|
tsUpdated timeutil.TimeStamp = timeutil.TimeStamp(1753093320) // 2025-07-21 10:22:00 UTC
|
||
|
tsLastLogin timeutil.TimeStamp = timeutil.TimeStamp(1753093800) // 2025-07-21 10:30:00 UTC
|
||
|
)
|
||
|
|
||
|
func testShadowCopyField(t *testing.T, scField moderation.ShadowCopyField, key, value string) {
|
||
|
assert.Equal(t, key, scField.Key)
|
||
|
assert.Equal(t, value, scField.Value)
|
||
|
}
|
||
|
|
||
|
func TestUserDataGetFieldsMap(t *testing.T) {
|
||
|
ud := user.UserData{
|
||
|
Name: "alexsmith",
|
||
|
FullName: "Alex Smith",
|
||
|
Email: "alexsmith@example.org",
|
||
|
LoginName: "",
|
||
|
Location: "@master@seo.net",
|
||
|
Website: "http://promote-your-business.biz",
|
||
|
Pronouns: "SEO",
|
||
|
Description: "I can help you promote your business online using SEO.",
|
||
|
CreatedUnix: tsCreated,
|
||
|
UpdatedUnix: tsUpdated,
|
||
|
LastLogin: tsLastLogin,
|
||
|
Avatar: "avatar-hash-user-1002",
|
||
|
AvatarEmail: "alexsmith@example.org",
|
||
|
}
|
||
|
scFields := ud.GetFieldsMap()
|
||
|
|
||
|
if assert.Len(t, scFields, 13) {
|
||
|
testShadowCopyField(t, scFields[0], "Name", "alexsmith")
|
||
|
testShadowCopyField(t, scFields[1], "FullName", "Alex Smith")
|
||
|
testShadowCopyField(t, scFields[2], "Email", "alexsmith@example.org")
|
||
|
testShadowCopyField(t, scFields[3], "LoginName", "")
|
||
|
testShadowCopyField(t, scFields[4], "Location", "@master@seo.net")
|
||
|
testShadowCopyField(t, scFields[5], "Website", "http://promote-your-business.biz")
|
||
|
testShadowCopyField(t, scFields[6], "Pronouns", "SEO")
|
||
|
testShadowCopyField(t, scFields[7], "Description", "I can help you promote your business online using SEO.")
|
||
|
testShadowCopyField(t, scFields[8], "CreatedUnix", tsCreated.AsLocalTime().String())
|
||
|
testShadowCopyField(t, scFields[9], "UpdatedUnix", tsUpdated.AsLocalTime().String())
|
||
|
testShadowCopyField(t, scFields[10], "LastLogin", tsLastLogin.AsLocalTime().String())
|
||
|
testShadowCopyField(t, scFields[11], "Avatar", "avatar-hash-user-1002")
|
||
|
testShadowCopyField(t, scFields[12], "AvatarEmail", "alexsmith@example.org")
|
||
|
}
|
||
|
}
|