package com.baiyue.common.audit; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; class SensitiveDataSanitizerTest { private final ObjectMapper mapper = new ObjectMapper(); @Test void truncatedSnapshotRemainsValidJson() throws Exception { SensitiveDataSanitizer sanitizer = new SensitiveDataSanitizer(mapper, 40); String sanitized = sanitizer.sanitize(Map.of("description", "x".repeat(200))); JsonNode parsed = mapper.readTree(sanitized); assertThat(parsed.path("_truncated").asBoolean()).isTrue(); assertThat(parsed.path("_originalLength").asInt()).isGreaterThan(40); } }