Files
digital-psychology/apps/api/internal/textsafe/textsafe_test.go
T
jackyu66gitandCursor 89756f65b4 feat(ECR-012–016): 合规、题库、时辰刷新、头像、MBTI OEJTS 与埋点
落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 01:27:58 +08:00

55 lines
1.3 KiB
Go

package textsafe_test
import (
"strings"
"testing"
"github.com/yuxingu/digital-psychology/apps/api/internal/textsafe"
)
func TestOK(t *testing.T) {
got, err := textsafe.Check(textsafe.Nickname, " 心语岛 ")
if err != nil || got != "心语岛" {
t.Fatalf("got %q err=%v", got, err)
}
got, err = textsafe.Check(textsafe.DisplayName, "小愈")
if err != nil || got != "小愈" {
t.Fatalf("got %q err=%v", got, err)
}
}
func TestBanned(t *testing.T) {
if _, err := textsafe.Check(textsafe.Nickname, "算命达人"); err == nil {
t.Fatal("expected reject")
}
if _, err := textsafe.Check(textsafe.AskContent, "帮我占卜一下"); err == nil {
t.Fatal("expected reject")
}
}
func TestXSS(t *testing.T) {
if _, err := textsafe.Check(textsafe.AskContent, `hi <script>alert(1)</script>`); err == nil {
t.Fatal("expected reject")
}
}
func TestSpam(t *testing.T) {
if _, err := textsafe.Check(textsafe.Note, "啊啊啊啊啊啊啊啊"); err == nil {
t.Fatal("expected reject")
}
}
func TestLength(t *testing.T) {
long := strings.Repeat("字", 20)
if _, err := textsafe.Check(textsafe.Nickname, long); err == nil {
t.Fatal("expected reject")
}
}
func TestOptionalEmpty(t *testing.T) {
got, err := textsafe.Check(textsafe.Note, " ")
if err != nil || got != "" {
t.Fatalf("got %q err=%v", got, err)
}
}