/** * 企业信息管理 - 后端接口联调冒烟测试 * 运行: 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); });