fix(events): allow manual nodes without tracking query

This commit is contained in:
2026-09-10 13:56:07 +08:00
parent c051be3a67
commit a3890e7a55
4 changed files with 35 additions and 4 deletions
@@ -93,6 +93,23 @@ class CarrierScheduleNodeOutboxServiceTest {
verify(mapper, never()).insert(org.mockito.ArgumentMatchers.any(InboundOutboxEntity.class));
}
@Test
void directManualActualFactDoesNotRequireTrackingQuery() throws Exception {
CarrierScheduleNodeFactEntity fact = fact();
fact.setProviderCode("MANUAL"); fact.setProviderEventId("manual-event");
fact.setSourceReference("MANUAL:7");
service.publishContainerNode(2088000000000000004L, 2088000000000000003L,
fact, "ZCSU7881970");
ArgumentCaptor<InboundOutboxEntity> captor = ArgumentCaptor.forClass(InboundOutboxEntity.class);
verify(mapper).insert(captor.capture());
EventEnvelope envelope = objectMapper.readValue(captor.getValue().getPayloadJson(), EventEnvelope.class);
assertThat(envelope.payload().path("queryId").isNull()).isTrue();
assertThat(envelope.payload().path("sourceContainerBookingId").asText())
.isEqualTo("2088000000000000003");
}
@Test
void initialOutboundDepartureUsesVersionZeroWithoutEnvelopeFailure() throws Exception {
CarrierScheduleQueryEntity query = query();