test(deploy): verify unified TEST and gray environment contracts
This commit is contained in:
@@ -16,12 +16,13 @@ class ExportInfrastructureContractTest {
|
|||||||
assertTrue(compose.contains("FILE_EXPORT_PUBLISHER_ENABLED: ${FILE_EXPORT_PUBLISHER_ENABLED:-false}"));
|
assertTrue(compose.contains("FILE_EXPORT_PUBLISHER_ENABLED: ${FILE_EXPORT_PUBLISHER_ENABLED:-false}"));
|
||||||
assertTrue(compose.contains("FILE_EXPORT_RECONCILER_ENABLED: ${FILE_EXPORT_RECONCILER_ENABLED:-false}"));
|
assertTrue(compose.contains("FILE_EXPORT_RECONCILER_ENABLED: ${FILE_EXPORT_RECONCILER_ENABLED:-false}"));
|
||||||
assertTrue(compose.contains("-Xms1g -Xmx2g"));
|
assertTrue(compose.contains("-Xms1g -Xmx2g"));
|
||||||
assertTrue(compose.contains("MQ_TOPIC_PREFIX: test-"));
|
assertTrue(compose.contains("MQ_TOPIC_PREFIX: ${MQ_TOPIC_PREFIX:-test-}"));
|
||||||
assertTrue(compose.contains("ROCKETMQ_NAME_SERVER: ${ROCKETMQ_NAME_SERVER}"));
|
assertTrue(compose.contains("ROCKETMQ_NAME_SERVER: ${ROCKETMQ_NAME_SERVER}"));
|
||||||
String entry=read("..","deploy","scripts","deploy-services.sh");
|
String entry=read("..","deploy","scripts","deploy-services.sh");
|
||||||
assertTrue(entry.contains("sh deploy/scripts/deploy-built-service.sh"));
|
assertTrue(entry.contains("sh deploy/scripts/deploy-built-service.sh"));
|
||||||
String deployScript=read("..","deploy","scripts","deploy-built-service.sh");
|
String deployScript=read("..","deploy","scripts","deploy-built-service.sh");
|
||||||
assertTrue(deployScript.contains("MQ_TOPIC_PREFIX must be test-"));
|
assertTrue(deployScript.contains("MQ_TOPIC_PREFIX must be $DEPLOY_ENV-"));
|
||||||
|
assertTrue(deployScript.contains("[ \"$(env_file_value MQ_TOPIC_PREFIX)\" = \"$DEPLOY_ENV-\" ]"));
|
||||||
assertTrue(deployScript.contains("ROCKETMQ_NAME_SERVER"));
|
assertTrue(deployScript.contains("ROCKETMQ_NAME_SERVER"));
|
||||||
assertTrue(deployScript.contains("env_file_value"));
|
assertTrue(deployScript.contains("env_file_value"));
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-2
@@ -1,10 +1,12 @@
|
|||||||
package com.baiyue.firstleg.client;
|
package com.baiyue.firstleg.client;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.util.PropertyPlaceholderHelper;
|
||||||
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
@@ -23,11 +25,18 @@ class EventBridgeClientDeploymentContractTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testComposeUsesDirectBusinessServiceDns() throws Exception {
|
void composeUsesDirectBusinessServiceDnsForTestAndGray() throws Exception {
|
||||||
String compose = Files.readString(REPOSITORY_ROOT.resolve("deploy/docker-compose.yml"));
|
String compose = Files.readString(REPOSITORY_ROOT.resolve("deploy/docker-compose.yml"));
|
||||||
|
|
||||||
assertTrue(compose.contains("LASTLEG_SERVICE_URL: http://lastleg-service:9303"));
|
assertTrue(compose.contains("LASTLEG_SERVICE_URL: http://lastleg-service:9303"));
|
||||||
assertTrue(compose.contains("firstleg-test-network"));
|
String networkName = compose.lines().map(String::strip)
|
||||||
|
.filter(line -> line.startsWith("name: firstleg-") && line.endsWith("-network"))
|
||||||
|
.findFirst().orElseThrow().substring("name: ".length());
|
||||||
|
assertEquals("firstleg-${DEPLOY_ENV:-test}-network", networkName);
|
||||||
|
var placeholders = new PropertyPlaceholderHelper("${", "}", ":-", false);
|
||||||
|
assertEquals("firstleg-test-network", placeholders.replacePlaceholders(networkName, key -> null));
|
||||||
|
assertEquals("firstleg-production-network", placeholders.replacePlaceholders(networkName,
|
||||||
|
key -> "DEPLOY_ENV".equals(key) ? "production" : null));
|
||||||
assertFalse(compose.contains("event-bridge"));
|
assertFalse(compose.contains("event-bridge"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -74,7 +74,7 @@ class Phase4BrowserApiBoundaryTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void lastlegReachesPrintThroughTheUnifiedTestNetwork() throws Exception {
|
void lastlegReachesPrintThroughTheUnifiedEnvironmentNetwork() throws Exception {
|
||||||
Path composePath = Path.of("deploy/docker-compose.yml");
|
Path composePath = Path.of("deploy/docker-compose.yml");
|
||||||
if (!Files.exists(composePath)) composePath = Path.of("..").resolve(composePath);
|
if (!Files.exists(composePath)) composePath = Path.of("..").resolve(composePath);
|
||||||
String compose = Files.readString(composePath);
|
String compose = Files.readString(composePath);
|
||||||
@@ -83,7 +83,7 @@ class Phase4BrowserApiBoundaryTest {
|
|||||||
assertTrue(lastleg.contains("<<: *common-environment"));
|
assertTrue(lastleg.contains("<<: *common-environment"));
|
||||||
assertTrue(lastleg.contains("PRINT_SERVICE_URL: ${PRINT_SERVICE_URL:-http://print:9207}"));
|
assertTrue(lastleg.contains("PRINT_SERVICE_URL: ${PRINT_SERVICE_URL:-http://print:9207}"));
|
||||||
assertTrue(compose.contains("networks: [firstleg-network, infra-network]"));
|
assertTrue(compose.contains("networks: [firstleg-network, infra-network]"));
|
||||||
assertTrue(compose.contains("name: firstleg-test-network"));
|
assertTrue(compose.contains("name: firstleg-${DEPLOY_ENV:-test}-network"));
|
||||||
assertFalse(lastleg.contains("ports:"));
|
assertFalse(lastleg.contains("ports:"));
|
||||||
assertFalse(compose.contains("gateway-overseas"));
|
assertFalse(compose.contains("gateway-overseas"));
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -49,12 +49,12 @@ class DomesticPartnerWarehouseClientContractTest {
|
|||||||
.doesNotContain("ports:");
|
.doesNotContain("ports:");
|
||||||
assertThat(compose).contains("INTERNAL_SERVICE_TOKEN: ${INTERNAL_SERVICE_TOKEN}")
|
assertThat(compose).contains("INTERNAL_SERVICE_TOKEN: ${INTERNAL_SERVICE_TOKEN}")
|
||||||
.contains("NACOS_USERNAME: ${NACOS_USERNAME}")
|
.contains("NACOS_USERNAME: ${NACOS_USERNAME}")
|
||||||
.contains("NACOS_NAMESPACE: ${NACOS_NAMESPACE:?actual TEST namespace ID required}")
|
.contains("NACOS_NAMESPACE: ${NACOS_NAMESPACE:?actual environment namespace ID required}")
|
||||||
.contains("JWT_JWKS_URI: http://auth:9100/api/auth/.well-known/jwks.json")
|
.contains("JWT_JWKS_URI: http://auth:9100/api/auth/.well-known/jwks.json")
|
||||||
.doesNotContain("OVERSEAS_NACOS_NAMESPACE", "OVERSEAS_NACOS_USERNAME", "FIRSTLEG_EVENT_BRIDGE_URL");
|
.doesNotContain("OVERSEAS_NACOS_NAMESPACE", "OVERSEAS_NACOS_USERNAME", "FIRSTLEG_EVENT_BRIDGE_URL");
|
||||||
assertThat(common).contains("session-mode: redis")
|
assertThat(common).contains("session-mode: redis")
|
||||||
.contains("jwk-set-uri: ${JWT_JWKS_URI:http://auth:9100/api/auth/.well-known/jwks.json}");
|
.contains("jwk-set-uri: ${JWT_JWKS_URI:http://auth:9100/api/auth/.well-known/jwks.json}");
|
||||||
assertThat(deploy).contains("Only test is supported")
|
assertThat(deploy).contains("Only test and production are supported")
|
||||||
.contains("NACOS_SERVER_ADDR NACOS_NAMESPACE NACOS_USERNAME NACOS_PASSWORD")
|
.contains("NACOS_SERVER_ADDR NACOS_NAMESPACE NACOS_USERNAME NACOS_PASSWORD")
|
||||||
.contains("REDIS_TOKEN_KEY_PREFIX INTERNAL_SERVICE_TOKEN")
|
.contains("REDIS_TOKEN_KEY_PREFIX INTERNAL_SERVICE_TOKEN")
|
||||||
.contains("lastleg-service) db_prefix=LASTLEG");
|
.contains("lastleg-service) db_prefix=LASTLEG");
|
||||||
|
|||||||
Reference in New Issue
Block a user