fix(sql): make domestic migration replay-safe
This commit is contained in:
+3
@@ -115,6 +115,9 @@ class CustomerDimensionConfigSqlContractTest {
|
||||
.contains("r.role_code = 'ORDER_OPERATOR'")
|
||||
.contains("index_name = 'uk_customer_dimension_config_tenant_box'")
|
||||
.contains("客户四箱规尺寸配置字段不完整")
|
||||
.contains("客户默认计费规则初始化幂等字段未创建")
|
||||
.contains("index_name = 'idx_charge_rule_initialization'")
|
||||
.contains("客户默认计费规则初始化索引未完整创建")
|
||||
.contains("客户尺寸计算配置权限码、固定ID或父节点不正确");
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -188,7 +188,8 @@ class Phase3FinalUnifiedSqlContractTest {
|
||||
assertThat(sql)
|
||||
.contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_id'")
|
||||
.contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_name'")
|
||||
.contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_category'");
|
||||
.contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_category'")
|
||||
.contains("CALL queue_column_comment('baiyue_firstleg', 'fl_carrier_schedule_node_fact', 'container_booking_id'");
|
||||
assertThat(sql.indexOf("CALL apply_queued_comments();",
|
||||
sql.indexOf("-- END GENERATED NINE-SCHEMA COMMENT UPGRADE CALLS")))
|
||||
.isGreaterThan(sql.indexOf("-- END GENERATED NINE-SCHEMA COMMENT UPGRADE CALLS"));
|
||||
|
||||
+9
-5
@@ -18,14 +18,14 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
class SmartLoadingSqlContractTest {
|
||||
private static final Pattern PERMISSION_PATTERN = Pattern.compile("'((?:platform:firstleg:)[^']+)'");
|
||||
private static final Set<String> PHASE3_PERMISSIONS = Set.of(
|
||||
"platform:firstleg:container:list", "platform:firstleg:container:view",
|
||||
"platform:firstleg:container:list",
|
||||
"platform:firstleg:container:create", "platform:firstleg:container:edit",
|
||||
"platform:firstleg:smart-loading:list",
|
||||
"platform:firstleg:smart-loading:assign", "platform:firstleg:smart-loading:delete",
|
||||
"platform:firstleg:preload:list",
|
||||
"platform:firstleg:preload:view", "platform:firstleg:preload:edit",
|
||||
"platform:firstleg:preload:edit",
|
||||
"platform:firstleg:preload:complete", "platform:firstleg:preload:confirm",
|
||||
"platform:firstleg:loading-list:list", "platform:firstleg:loading-list:view");
|
||||
"platform:firstleg:loading-list:list");
|
||||
|
||||
@Test
|
||||
@DisplayName("平台聚合与客户明细边界及原型快照字段完整")
|
||||
@@ -193,7 +193,7 @@ class SmartLoadingSqlContractTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("模块脚本和统一脚本均校验14项权限与两个角色28项授权")
|
||||
@DisplayName("模块脚本和统一脚本均校验11项权限与两个角色22项授权")
|
||||
void shouldAssertCompletePermissionGrants() throws Exception {
|
||||
assertPermissionContract(migration());
|
||||
assertPermissionContract(unifiedMigration());
|
||||
@@ -238,6 +238,8 @@ class SmartLoadingSqlContractTest {
|
||||
.doesNotContain("WITHDRAWN");
|
||||
assertLoadingCompletionTrigger(migration());
|
||||
assertLoadingCompletionTrigger(unifiedMigration());
|
||||
assertThat(unifiedMigration().indexOf("CALL phase3_add_container_channel_group()"))
|
||||
.isLessThan(unifiedMigration().indexOf("CREATE TRIGGER trg_container_booking_before_update"));
|
||||
}
|
||||
|
||||
private static void assertLoadingCompletionTrigger(String sql) {
|
||||
@@ -266,6 +268,8 @@ class SmartLoadingSqlContractTest {
|
||||
assertThat(migration())
|
||||
.contains("CREATE TABLE IF NOT EXISTS fl_loading_pick_task")
|
||||
.contains("CALL migrate_legacy_loading_pick_task()")
|
||||
.contains("source_total_columns = 13 AND source_current_columns = 13")
|
||||
.contains("index_name = 'uk_loading_pick_task_booking'")
|
||||
.contains("RENAME TABLE fl_loading_pick_task TO fl_inbound_loading_pick_task")
|
||||
.contains("CREATE TABLE IF NOT EXISTS fl_loading_pick_item")
|
||||
.contains("CREATE TABLE IF NOT EXISTS fl_loading_pick_history")
|
||||
@@ -371,7 +375,7 @@ class SmartLoadingSqlContractTest {
|
||||
int assertionStart = sql.lastIndexOf("IF (SELECT COUNT(DISTINCT CONCAT", message);
|
||||
String assertion = sql.substring(assertionStart, message);
|
||||
assertThat(permissions(assertion)).isEqualTo(PHASE3_PERMISSIONS);
|
||||
assertThat(assertion).contains("<> 28 THEN");
|
||||
assertThat(assertion).contains("<> 22 THEN");
|
||||
}
|
||||
|
||||
private static Set<String> permissions(String sql) {
|
||||
|
||||
Reference in New Issue
Block a user