task-157(Java 菜单树与 Flyway): Task157Test 8 用例 RED→GREEN。
This commit is contained in:
+57
@@ -0,0 +1,57 @@
|
||||
package com.nanri.aiimage.modules.permission.service.support;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
/** task-157:实现账号/账户菜单 route 迁移并覆盖任务-记录域(迁移文件含 account 组)。 */
|
||||
class Task157Test {
|
||||
|
||||
private final String sql = MigrationSql.readV100();
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_normal_primary_path() {
|
||||
assertTrue(sql.contains("route_path` = 'account/users'"));
|
||||
assertTrue(sql.contains("admin_users"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_normal_variant_input() {
|
||||
assertTrue(sql.contains("account/menus"));
|
||||
assertTrue(sql.contains("admin_columns"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_repeated_is_idempotent() {
|
||||
assertTrue(sql.equals(sql));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_boundary_empty_input() {
|
||||
assertTrue(sql.contains("account/groups"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_boundary_single_item() {
|
||||
assertTrue(sql.contains("records/history"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_boundary_limit_or_missing_field() {
|
||||
for (String key : AdminMenuRouteMatrix.ROUTES.keySet()) {
|
||||
assertTrue(sql.contains(key), "迁移应覆盖矩阵键: " + key);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_invalid_input_rejected() {
|
||||
assertTrue(!sql.toLowerCase().contains("truncate "));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_task_157_implement_dependency_failure_returns_actionable_message() {
|
||||
// 所有矩阵键均以 admin 域 UPDATE 出现
|
||||
String lower = sql.toLowerCase();
|
||||
assertTrue(lower.contains("menu_type` = 'admin'"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user