fix: enforce dropship whole-pallet receiving

This commit is contained in:
2026-09-09 19:07:13 +08:00
parent 3e01dec4f8
commit 1e66fc6c22
4 changed files with 22 additions and 2 deletions
@@ -364,6 +364,22 @@ class ReceivingContainerServiceBehaviorTest {
verifyNoInteractions(warehouse);
}
@Test
void dropshipFbaBulkReceiveIsRejectedBeforeWarehouseCalls() {
stubCurrent("FBA", "CONT-A");
LastlegOrder dropshipOrder = order("FBA");
dropshipOrder.setOrderType("ONE_CLICK_DROPSHIP");
when(orders.selectById(1L)).thenReturn(dropshipOrder);
assertThatThrownBy(() -> service.receiveBulk("7", "receiver",
new ReceivingContainerRequests.BulkReceive("IN-1", "PAL-1", 1, "dropship-bulk-key")))
.isInstanceOf(ResponseStatusException.class)
.hasMessageContaining("complete source pallet");
verifyNoInteractions(warehouse);
verifyNoInteractions(workflow);
}
@Test
void crossContainerCartonAndMismatchedPalletAreRejectedBeforeReservation() {
stubCurrent("OVERSEAS", "CONT-A");