58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package creator
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestSlicePageUsesEmptyDataArray(t *testing.T) {
|
|
page, err := slicePage[string](nil, 1, 25)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
encoded, err := json.Marshal(page)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if string(encoded) != `{"data":[],"page":1,"page_size":25,"total":0,"has_next":false}` {
|
|
t.Fatalf("empty page JSON = %s", encoded)
|
|
}
|
|
}
|
|
|
|
func TestParseGeneratedRewriteRequiresBoundedJSON(t *testing.T) {
|
|
title, script, err := parseGeneratedRewrite(`{"title":"新标题","script":"新脚本"}`)
|
|
if err != nil || title != "新标题" || script != "新脚本" {
|
|
t.Fatalf("parseGeneratedRewrite() = %q, %q, %v", title, script, err)
|
|
}
|
|
for _, content := range []string{
|
|
"",
|
|
"不是 JSON",
|
|
`{"title":"有标题"}`,
|
|
`{"title":"标题","script":""}`,
|
|
} {
|
|
if _, _, err := parseGeneratedRewrite(content); err == nil {
|
|
t.Fatalf("parseGeneratedRewrite(%q) accepted invalid output", content)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestValidateCreatorTags(t *testing.T) {
|
|
valid := make([]string, 20)
|
|
for i := range valid {
|
|
valid[i] = "标签"
|
|
}
|
|
if err := validateCreatorTags(valid); err != nil {
|
|
t.Fatalf("validateCreatorTags(valid) = %v", err)
|
|
}
|
|
for name, tags := range map[string][]string{
|
|
"too many": append(valid, "额外"),
|
|
"empty": {""},
|
|
"spaced": {" 标签"},
|
|
"too long": {string(make([]rune, 33))},
|
|
} {
|
|
if err := validateCreatorTags(tags); err == nil {
|
|
t.Fatalf("validateCreatorTags(%s) accepted invalid tags", name)
|
|
}
|
|
}
|
|
}
|