safety-eval-service-frontend/docs/test-reports/测试用例/test-enterprise-info-api.mjs

222 lines
7.3 KiB
JavaScript

/**
* 企业信息管理 - 后端接口联调冒烟测试
* 运行: API_BASE=http://127.0.0.1:8095/safety-eval node scripts/test-enterprise-info-api.mjs
*/
const API_BASE = process.env.API_BASE || "http://127.0.0.1:8095/safety-eval";
const results = [];
let passed = 0;
let failed = 0;
function assert(name, condition, detail = "") {
if (condition) {
passed += 1;
results.push({ name, status: "PASS", detail });
}
else {
failed += 1;
results.push({ name, status: "FAIL", detail });
}
}
async function request(method, path, body) {
const url = `${API_BASE}${path}`;
const options = {
method,
headers: { "Content-Type": "application/json" },
};
if (body !== undefined) {
options.body = JSON.stringify(body);
}
const res = await fetch(url, options);
const text = await res.text();
try {
return JSON.parse(text);
}
catch {
return { success: false, raw: text, status: res.status };
}
}
async function runTests() {
console.log(`\nAPI Base: ${API_BASE}\n`);
// ── 机构信息 ──
let orgPage = await request("GET", "/org-info/page?current=1&size=1");
assert("机构信息-分页", orgPage.success === true, `code=${orgPage.code}`);
let orgId = orgPage.data?.[0]?.id;
if (!orgId) {
const created = await request("POST", "/org-info/save", {
unitName: "联调测试机构",
creditCode: "91110000MA0TEST001",
principalName: "测试负责人",
principalPhone: "13800138000",
registerAddress: "测试地址",
businessAddress: "测试地址",
authStatusCode: 0,
authStatusName: "草稿",
});
assert("机构信息-新增", created.success === true, created.message);
orgId = created.data?.id;
}
if (orgId) {
const orgDetail = await request("GET", `/org-info/get?id=${orgId}`);
assert("机构信息-详情", orgDetail.success === true && orgDetail.data?.id === orgId);
const modified = await request("POST", "/org-info/modify", {
...orgDetail.data,
principalName: "测试负责人-已改",
authStatusCode: 1,
authStatusName: "已提交",
});
assert("机构信息-修改", modified.success === true, modified.message);
}
// ── 部门 ──
const deptPage = await request("GET", "/org-department/page?current=1&size=10");
assert("部门-分页", deptPage.success === true, `total=${deptPage.total}`);
const deptCreated = await request("POST", "/org-department/save", {
deptName: "联调测试部门",
managerName: "测试负责人",
deptLevelName: "一级",
});
assert("部门-新增", deptCreated.success === true, deptCreated.message);
const deptId = deptCreated.data?.id;
if (deptId) {
const deptModified = await request("POST", "/org-department/modify", {
id: deptId,
deptName: "联调测试部门-已改",
managerName: "测试负责人",
deptLevelName: "一级",
});
assert("部门-修改", deptModified.success === true);
}
// ── 岗位 ──
const posCreated = await request("POST", "/org-position/save", {
positionName: "联调测试岗位",
dutyDesc: "测试职责",
deptId: deptId || "102",
});
assert("岗位-新增", posCreated.success === true, posCreated.message);
const posId = posCreated.data?.id;
const posPage = await request("GET", `/org-position/page?current=1&size=10&deptId=${deptId || ""}`);
assert("岗位-分页", posPage.success === true, `count=${posPage.data?.length}`);
// ── 人员 ──
const staffCreated = await request("POST", "/org-personnel/save", {
userName: "联调测试人员",
account: "13900001234",
genderCode: 1,
genderName: "男",
employmentStatusCode: 1,
employmentStatusName: "在职",
});
assert("人员-新增", staffCreated.success === true, staffCreated.message);
const staffId = staffCreated.data?.id;
if (staffId) {
const staffPage = await request("GET", `/org-personnel/page?current=1&size=10&userName=${encodeURIComponent("联调")}`);
assert("人员-分页", staffPage.success === true);
const staffDetail = await request("GET", `/org-personnel/get?id=${staffId}`);
assert("人员-详情", staffDetail.success === true && staffDetail.data?.userName?.includes("联调"));
}
// ── 装备 ──
const equipCreated = await request("POST", "/org-equipment/save", {
deviceName: "联调测试设备",
deviceModel: "T-001",
manufacturer: "测试厂家",
enableFlag: 1,
});
assert("装备-新增", equipCreated.success === true, equipCreated.message);
const equipId = equipCreated.data?.id;
const equipPage = await request("GET", "/org-equipment/page?current=1&size=10");
assert("装备-分页", equipPage.success === true);
if (equipId) {
const equipDetail = await request("GET", `/org-equipment/get?id=${equipId}`);
const toggleFlag = equipDetail.data?.enableFlag === 1 ? 0 : 1;
const toggled = await request("POST", "/org-equipment/modify", {
...equipDetail.data,
enableFlag: toggleFlag,
});
assert("装备-启停(modify)", toggled.success === true);
}
// ── 资质证书 ──
const qualCreated = await request("POST", "/org-qualification/save", {
licenseTypeName: "测试证照",
certName: "联调测试证书",
certNo: `TEST-${Date.now()}`,
issueOrg: "测试机关",
issueDate: "2026-01-01",
validStartDate: "2026-01-01",
validEndDate: "2027-01-01",
enableFlag: 1,
});
assert("资质-新增", qualCreated.success === true, qualCreated.message);
const qualId = qualCreated.data?.id;
const qualPage = await request("GET", "/org-qualification/page?current=1&size=10");
assert("资质-分页", qualPage.success === true);
// ── 离职申请 ──
const resignCreated = await request("POST", "/org-resign-apply/save", {
applicantName: "联调测试人员",
applyTime: "2026-06-20T10:00:00",
expectedResignDate: "2026-07-31",
resignReason: "联调测试",
auditStatusCode: 0,
auditStatusName: "未审核",
});
assert("离职申请-新增", resignCreated.success === true, resignCreated.message);
const resignId = resignCreated.data?.id;
if (resignId) {
const audited = await request("POST", "/org-resign-apply/modify", {
id: resignId,
auditStatusCode: 1,
auditStatusName: "已审核",
});
assert("离职申请-审核", audited.success === true);
}
// ── 清理 ──
if (qualId) {
await request("POST", `/org-qualification/delete?id=${qualId}`);
}
if (equipId) {
await request("POST", `/org-equipment/delete?id=${equipId}`);
}
if (staffId) {
await request("POST", `/org-personnel/delete?id=${staffId}`);
}
if (posId) {
await request("POST", `/org-position/delete?id=${posId}`);
}
if (deptId) {
await request("POST", `/org-department/delete?id=${deptId}`);
}
assert("清理-完成", true);
console.log("\n========== 企业信息管理 接口联调测试 ==========\n");
results.forEach((r) => {
const icon = r.status === "PASS" ? "✓" : "✗";
console.log(`${icon} [${r.status}] ${r.name}${r.detail ? `${r.detail}` : ""}`);
});
console.log(`\n合计: ${passed + failed} 通过: ${passed} 失败: ${failed}\n`);
process.exit(failed > 0 ? 1 : 0);
}
runTests().catch((err) => {
console.error("测试执行失败:", err.message);
process.exit(1);
});