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"); } }