90ca061db8
1、为文档增加编辑接口和前端编辑抽屉,文档列表与详情页统一按创建、更新、删除权限展示操作。 2、将文档版本上传和分发改为抽屉交互,并在详情页补充版本删除权限检查。 3、增强全局面包屑上下文和详情页标题同步,避免详情页重复或缺失导航信息。 4、按项目权限过滤快捷入口、首页费用指标和 eTMF 新建入口,并补充对应前端测试。
32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { readFileSync } from "node:fs";
|
|
import { resolve } from "node:path";
|
|
|
|
const readSource = () => readFileSync(resolve(__dirname, "./DocumentList.vue"), "utf8");
|
|
|
|
describe("DocumentList permissions", () => {
|
|
it("guards create edit and delete actions with document operation permissions", () => {
|
|
const source = readSource();
|
|
|
|
expect(source).toContain('can("documents.create")');
|
|
expect(source).toContain('can("documents.update")');
|
|
expect(source).toContain('can("documents.delete")');
|
|
expect(source).toContain('v-if="canCreate"');
|
|
expect(source).toContain('v-if="canUpdate"');
|
|
expect(source).toContain('v-if="canDelete"');
|
|
expect(source).toContain('@click.stop="openEdit(row)"');
|
|
expect(source).not.toContain(':disabled="!canCreate"');
|
|
});
|
|
|
|
it("uses a drawer for creating documents instead of a dialog", () => {
|
|
const source = readSource();
|
|
|
|
expect(source).toContain("<el-drawer");
|
|
expect(source).toContain('class="document-editor-drawer"');
|
|
expect(source).toContain('class="editor-header"');
|
|
expect(source).toContain('class="drawer-footer"');
|
|
expect(source).not.toContain("<el-dialog");
|
|
expect(source).not.toContain('append-to=".layout-main .content-wrapper"');
|
|
});
|
|
});
|