This commit is contained in:
2026-08-13 15:51:27 +08:00
parent 319900e359
commit 8b393d1906
6 changed files with 56 additions and 43 deletions
@@ -18,6 +18,12 @@ class NotificationSqlContractTest {
"assert_notification_center_schema","permission_code='merchant:notification:view'",
"permission_code LIKE 'platform:notification%'");
assertThat(sql).contains("COUNT(DISTINCT index_name) FROM information_schema.statistics WHERE table_schema='baiyue_iam'");
assertThat(sql).contains(")) <> 7 THEN");
assertThat(sql)
.contains(")) <> 7 THEN")
.contains("permission_code='merchant:notification:view')) <> 13 THEN")
.contains("permission_code LIKE 'platform:notification%') <> 12 THEN")
.contains("'merchant:notification:view','merchant:notification:read','merchant:notification:read-all')) <> 3 THEN");
assertThat(sql.indexOf("(5106014,0,'MERCHANT','BUTTON'"))
.isLessThan(sql.indexOf("CALL baiyue_iam.assert_notification_center_schema();"));
}
}
@@ -48,7 +48,7 @@ class FinanceG1G2PermissionSqlContractTest {
void unifiedSqlMirrorsCatalogAndGrantsTheFinanceCatalogToPlatformAdmin() throws Exception {
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
sql.indexOf("CALL assert_unified_final_schema()"));
sql.indexOf("-- Admin 原型菜单与财务五页权限补充"));
assertThat(financeSection)
.contains("(5105024, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:review'")
@@ -56,15 +56,17 @@ class FinanceG1G2PermissionSqlContractTest {
.contains("NULL, 'POST', 150, 'ACTIVE', 1, 0")
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
.contains("permission_code IN (\n 'platform:finance',")
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 22")
.contains("平台管理员 Finance 授权不完整")
.contains("Finance G1-G4");
assertThat(financeSection)
.contains("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission")
.contains("status='INACTIVE',deleted=1");
assertThat(sql)
.contains("platform:finance:settlement-ar:list")
.contains("platform:finance:settlement-ap:list");
.contains("platform:finance:settlement-ap:list")
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 27")
.contains("rp.role_id=4000001")
.contains("LIKE 'platform:finance:%')) <> 28")
.contains("平台管理员 Finance 授权不完整");
}
private static Path resolveUnifiedSql() {
@@ -40,18 +40,20 @@ class FinanceG3G4PermissionSqlContractTest {
void unifiedSqlContainsCatalogAndGrantsItToPlatformAdmin() throws Exception {
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
sql.indexOf("CALL assert_unified_final_schema()"));
sql.indexOf("-- Admin 原型菜单与财务五页权限补充"));
for (String code : CODES) assertThat(financeSection).contains(code);
assertThat(financeSection)
.contains("migrate_finance_g1_g4_permissions")
.contains("finance G1-G4 permission id/code conflict")
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 22");
.contains("finance G1-G4 permission id/code conflict");
assertThat(financeSection)
.contains("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission")
.contains("platform:finance:reconciliation:create");
assertThat(sql)
.contains("platform:finance:settlement-ar:list")
.contains("platform:finance:settlement-ap:list");
.contains("platform:finance:settlement-ap:list")
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 27")
.contains("rp.role_id=4000001")
.contains("LIKE 'platform:finance:%')) <> 28");
}
private static Path resolveUnifiedSql() {