package service
import (
"strings"
"testing"
)
func TestRedactReplyOnlyHTML(t *testing.T) {
in := `
公开
秘密答案
`
out := RedactReplyOnlyHTML(in)
if strings.Contains(out, "秘密答案") {
t.Fatalf("不应保留回复可见正文,得到: %q", out)
}
if !strings.Contains(out, `data-locked="true"`) || !strings.Contains(out, "reply-only") {
t.Fatalf("应保留锁定壳,得到: %q", out)
}
if !strings.Contains(out, "公开") {
t.Fatalf("不应误删公开段落,得到: %q", out)
}
}
func TestRedactGatedPostHTML(t *testing.T) {
in := `登录密
回复密
`
out := RedactGatedPostHTML(in)
if strings.Contains(out, "登录密") || strings.Contains(out, "回复密") {
t.Fatalf("门控正文应被遮盖,得到: %q", out)
}
}
func TestUnwrapContentGateTags(t *testing.T) {
in := `公开
` +
`登录密
` +
`回复密
` +
`积分密
`
out := UnwrapContentGateTags(in)
for _, tag := range []string{"members-only", "reply-only", "points-only"} {
if strings.Contains(out, tag) {
t.Fatalf("应剥离 %s 外壳,得到: %q", tag, out)
}
}
for _, want := range []string{"公开", "登录密", "回复密", "积分密"} {
if !strings.Contains(out, want) {
t.Fatalf("应保留内部正文 %q,得到: %q", want, out)
}
}
}