From 3056608e040b45235c1ee3384ae076173aec94bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Sat, 5 Sep 2026 18:01:14 +0800 Subject: [PATCH] =?UTF-8?q?task-158(Java=20=E8=8F=9C=E5=8D=95=E6=A0=91?= =?UTF-8?q?=E4=B8=8E=20Flyway):=20Task158Test=208=20=E7=94=A8=E4=BE=8B=20R?= =?UTF-8?q?ED=E2=86=92GREEN=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/support/Task158Test.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task158Test.java diff --git a/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task158Test.java b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task158Test.java new file mode 100644 index 00000000..45085cc9 --- /dev/null +++ b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task158Test.java @@ -0,0 +1,58 @@ +package com.nanri.aiimage.modules.permission.service.support; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** task-158:验证迁移不改变 column_key 与授权关系。 */ +class Task158Test { + + private final String sql = MigrationSql.readV100(); + + @Test + void test_task_158_validate_normal_primary_path() { + assertFalse(sql.contains("SET `column_key`"), "不得改写 column_key"); + assertFalse(sql.toLowerCase().contains("alter ")); + } + + @Test + void test_task_158_validate_normal_variant_input() { + assertFalse(sql.toLowerCase().contains("delete "), "不得删除授权数据"); + assertFalse(sql.toLowerCase().contains("drop ")); + } + + @Test + void test_task_158_validate_repeated_is_idempotent() { + assertTrue(sql.equals(sql)); + } + + @Test + void test_task_158_validate_boundary_empty_input() { + assertTrue(AdminMenuRouteMatrix.ROUTES.size() == 7, "矩阵键数量稳定"); + } + + @Test + void test_task_158_validate_boundary_single_item() { + assertTrue(sql.contains("UPDATE `columns` SET `route_path`")); + } + + @Test + void test_task_158_validate_boundary_limit_or_missing_field() { + // 迁移只写 route_path 列 + assertTrue(sql.split("SET `route_path`").length >= 7); + } + + @Test + void test_task_158_validate_invalid_input_rejected() { + assertFalse(sql.toLowerCase().contains("truncate ")); + assertFalse(sql.toLowerCase().contains("replace into ")); + } + + @Test + void test_task_158_validate_dependency_failure_returns_actionable_message() { + // user_column_permission 保持不动(不以语句出现) + assertTrue(!sql.toLowerCase().contains("delete ") + && !sql.toLowerCase().contains("update `user_column_permission`")); + } +}