feat: 支持顺运宝多订单号搜索 (#217)

This commit is contained in:
chengma
2026-08-13 14:58:19 +08:00
parent 2ebe6bf695
commit 8f2b3f725d
13 changed files with 372 additions and 46 deletions
+34
View File
@@ -56,6 +56,8 @@ func TestSybListTemplate_区分标题图片与阶段动作(t *testing.T) {
"Rows": rows, "PurchaseRows": rows,
"DetailURL": "/syb/detail", "StageOptions": service.SybStageOptions(),
"SyncDateFrom": "2026-08-12", "SyncDateTo": "2026-08-13",
"Keyword": "ORDER-READY,ORDER-MISSING",
"OrderNoFeedback": "已输入 2 个订单号;当前筛选命中 1 个订单、1 条商品明细。 当前筛选未命中:ORDER-MISSING",
}
if err := tmpl.ExecuteTemplate(&output, "syb/list", data); err != nil {
t.Fatalf("渲染顺运宝列表失败: %v", err)
@@ -87,6 +89,13 @@ func TestSybListTemplate_区分标题图片与阶段动作(t *testing.T) {
`>创建采集任务</button>`,
`<h2 id="syb-collect-modal-title">创建采集任务</h2>`,
`class="syb-search-input"`,
`订单号(可多条)`,
`textarea id="q" name="order_no" rows="1"`,
`data-syb-order-search`,
`maxlength="4000"`,
`支持中英文逗号、分号、空格、Tab 或换行分隔,最多 100 个订单号`,
`role="status">已输入 2 个订单号`,
`当前筛选未命中:ORDER-MISSING`,
`href="/syb?date_from=2026-08-12`,
`date_to=2026-08-13">清除</a>`,
`class="table-wrap syb-table-wrap"`,
@@ -121,6 +130,31 @@ func TestSybListTemplate_区分标题图片与阶段动作(t *testing.T) {
}
}
func TestSybListTemplate_订单号错误就地显示(t *testing.T) {
tmpl, err := template.ParseFS(templateFS, "templates/*/*.html")
if err != nil {
t.Fatal(err)
}
var output bytes.Buffer
data := map[string]any{
"Title": "顺运宝数据", "Active": "syb", "CSRFToken": "test-csrf",
"OrderNoError": "一次最多搜索 100 个不同订单号",
"Keyword": "ORDER-001",
}
if err := tmpl.ExecuteTemplate(&output, "syb/list", data); err != nil {
t.Fatalf("渲染顺运宝订单号错误失败: %v", err)
}
body := output.String()
for _, want := range []string{
`aria-invalid="true"`, `aria-describedby="order-no-error"`,
`id="order-no-error"`, `role="alert">一次最多搜索 100 个不同订单号`,
} {
if !strings.Contains(body, want) {
t.Errorf("订单号错误提示缺少 %q", want)
}
}
}
func TestSybDetailTemplate_单条采集可选执行客户端(t *testing.T) {
tmpl, err := template.ParseFS(templateFS, "templates/*/*.html")
if err != nil {