fix(event-bridge): retain downstream business errors

This commit is contained in:
2026-08-24 16:59:02 +08:00
parent 8e12dd9a38
commit 3019f5da77
2 changed files with 48 additions and 2 deletions
@@ -0,0 +1,26 @@
package com.baiyue.eventbridge.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class HttpLastlegEventClientTest {
private final ObjectMapper objectMapper = new ObjectMapper();
@Test
void failureIncludesBusinessCodeMessageAndTraceEvidence() throws Exception {
var body = objectMapper.readTree("""
{"code":"A0400","message":"入仓计划数据无效","requestId":"request-1","traceId":"trace-1"}
""");
assertThat(HttpLastlegEventClient.failureMessage(200, body))
.isEqualTo("尾程消费失败: HTTP 200, code=A0400, message=入仓计划数据无效, requestId=request-1, traceId=trace-1");
}
@Test
void nonJsonFailureIsStillDiagnosableWithoutLeakingRawBody() {
assertThat(HttpLastlegEventClient.failureMessage(502, null))
.isEqualTo("尾程消费失败: HTTP 502, code=missing, message=non-json response, requestId=missing, traceId=missing");
}
}