diff --git a/application/src/main/resources/application.properties b/application/src/main/resources/application.properties index 46dc61a8..a599f1df 100644 --- a/application/src/main/resources/application.properties +++ b/application/src/main/resources/application.properties @@ -15,8 +15,6 @@ spring.jpa.hibernate.ddl-auto=update spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL10Dialect spring.flyway.baseline-on-migrate=true -spring.jackson.serialization.INDENT_OUTPUT=true - resilience4j.ratelimiter.instances.blockcypher.limit-for-period=3 resilience4j.ratelimiter.instances.blockcypher.limit-refresh-period=1s resilience4j.ratelimiter.instances.blockcypher.timeout-duration=100ms diff --git a/web/src/integrationTest/java/de/cotto/lndmanagej/controller/ObjectMapperConfigurationIT.java b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/ObjectMapperConfigurationIT.java new file mode 100644 index 00000000..70b1d371 --- /dev/null +++ b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/ObjectMapperConfigurationIT.java @@ -0,0 +1,46 @@ +package de.cotto.lndmanagej.controller; + +import de.cotto.lndmanagej.controller.dto.ObjectMapperConfiguration; +import de.cotto.lndmanagej.model.ChannelIdResolver; +import de.cotto.lndmanagej.service.ChannelService; +import de.cotto.lndmanagej.service.OwnNodeService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.Set; + +import static de.cotto.lndmanagej.model.LocalOpenChannelFixtures.LOCAL_OPEN_CHANNEL; +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; + +@WebMvcTest(controllers = StatusController.class) +@Import(ObjectMapperConfiguration.class) +class ObjectMapperConfigurationIT { + private static final String PREFIX = "/api/status/"; + + @Autowired + private MockMvc mockMvc; + + @MockBean + @SuppressWarnings("unused") + private ChannelIdResolver channelIdResolver; + + @MockBean + private ChannelService channelService; + + @MockBean + @SuppressWarnings("unused") + private OwnNodeService ownNodeService; + + @Test + void output_is_pretty_printed() throws Exception { + when(channelService.getOpenChannels()).thenReturn(Set.of(LOCAL_OPEN_CHANNEL)); + mockMvc.perform(get(PREFIX + "/open-channels/")) + .andExpect(content().string("{\n \"channels\" : [ \"712345x123x1\" ]\n}")); + } +} \ No newline at end of file diff --git a/web/src/main/java/de/cotto/lndmanagej/controller/dto/ObjectMapperConfiguration.java b/web/src/main/java/de/cotto/lndmanagej/controller/dto/ObjectMapperConfiguration.java index 3aeac5c5..9a54374d 100644 --- a/web/src/main/java/de/cotto/lndmanagej/controller/dto/ObjectMapperConfiguration.java +++ b/web/src/main/java/de/cotto/lndmanagej/controller/dto/ObjectMapperConfiguration.java @@ -1,6 +1,7 @@ package de.cotto.lndmanagej.controller.dto; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import de.cotto.lndmanagej.model.ChannelId; @@ -26,6 +27,8 @@ public class ObjectMapperConfiguration { module.addSerializer(ChannelId.class, new ToStringSerializer()); module.addSerializer(ChannelPoint.class, new ToStringSerializer()); module.addSerializer(ZonedDateTime.class, new ToStringSerializer()); - return new ObjectMapper().registerModule(module); + ObjectMapper objectMapper = new ObjectMapper().registerModule(module); + objectMapper.enable(SerializationFeature.INDENT_OUTPUT); + return objectMapper; } }