This commit is contained in:
2026-08-08 13:46:16 +08:00
parent 3203adb5a7
commit 374ceed493
9 changed files with 14332 additions and 17 deletions
@@ -16,6 +16,30 @@ class OverseasStorageFeeSqlContractTest {
assertThat(sql)
.contains("CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_rule")
.contains("CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_tier")
.containsOnlyOnce("CREATE PROCEDURE migrate_overseas_storage_fee_schema()")
.doesNotContain("ADD COLUMN IF NOT EXISTS initialization_key")
.doesNotContain("ADD COLUMN IF NOT EXISTS fee_type")
.doesNotContain("ADD COLUMN IF NOT EXISTS billing_unit")
.contains("table_name = 'wh_overseas_storage_fee_rule'")
.contains("column_name = 'initialization_key'")
.contains("column_name = 'fee_type'")
.contains("column_name = 'billing_unit'")
.contains("PREPARE overseas_fee_statement FROM @overseas_fee_ddl")
.contains("EXECUTE overseas_fee_statement")
.contains("DEALLOCATE PREPARE overseas_fee_statement")
.contains("constraint_name = 'chk_overseas_fee_tier_days'")
.contains("constraint_name = 'chk_overseas_fee_tier_price'")
.contains("index_columns = 'rule_id,fee_type,active_start_day'")
.contains("Warehouse 迁移失败:海外仓费用阶梯存在非法天数或负价格")
.contains("Warehouse 迁移失败:海外仓费用阶梯目标唯一键存在重复数据")
.contains("CALL migrate_overseas_storage_fee_schema()")
.contains("LOWER(column_type) = 'varchar(191)'")
.contains("LOWER(column_type) = 'varchar(32)'")
.contains("LOWER(column_type) = 'varchar(16)'")
.contains("LOWER(column_type) = 'smallint unsigned'")
.contains("LOWER(column_type) = 'decimal(18,6)'")
.contains("统一迁移失败:海外仓阶梯费用字段签名不正确")
.contains("统一迁移失败:海外仓阶梯费用唯一键或 CHECK 结构不正确")
.contains("uk_overseas_fee_active_customer")
.contains("idx_overseas_fee_page")
.contains("idx_overseas_fee_customer_name")
@@ -27,5 +51,12 @@ class OverseasStorageFeeSqlContractTest {
.contains("platform:overseas-storage-fee:delete")
.contains("CALL unified_assert_overseas_storage_fee()")
.contains("统一增量全部执行完成");
int addColumns = sql.indexOf("column_name = 'fee_type'");
int migrate = sql.indexOf("CALL migrate_overseas_storage_fee_schema()");
int assertSchema = sql.indexOf("CALL unified_assert_overseas_storage_fee()");
assertThat(addColumns).isGreaterThan(0);
assertThat(migrate).isGreaterThan(addColumns);
assertThat(assertSchema).isGreaterThan(migrate);
}
}