feat: 支持顺运宝批量创建采集任务 (#153)

This commit is contained in:
chengma
2026-08-11 14:59:26 +08:00
parent 2629e41211
commit b527204204
12 changed files with 341 additions and 14 deletions
+41
View File
@@ -130,3 +130,44 @@ func TestSybStageFor_全部筛选阶段与逐行推导一致(t *testing.T) {
}
}
}
func TestSybOrderViewFor_批量动作能力按阶段隔离(t *testing.T) {
base := repository.SybOrderContext{
Order: model.SybOrder{SybID: "SYB-1", SpecKey: "黑色,M", Quantity: 1},
PddGoodsID: "737116531267",
}
cases := []struct {
status model.CollectStatus
mappingKey string
wantCollect, wantPurchase bool
}{
{status: model.CollectPending, wantCollect: true},
{status: model.CollectFailed, wantCollect: true},
{status: model.CollectCollecting},
{status: model.CollectCollected},
}
for _, tc := range cases {
context := base
context.PddCollectStatus = string(tc.status)
context.MappingOptionKey = tc.mappingKey
view := sybOrderViewFor(context)
if view.CanCollect != tc.wantCollect || view.CanPurchase != tc.wantPurchase {
t.Errorf("status=%s: CanCollect=%v CanPurchase=%v", tc.status, view.CanCollect, view.CanPurchase)
}
if view.SelectionHint == "" {
t.Errorf("status=%s: 应给出选择能力说明", tc.status)
}
}
key, err := OptionKey(map[string]string{"color": "黑色", "size": "M码", "style": "常规"})
if err != nil {
t.Fatal(err)
}
ready := base
ready.PddCollectStatus = string(model.CollectCollected)
ready.PddSkusJSON = collectedThreeDimensions
ready.MappingOptionKey = key
view := sybOrderViewFor(ready)
if view.CanCollect || !view.CanPurchase {
t.Fatalf("采购就绪行应只允许采购:CanCollect=%v CanPurchase=%v", view.CanCollect, view.CanPurchase)
}
}