23 lines
1.2 KiB
TypeScript
23 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { readFileSync } from "node:fs";
|
|
import { resolve } from "node:path";
|
|
|
|
const readSource = () => readFileSync(resolve(__dirname, "./Layout.vue"), "utf8");
|
|
|
|
describe("layout system monitoring navigation", () => {
|
|
it("shows system monitoring as an admin-only peer module outside permission management", () => {
|
|
const source = readSource();
|
|
const permissionMenuStart = source.indexOf('<el-sub-menu v-if="canAccessAdminPermissions" index="permissions">');
|
|
const permissionMenuEnd = source.indexOf("</el-sub-menu>", permissionMenuStart);
|
|
const permissionMenu = source.slice(permissionMenuStart, permissionMenuEnd);
|
|
|
|
expect(source).toContain('v-if="isAdmin" index="/admin/system-monitoring"');
|
|
expect(source).toContain("{{ TEXT.menu.systemMonitoring }}");
|
|
expect(permissionMenu).not.toContain("/admin/system-monitoring");
|
|
expect(permissionMenu).not.toContain("/admin/permission-monitoring");
|
|
expect(permissionMenu).not.toContain("/admin/permissions/monitoring");
|
|
expect(source).not.toContain('index="/admin/permissions/monitoring"');
|
|
expect(source).toContain('return "/admin/system-monitoring";');
|
|
});
|
|
});
|