fix: include phase 3 customs baseline in unified sql

This commit is contained in:
2026-09-01 14:54:47 +08:00
parent 41837180f8
commit 579c61879d
2 changed files with 203 additions and 88 deletions
@@ -78,7 +78,7 @@ class Phase3FinalUnifiedSqlContractTest {
for (int id = 5102160; id <= 5102164; id++) assertThat(sql).contains(Integer.toString(id));
for (int id : java.util.List.of(5102170,5102172)) assertThat(sql).contains(Integer.toString(id));
assertThat(sql).contains("DELETE FROM iam_permission WHERE id IN (5102171,5102173,5102174,5102175)")
assertThat(sql).contains("DELETE FROM iam_permission WHERE id IN(5102171,5102173,5102174,5102175)")
.doesNotContain("(5102171,0,'PLATFORM','BUTTON'","(5102173,0,'PLATFORM','BUTTON'",
"(5102174,0,'PLATFORM','BUTTON'","(5102175,0,'PLATFORM','BUTTON'");
for (int id = 5102180; id <= 5102183; id++) assertThat(sql).contains(Integer.toString(id));
@@ -111,6 +111,35 @@ class Phase3FinalUnifiedSqlContractTest {
"iam/src/main/resources/db/phase3-warehouse-roles.sql");
}
@Test
void customsBaselineIsUniqueSynchronisedAndRunsBeforeFinalSchemaAssertion() throws Exception {
String unified = normalise(Files.readString(resolveUnified()));
String marker = "-- 来源:firstleg/src/main/resources/db/phase3-container-customs-schema.sql";
String finalAssertion = "CREATE PROCEDURE assert_phase3_final_schema()";
List<String> tables = List.of(
"fl_customs_container",
"fl_customs_customer_document",
"fl_customs_customer_document_inbound",
"fl_customs_customer_document_version",
"fl_customs_frozen_document_inbound",
"fl_customs_completion_document",
"fl_customs_completion_document_version",
"fl_customs_container_history",
"fl_customs_command"
);
assertBlock(unified, marker, "/* Phase 3: link inbound preload plans",
"firstleg/src/main/resources/db/phase3-container-customs-schema.sql");
assertThat(count(unified, marker)).isEqualTo(1);
assertThat(unified.indexOf(marker)).isLessThan(unified.indexOf(finalAssertion));
for (String table : tables) {
String create = "CREATE TABLE IF NOT EXISTS " + table + " (";
assertThat(count(unified, create)).as(table).isEqualTo(1);
assertThat(unified.indexOf(create)).as(table + " before final assertion")
.isLessThan(unified.indexOf(finalAssertion));
}
}
@Test
void financeFeeSourceMigrationsAreContiguousAndSynchronised() throws Exception {
String unified = normalise(Files.readString(resolveUnified()));