fix: 修复顺运宝采集任务孤儿状态 (#165)
This commit is contained in:
@@ -113,7 +113,15 @@ func TestSybStageFor_全部筛选阶段与逐行推导一致(t *testing.T) {
|
||||
{SybStageSpecMissing, "核对数据", copyWith(func(c *repository.SybOrderContext) { c.Order.SpecKey = "" })},
|
||||
{SybStagePddMissing, "关联 PDD", copyWith(func(c *repository.SybOrderContext) { c.PddGoodsID, c.PddCollectStatus = "", "" })},
|
||||
{SybStagePddPending, "创建采集任务", copyWith(func(c *repository.SybOrderContext) { c.PddCollectStatus = string(model.CollectPending) })},
|
||||
{SybStagePddCollecting, "查看采集状态", copyWith(func(c *repository.SybOrderContext) { c.PddCollectStatus = string(model.CollectCollecting) })},
|
||||
{SybStagePddCollecting, "查看采集状态", copyWith(func(c *repository.SybOrderContext) {
|
||||
c.PddCollectStatus = string(model.CollectCollecting)
|
||||
c.PddUpdatedAt = model.NowISO()
|
||||
c.HasActiveCollectTask = true
|
||||
})},
|
||||
{SybStagePddCollectingStale, "重新创建采集任务", copyWith(func(c *repository.SybOrderContext) {
|
||||
c.PddCollectStatus = string(model.CollectCollecting)
|
||||
c.PddUpdatedAt = model.NowISO()
|
||||
})},
|
||||
{SybStagePddFailed, "重新采集", copyWith(func(c *repository.SybOrderContext) { c.PddCollectStatus = string(model.CollectFailed) })},
|
||||
{SybStageMappingPending, "匹配规格", copyWith(func(c *repository.SybOrderContext) { c.MappingOptionKey = "" })},
|
||||
{SybStageTaskCreated, "查看采购任务", copyWith(func(c *repository.SybOrderContext) { c.HasActiveTask = true })},
|
||||
@@ -150,6 +158,10 @@ func TestSybOrderViewFor_批量动作能力按阶段隔离(t *testing.T) {
|
||||
context := base
|
||||
context.PddCollectStatus = string(tc.status)
|
||||
context.MappingOptionKey = tc.mappingKey
|
||||
if tc.status == model.CollectCollecting {
|
||||
context.PddUpdatedAt = model.NowISO()
|
||||
context.HasActiveCollectTask = true
|
||||
}
|
||||
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)
|
||||
@@ -171,3 +183,14 @@ func TestSybOrderViewFor_批量动作能力按阶段隔离(t *testing.T) {
|
||||
t.Fatalf("采购就绪行应只允许采购:CanCollect=%v CanPurchase=%v", view.CanCollect, view.CanPurchase)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSybCollectingIsStale_有效任务但时间损坏时允许恢复(t *testing.T) {
|
||||
context := repository.SybOrderContext{
|
||||
PddCollectStatus: string(model.CollectCollecting),
|
||||
PddUpdatedAt: "not-a-time",
|
||||
HasActiveCollectTask: true,
|
||||
}
|
||||
if !sybCollectingIsStale(context) {
|
||||
t.Fatal("无法解析更新时间时不应永久停留在正常采集中")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user