feat: 支持采购任务追溯并安全重新创建 (#186)

This commit is contained in:
chengma
2026-08-12 16:26:22 +08:00
parent 836aad5c26
commit 69bcf6116a
13 changed files with 298 additions and 57 deletions
+34 -1
View File
@@ -83,7 +83,10 @@ func TestModuleNavigation_按账号保存稳定列表状态且安全回退(t *te
t.Fatal("没有找到模块查询参数白名单")
}
whitelist := jsSource[whitelistStart:whitelistEnd]
for _, forbidden := range []string{"\"msg\"", "\"error\"", "\"history\"", "\"login\"", "\"change_password\""} {
for _, forbidden := range []string{
"\"msg\"", "\"error\"", "\"history\"", "\"login\"", "\"change_password\"",
"\"open_syb_id\"", "\"purchase_intent\"",
} {
if strings.Contains(whitelist, forbidden) {
t.Errorf("稳定状态白名单不应包含临时参数 %s", forbidden)
}
@@ -189,6 +192,36 @@ func TestTaskDetail_采购核单结果使用独立只读分组(t *testing.T) {
}
}
func TestTaskDetail_采购来源与安全重新创建入口(t *testing.T) {
files := map[string][]string{
"templates/task/detail_modal.html": {
"来源信息", "蝦皮订单号", "顺运宝明细 ID", "蝦皮商品 ID", "PDD 商品 ID",
`{{if .HasSybSource}}`, `href="{{.ViewSybURL}}"`, "查看原货运单",
`{{if .CanRecreatePurchase}}`, `href="{{.RecreatePurchaseURL}}"`, "重新创建采购任务",
},
"templates/syb/list.html": {
`data-auto-open-purchase-id="{{.OpenPurchaseSybID}}"`, `{{range .PurchaseRows}}`,
`data-auto-open-detail-id="{{.OpenSybID}}"`,
},
"static/js/app.js": {
`form.getAttribute("data-auto-open-purchase-id")`,
`modal.getAttribute("data-auto-open-detail-id")`,
`showPurchaseSelection(autoSelected)`, `loadDetail(autoDetailID)`,
},
}
for path, wants := range files {
content, err := os.ReadFile(path)
if err != nil {
t.Fatal(err)
}
for _, want := range wants {
if !strings.Contains(string(content), want) {
t.Errorf("%s 缺少采购来源恢复约束 %q", path, want)
}
}
}
}
func TestTaskPage_创建人筛选列表列和详情字段齐全(t *testing.T) {
files := map[string][]string{
"templates/task/list.html": {