package com.baiyue.common.web; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; class EventDeliveryObservationTest { @Test void malformedSuccessResponseIsNotReportedAsAnHttpSuccess() { var request = feign.Request.create(feign.Request.HttpMethod.POST, "http://consumer.invalid/events", java.util.Map.of(), new byte[0], java.nio.charset.StandardCharsets.UTF_8, new feign.RequestTemplate()); var failure = new feign.codec.DecodeException(200, "secret remote payload", request); assertThat(EventDeliveryObservation.errorCode(failure, false, true)).isEqualTo("INVALID_RESPONSE"); assertThat(EventDeliveryFailure.diagnostic(failure, "token")) .contains("Invalid consumer response contract").doesNotContain("secret", "HTTP 200"); assertThat(EventDeliveryFailure.isPermanent(failure)).isFalse(); } @Test void auditIdentitySupportsTheFormalUuidAndUlidContractWithoutSavingMalformedPayload() { var mapper = new ObjectMapper(); for (String id : new String[]{"00000000-0000-4000-8000-000000000019", "01ARZ3NDEKTSV4RRFFQ69G5FAV"}) { assertThat(EventDeliveryObservation.eventId(mapper, "{\"eventId\":\"" + id + "\",\"payload\":\"secret\"}")).isEqualTo(id); } assertThat(EventDeliveryObservation.eventId(mapper, "bad secret JSON")).isNull(); assertThat(EventDeliveryObservation.eventId(mapper, "{\"eventId\":\"Bearer secret\"}")).isNull(); } @Test void arbitraryExceptionsAndRemoteMessagesCannotLeakIntoAttemptAudit() { var failure = new IllegalStateException("payload={secret} Authorization=secret"); assertThat(EventDeliveryObservation.errorCode(failure, false, true)).isEqualTo("DELIVERY_FAILURE"); assertThat(EventDeliveryObservation.errorCode(failure, true, true)).isEqualTo("PERMANENT_FAILURE"); assertThat(EventDeliveryObservation.errorCode(failure, true, false)).isEqualTo("INVALID_EVENT"); } }