From c3815275287f0e8d51a2c8899f3ac17285dc8bca 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 23:45:16 +0800 Subject: [PATCH] =?UTF-8?q?test(live):=20=E8=8F=9C=E5=8D=95=E6=A0=91=20smo?= =?UTF-8?q?ke=20=E5=85=BC=E5=AE=B9=E7=94=9F=E4=BA=A7=E6=89=81=E5=B9=B3=20g?= =?UTF-8?q?roup-*=20=E6=A0=87=E8=AE=B0=E5=BD=A2=E6=80=81=E4=B8=8E=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=B5=8C=E5=A5=97=E5=BD=A2=E6=80=81=EF=BC=9B=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=208/8=20live=20smoke=20=E9=80=9A=E8=BF=87(=E7=99=BB?= =?UTF-8?q?=E5=BD=95/=E8=8F=9C=E5=8D=95/=E5=90=84=E5=9F=9F=E5=88=97?= =?UTF-8?q?=E8=A1=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-frontend-vue/tests/live/session-live.test.ts | 7 ++++++- admin-frontend-vue/tests/live/task-270-align-live.test.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/admin-frontend-vue/tests/live/session-live.test.ts b/admin-frontend-vue/tests/live/session-live.test.ts index 6d705741..08a04845 100644 --- a/admin-frontend-vue/tests/live/session-live.test.ts +++ b/admin-frontend-vue/tests/live/session-live.test.ts @@ -41,6 +41,11 @@ test('test_live_024_menu_tree_real_request', { skip: !HAS_CREDS }, async () => { const tree = parseMenuTree(body) assert.ok(Array.isArray(tree)) assert.ok(tree.length > 0, 'super_admin 应能拿到全部 admin 菜单树') + // 兼容两种后端形态:嵌套 children 分组 或 扁平 group-* 标记项(原始字段 route_path)。 const accountGroup = tree.find((n) => n.children?.length) - assert.ok(accountGroup, '菜单树应按分组组织') + const hasMarkers = tree.some((n) => { + const route = (n as { route_path?: string; route?: string }).route_path || (n as { route?: string }).route || '' + return route.startsWith('group-') + }) + assert.ok(accountGroup || hasMarkers, '菜单树应按分组组织(嵌套或 group-* 标记)') }) diff --git a/admin-frontend-vue/tests/live/task-270-align-live.test.ts b/admin-frontend-vue/tests/live/task-270-align-live.test.ts index 5048aabd..9432cdd9 100644 --- a/admin-frontend-vue/tests/live/task-270-align-live.test.ts +++ b/admin-frontend-vue/tests/live/task-270-align-live.test.ts @@ -1,6 +1,7 @@ import test from 'node:test' import assert from 'node:assert/strict' import { parseCurrentUser, parseMenuTree } from '../../src/api/session-model.ts' +import type { AdminMenuNode } from '../../src/types/admin.ts' // module 13 task 270:本地 Java(默认 18080) 真实 smoke——登录、会话、菜单树与代表性后台列表可达。 // 门控:AIIMAGE_LIVE_USER/AIIMAGE_LIVE_PASS 缺省跳过(与既有 live 约定一致)。 @@ -44,7 +45,11 @@ test('test_live_270_admin_menu_tree', { skip: !HAS_CREDS }, async () => { assert.equal(status, 200) const tree = parseMenuTree(body) assert.ok(tree.length > 0, '超级管理员应能取到后台菜单树') - assert.ok(tree.some((n) => n.children?.length), '菜单树含分组') + // 兼容两种后端形态:嵌套分组(children) 或 扁平带 group-* 分组标记的列表(原始字段为 route_path)。 + const hasNestedGroups = tree.some((n) => n.children?.length) + const routeOf = (n: AdminMenuNode): string => n.route || (n as { route_path?: string }).route_path || '' + const hasGroupMarkers = tree.some((n) => routeOf(n).startsWith('group-')) + assert.ok(hasNestedGroups || hasGroupMarkers, '菜单树含分组(嵌套或 group-* 标记)') }) test('test_live_270_users_list_reachable', { skip: !HAS_CREDS }, async () => {