MCPcopy
hub / github.com/usememos/memos / TestUserSettingJSONFieldsEdgeCases

Function TestUserSettingJSONFieldsEdgeCases

store/test/user_setting_test.go:943–993  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

941}
942
943func TestUserSettingJSONFieldsEdgeCases(t *testing.T) {
944 t.Parallel()
945 ctx := context.Background()
946 ts := NewTestingStore(ctx, t)
947 user, err := createTestingHostUser(ctx, ts)
948 require.NoError(t, err)
949
950 // Case 1: Webhook with special characters and Unicode in Title and URL
951 specialWebhook := &storepb.WebhooksUserSetting_Webhook{
952 Id: "wh-special",
953 Title: `My "Special" & <Webhook> 🚀`,
954 Url: "https://example.com/hook?query=你好&param=\"value\"",
955 }
956 err = ts.AddUserWebhook(ctx, user.ID, specialWebhook)
957 require.NoError(t, err)
958
959 webhooks, err := ts.GetUserWebhooks(ctx, user.ID)
960 require.NoError(t, err)
961 require.Len(t, webhooks, 1)
962 require.Equal(t, specialWebhook.Title, webhooks[0].Title)
963 require.Equal(t, specialWebhook.Url, webhooks[0].Url)
964
965 // Case 2: PAT with special description
966 specialPAT := &storepb.PersonalAccessTokensUserSetting_PersonalAccessToken{
967 TokenId: "pat-special",
968 TokenHash: "hash-special",
969 Description: "Token for 'CLI' \n & \"API\" \t with unicode 🔑",
970 }
971 err = ts.AddUserPersonalAccessToken(ctx, user.ID, specialPAT)
972 require.NoError(t, err)
973
974 pats, err := ts.GetUserPersonalAccessTokens(ctx, user.ID)
975 require.NoError(t, err)
976 require.Len(t, pats, 1)
977 require.Equal(t, specialPAT.Description, pats[0].Description)
978
979 // Case 3: Refresh Token with special description
980 specialRefreshToken := &storepb.RefreshTokensUserSetting_RefreshToken{
981 TokenId: "rt-special",
982 Description: "Browser: Firefox (Nightly) / OS: Linux 🐧",
983 }
984 err = ts.AddUserRefreshToken(ctx, user.ID, specialRefreshToken)
985 require.NoError(t, err)
986
987 tokens, err := ts.GetUserRefreshTokens(ctx, user.ID)
988 require.NoError(t, err)
989 require.Len(t, tokens, 1)
990 require.Equal(t, specialRefreshToken.Description, tokens[0].Description)
991
992 ts.Close()
993}

Callers

nothing calls this directly

Calls 10

NewTestingStoreFunction · 0.85
createTestingHostUserFunction · 0.85
AddUserWebhookMethod · 0.80
GetUserWebhooksMethod · 0.80
LenMethod · 0.80
AddUserRefreshTokenMethod · 0.80
GetUserRefreshTokensMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected