42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
declare const process: { cwd(): string };
|
|
declare function require(name: string): {
|
|
readFileSync?: (path: string, encoding: string) => string;
|
|
join?: (...parts: string[]) => string;
|
|
};
|
|
|
|
const { readFileSync } = require("node:fs");
|
|
const { join } = require("node:path");
|
|
|
|
if (!readFileSync || !join) {
|
|
throw new Error("测试运行环境缺少文件读取能力");
|
|
}
|
|
|
|
const view = readFileSync(join(process.cwd(), "src/views/OrganizationView.vue"), "utf-8");
|
|
const css = readFileSync(join(process.cwd(), "src/assets/styles.css"), "utf-8");
|
|
|
|
assertIncludes(view, "organization-tree-layout");
|
|
assertIncludes(view, "organization-tree");
|
|
assertIncludes(view, "tree-node");
|
|
assertIncludes(view, "selectedNode");
|
|
assertIncludes(view, "部门详情");
|
|
assertIncludes(view, "岗位详情");
|
|
assertNotIncludes(view, "<h2>部门列表</h2>");
|
|
assertNotIncludes(view, "<h2>岗位列表</h2>");
|
|
|
|
assertIncludes(css, ".organization-tree-layout");
|
|
assertIncludes(css, ".organization-tree-panel");
|
|
assertIncludes(css, ".organization-detail-panel");
|
|
assertIncludes(css, ".tree-node");
|
|
|
|
function assertIncludes(content: string, expected: string): void {
|
|
if (!content.includes(expected)) {
|
|
throw new Error(`期望包含 ${expected}`);
|
|
}
|
|
}
|
|
|
|
function assertNotIncludes(content: string, unexpected: string): void {
|
|
if (content.includes(unexpected)) {
|
|
throw new Error(`不应包含 ${unexpected}`);
|
|
}
|
|
}
|