落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。 Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|