前端权限管理:添加单元测试

新增测试文件:
- ApiPermissions.test.ts: 权限管理主页面测试
- ApiEndpointPermissions.test.ts: 接口级权限矩阵组件测试
- PermissionMonitoring.test.ts: 权限监控仪表板组件测试

测试覆盖:
- 组件渲染验证
- 事件发出验证
- 搜索和筛选功能测试
- 数据显示验证

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Cheng Zhou
2026-05-14 09:23:17 +08:00
parent c73c00d932
commit 35acf96d6b
4 changed files with 345 additions and 5 deletions
@@ -0,0 +1,55 @@
import { describe, it, expect, beforeEach, vi } from "vitest";
import { mount } from "@vue/test-utils";
import ApiPermissions from "@/views/admin/ApiPermissions.vue";
import { createPinia, setActivePinia } from "pinia";
describe("ApiPermissions.vue", () => {
beforeEach(() => {
setActivePinia(createPinia());
});
it("renders permission management page", () => {
const wrapper = mount(ApiPermissions, {
global: {
stubs: {
ProjectPermissionsModule: true,
ApiEndpointPermissions: true,
PermissionMonitoring: true,
},
},
});
expect(wrapper.find(".permission-page").exists()).toBe(true);
expect(wrapper.find(".permission-title h2").text()).toBe("权限管理");
});
it("renders three tabs", () => {
const wrapper = mount(ApiPermissions, {
global: {
stubs: {
ProjectPermissionsModule: true,
ApiEndpointPermissions: true,
PermissionMonitoring: true,
},
},
});
const tabs = wrapper.findAll(".el-tabs__nav-item");
expect(tabs.length).toBeGreaterThanOrEqual(3);
});
it("has save button disabled when not dirty", () => {
const wrapper = mount(ApiPermissions, {
global: {
stubs: {
ProjectPermissionsModule: true,
ApiEndpointPermissions: true,
PermissionMonitoring: true,
},
},
});
const saveButton = wrapper.findAll("button").find((btn) => btn.text().includes("保存"));
expect(saveButton?.attributes("disabled")).toBeDefined();
});
});