|
- package model
-
- import (
- "net/http/httptest"
- "testing"
-
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/constant"
- "github.com/gin-gonic/gin"
- "github.com/stretchr/testify/require"
- )
-
- func TestUserBaseGetSettingHandlesValidAndInvalidJSON(t *testing.T) {
- user := UserBase{Setting: `{"language":"en","billing_preference":"subscription"}`}
- setting := user.GetSetting()
- require.Equal(t, "en", setting.Language)
- require.Equal(t, "subscription", setting.BillingPreference)
-
- invalid := UserBase{Setting: "{"}
- require.Equal(t, "", invalid.GetSetting().Language)
- }
-
- func TestUserBaseWriteContextPopulatesRelayFields(t *testing.T) {
- context, _ := gin.CreateTestContext(httptest.NewRecorder())
- user := UserBase{
- Source: "oauth", Group: "vip", Quota: 123, Status: common.UserStatusEnabled,
- Email: "user@example.com", Username: "user", Setting: `{"language":"en"}`,
- }
-
- user.WriteContext(context)
-
- require.Equal(t, "vip", common.GetContextKeyString(context, constant.ContextKeyUserGroup))
- require.Equal(t, 123, common.GetContextKeyInt(context, constant.ContextKeyUserQuota))
- require.Equal(t, common.UserStatusEnabled, common.GetContextKeyInt(context, constant.ContextKeyUserStatus))
- require.Equal(t, "user@example.com", common.GetContextKeyString(context, constant.ContextKeyUserEmail))
- require.Equal(t, "user", common.GetContextKeyString(context, constant.ContextKeyUserName))
- require.Equal(t, "oauth", common.GetContextKeyString(context, constant.ContextKeyUserSource))
- }
-
- func TestGetUserCacheKeyIsNamespacedByUserID(t *testing.T) {
- require.Equal(t, "user:42", getUserCacheKey(42))
- }
|