46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"html/template"
|
|
"strings"
|
|
"testing"
|
|
|
|
"cmautobuy/admin/service"
|
|
)
|
|
|
|
func TestSybListTemplate_区分标题图片与阶段动作(t *testing.T) {
|
|
tmpl, err := template.ParseFS(templateFS, "templates/*/*.html")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
rows := []service.SybOrderView{{
|
|
SybID: "SYB-READY", OrderNo: "ORDER-READY", Title: "可采购商品",
|
|
ImageURL: "https://example.test/original.jpg", Stage: service.SybStagePurchaseReady,
|
|
StageText: "可创建采购任务", StageHelp: "规格映射有效", ActionText: "核对规格",
|
|
CanPurchase: true, DefaultMaxPrice: "39.90",
|
|
}}
|
|
var output bytes.Buffer
|
|
data := map[string]any{
|
|
"Title": "顺运宝数据", "Active": "syb", "CSRFToken": "test-csrf",
|
|
"Rows": rows, "DetailURL": "/syb/detail", "StageOptions": service.SybStageOptions(),
|
|
}
|
|
if err := tmpl.ExecuteTemplate(&output, "syb/list", data); err != nil {
|
|
t.Fatalf("渲染顺运宝列表失败: %v", err)
|
|
}
|
|
body := output.String()
|
|
for _, want := range []string{
|
|
`class="table-title-action" data-detail-open-id="SYB-READY"`,
|
|
`data-image-preview-url="https://example.test/original.jpg"`,
|
|
`aria-label="查看 可采购商品 的原图"`,
|
|
`id="image-preview-modal"`,
|
|
} {
|
|
if !strings.Contains(body, want) {
|
|
t.Errorf("顺运宝列表缺少 %q", want)
|
|
}
|
|
}
|
|
if strings.Contains(body, `<tr data-detail-id=`) {
|
|
t.Error("顺运宝列表不应继续使用含义模糊的整行双击入口")
|
|
}
|
|
}
|