✅ 锁定待回单确认运单的「未开始运输」文案与在途卡不可打卡
两处都由 isPunchEnded 自动覆盖,测试只锁住它们不得回到「尚未开始运输」分支。
This commit is contained in:
+16
@@ -438,6 +438,22 @@ class WaybillProcessSupportTest {
|
||||
// 结束态由结束文案负责,两句话不能抢
|
||||
assertNull(WaybillProcessSupport.punchNotStartedReason("completed"));
|
||||
assertNull(WaybillProcessSupport.punchNotStartedReason("cancelled"));
|
||||
assertNull(WaybillProcessSupport.punchNotStartedReason("pending_return_confirm"),
|
||||
"司机已打完末位卡,不能再被说成「尚未开始运输」");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("在途卡:待回单确认的运单与已完成同样不可打卡")
|
||||
void transitCardOnPendingReturnConfirmWaybillIsVisibleButNotPunchable() {
|
||||
LocalDateTime now = LocalDateTime.of(2026, 10, 20, 12, 0);
|
||||
|
||||
WaybillProcessSupport.TransitCheckinDecision decision =
|
||||
WaybillProcessSupport.evaluateTransitCheckin(TRANSPORT_JSON, "pending_return_confirm", null, now);
|
||||
|
||||
assertTrue(decision.visible(), "卡片仍要下发,司机能回看");
|
||||
assertFalse(decision.punchEnabled(), "末位卡已打完,在途卡不能再提交");
|
||||
assertFalse(decision.doneToday());
|
||||
assertFalse(decision.dueToday());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user