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) } } }