package com.baiyue.gateway.config; import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import static org.assertj.core.api.Assertions.assertThat; class OverseasLastlegRouteContractTest { @Test void browserAndPdaPathsAreForwardedToLastlegWithoutPrefixRewrite() throws IOException { try (InputStream input = getClass().getResourceAsStream("/application-overseas.yml")) { assertThat(input).isNotNull(); String yaml = new String(input.readAllBytes(), StandardCharsets.UTF_8); int routeStart = yaml.indexOf("- id: lastleg-service"); int routeEnd = yaml.indexOf("- id: warehouse-overseas-service", routeStart); assertThat(routeStart).isGreaterThanOrEqualTo(0); assertThat(routeEnd).isGreaterThan(routeStart); String route = yaml.substring(routeStart, routeEnd); assertThat(route).contains("uri: lb://lastleg-service") .contains("/api/platform/v1/last-leg/**") .contains("/api/merchant/v1/last-leg/**") .contains("/api/pda/v1/last-leg/**") .doesNotContain("StripPrefix", "RewritePath"); } } @Test void swaggerPublishesAnIndependentLastlegPdaGroup() throws IOException { try (InputStream input = getClass().getResourceAsStream("/application-overseas.yml")) { assertThat(input).isNotNull(); String yaml = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertThat(yaml).contains("name: lastleg-pda", "url: /lastleg-service/v3/api-docs/pda") .contains("Path=/lastleg-service/v3/api-docs/**") .doesNotContain("event-bridge-service/v3/api-docs/pda"); } } }