This commit is contained in:
2026-08-13 14:55:50 +08:00
parent 939e90912a
commit ef9852e757
14 changed files with 72 additions and 62 deletions
@@ -25,13 +25,13 @@ class AdminPrototypeMenuPermissionSqlContractTest {
assertThat(sql).contains("(" + (5105040 + index) + ",0,'PLATFORM','MENU',5105000,'" + FINANCE_MENUS[index] + "'");
}
assertThat(sql)
.contains("'platform:finance:account:view' code, 5105040 parent_id")
.contains("'platform:finance:fee-source:view', 5105041")
.contains("'platform:finance:fee-source:review' code, 5105041 parent_id")
.contains("'platform:finance:reconciliation:create', 5105042")
.contains("'platform:finance:settlement-ar:create', 5105043")
.contains("'platform:finance:settlement-ap:create', 5105044")
.contains("'platform:finance:payment:create', 5105044)")
.contains("'platform:finance:bill:view','platform:finance:settlement-ar:view'")
.contains("'platform:finance:bill:view','platform:finance:account:view'")
.contains("'platform:finance:fee-source:view','platform:finance:settlement-ar:view'")
.contains("'platform:finance:settlement-ap:view'")
.doesNotContain("SELECT 'platform:finance:settlement-ar:view', 5105043")
.doesNotContain("SELECT 'platform:finance:settlement-ap:view', 5105044")
@@ -11,22 +11,21 @@ import static org.assertj.core.api.Assertions.assertThat;
class FinanceG1G2PermissionSqlContractTest {
@Test
void declaresTheFourControllerPermissionsUnderFinance() throws Exception {
void declaresActionPermissionsAndRetiresSupersededReadPermissions() throws Exception {
String sql = new ClassPathResource("db/finance-g1-g2-permissions.sql")
.getContentAsString(StandardCharsets.UTF_8);
assertThat(sql)
.contains("(5105022, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:account:view'")
.contains("(5105023, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:view'")
.contains("(5105024, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:review'")
.contains("(5105025, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:settlement'")
.contains("NULL, 'GET', 130, 'ACTIVE', 1, 0")
.contains("NULL, 'GET', 140, 'ACTIVE', 1, 0")
.contains("NULL, 'POST', 150, 'ACTIVE', 1, 0")
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
.contains("ON DUPLICATE KEY UPDATE")
.contains("CALL migrate_finance_g1_g2_permissions()")
.contains("DROP PROCEDURE IF EXISTS migrate_finance_g1_g2_permissions");
.contains("DROP PROCEDURE IF EXISTS migrate_finance_g1_g2_permissions")
.contains("status='INACTIVE', deleted=1")
.doesNotContain("'platform:finance:account:view',\n '查看客户财务账户及流水'")
.doesNotContain("'platform:finance:fee-source:view',\n '查看财务费用来源'");
}
@Test
@@ -36,7 +35,6 @@ class FinanceG1G2PermissionSqlContractTest {
assertThat(sql)
.contains("SIGNAL SQLSTATE '45000'")
.contains("id = 5105022 AND permission_code <> 'platform:finance:account:view'")
.contains("permission_code = 'platform:finance:fee-source:settlement' AND id <> 5105025")
.contains("tenant_id <> 0 OR app_code <> 'PLATFORM'")
.contains("parent_id = 5105000")
@@ -53,21 +51,17 @@ class FinanceG1G2PermissionSqlContractTest {
sql.indexOf("CALL assert_unified_final_schema()"));
assertThat(financeSection)
.contains("(5105022, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:account:view'")
.contains("(5105023, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:view'")
.contains("(5105024, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:review'")
.contains("(5105025, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:fee-source:settlement'")
.contains("NULL, 'GET', 130, 'ACTIVE', 1, 0")
.contains("NULL, 'GET', 140, 'ACTIVE', 1, 0")
.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) <> 24")
.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("platform:finance:account:view");
.contains("status='INACTIVE',deleted=1");
assertThat(sql)
.contains("platform:finance:settlement-ar:list")
.contains("platform:finance:settlement-ap:list");
@@ -45,7 +45,7 @@ class FinanceG3G4PermissionSqlContractTest {
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) <> 24");
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 22");
assertThat(financeSection)
.contains("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission")
.contains("platform:finance:reconciliation:create");