222 lines
7.3 KiB
JavaScript
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);
|
|
});
|