39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
package report
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeListQueryCapsPageSizeAndFilters(t *testing.T) {
|
|
query := normalizeListQuery(listQuery{Page: -1, PageSize: 1000, Keyword: " abc ", TargetType: "用户", ReportType: " Fraud "})
|
|
if query.Page != 1 || query.PageSize != 100 || query.Keyword != "abc" || query.TargetType != targetTypeUser || query.ReportType != "fraud" {
|
|
t.Fatalf("normalized query mismatch: %+v", query)
|
|
}
|
|
}
|
|
|
|
func TestReportWhereUsesStableFilters(t *testing.T) {
|
|
query := listQuery{
|
|
Keyword: "10001",
|
|
TargetType: targetTypeRoom,
|
|
ReportType: "fraud",
|
|
StartAtMS: 100,
|
|
EndAtMS: 200,
|
|
}
|
|
where, args := reportWhere("lalu", query)
|
|
want := "WHERE r.app_code = ? AND r.target_type = ? AND r.report_type = ? AND r.created_at_ms >= ? AND r.created_at_ms < ? AND (r.report_id LIKE ? OR r.room_id LIKE ? OR CAST(r.target_user_id AS CHAR) LIKE ? OR CAST(r.reporter_user_id AS CHAR) LIKE ? OR u.current_display_user_id LIKE ? OR u.default_display_user_id LIKE ? OR u.username LIKE ?)"
|
|
if where != want {
|
|
t.Fatalf("where mismatch:\nwant %s\n got %s", want, where)
|
|
}
|
|
if len(args) != 12 || args[0] != "lalu" || args[1] != targetTypeRoom || args[2] != "fraud" || args[3] != int64(100) || args[4] != int64(200) || args[5] != "%10001%" || args[11] != "%10001%" {
|
|
t.Fatalf("args mismatch: %#v", args)
|
|
}
|
|
}
|
|
|
|
func TestParseImageURLsNormalizesEmptyJSON(t *testing.T) {
|
|
urls, err := parseImageURLs("null")
|
|
if err != nil {
|
|
t.Fatalf("parse images failed: %v", err)
|
|
}
|
|
if len(urls) != 0 {
|
|
t.Fatalf("empty images mismatch: %#v", urls)
|
|
}
|
|
}
|