test-maintenance-workers-api.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. const axios = require('axios');
  2. const { getToken } = require('./quick-token-getter');
  3. // 配置信息
  4. const config = {
  5. baseURL: 'http://localhost/dev-api',
  6. timeout: 10000,
  7. headers: {
  8. 'Content-Type': 'application/json;charset=utf-8',
  9. 'clientid': 'e5cd7e4891bf95d1d19206ce24a7b32e',
  10. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
  11. 'referer': 'http://localhost/login?redirect=%252Findex'
  12. }
  13. };
  14. /**
  15. * 测试维修人员接口
  16. */
  17. async function testMaintenanceWorkersAPI() {
  18. console.log('🚀 开始测试维修人员接口...\n');
  19. try {
  20. // 1. 获取Token
  21. console.log('1️⃣ 正在获取Token...');
  22. const token = await getToken();
  23. console.log(`✅ Token获取成功: ${token.substring(0, 20)}...\n`);
  24. // 2. 设置认证头
  25. config.headers['Authorization'] = `Bearer ${token}`;
  26. // 3. 调用维修人员接口
  27. console.log('2️⃣ 正在调用维修人员接口...');
  28. const response = await axios.get('/pm/repairOrder/maintenance-workers', config);
  29. // 4. 检查响应格式
  30. console.log('3️⃣ 接口响应检查:');
  31. console.log(`状态码: ${response.status}`);
  32. console.log(`响应格式: ${JSON.stringify(response.data, null, 2)}\n`);
  33. // 5. 验证响应数据
  34. if (response.data.code === 200) {
  35. console.log('✅ 接口调用成功!');
  36. const workers = response.data.data;
  37. if (Array.isArray(workers)) {
  38. console.log(`📊 维修人员数量: ${workers.length}个`);
  39. if (workers.length > 0) {
  40. console.log('\n👷 维修人员列表:');
  41. workers.forEach((worker, index) => {
  42. console.log(`${index + 1}. ${worker.label} (ID: ${worker.value}) - ${worker.userName || '无用户名'} - ${worker.deptName || '无部门'}`);
  43. });
  44. } else {
  45. console.log('⚠️ 没有找到维修人员,请确认:');
  46. console.log(' - 是否已创建"维修人员"角色');
  47. console.log(' - 是否已为用户分配"维修人员"角色');
  48. console.log(' - 用户状态是否正常');
  49. }
  50. } else {
  51. console.log('❌ 响应数据格式错误,期望数组格式');
  52. }
  53. } else {
  54. console.log(`❌ 接口调用失败: ${response.data.msg}`);
  55. }
  56. } catch (error) {
  57. console.error('❌ 测试失败:', error.response?.data || error.message);
  58. // 详细错误信息
  59. if (error.response) {
  60. console.log('\n📋 错误详情:');
  61. console.log(`状态码: ${error.response.status}`);
  62. console.log(`错误信息: ${JSON.stringify(error.response.data, null, 2)}`);
  63. }
  64. }
  65. }
  66. /**
  67. * 验证维修人员权限配置
  68. */
  69. async function validateMaintenanceRoleConfig() {
  70. console.log('\n🔍 验证维修人员权限配置...');
  71. try {
  72. const token = await getToken();
  73. config.headers['Authorization'] = `Bearer ${token}`;
  74. // 检查维修人员角色
  75. console.log('1️⃣ 检查"维修人员"角色...');
  76. // 这里可以添加更多验证逻辑
  77. console.log('✅ 权限配置验证完成');
  78. } catch (error) {
  79. console.error('❌ 权限配置验证失败:', error.message);
  80. }
  81. }
  82. // 执行测试
  83. async function runTests() {
  84. console.log('='.repeat(50));
  85. console.log('📋 维修人员接口测试');
  86. console.log('='.repeat(50));
  87. await testMaintenanceWorkersAPI();
  88. await validateMaintenanceRoleConfig();
  89. console.log('\n' + '='.repeat(50));
  90. console.log('✅ 测试完成');
  91. console.log('='.repeat(50));
  92. }
  93. // 如果直接运行此文件
  94. if (require.main === module) {
  95. runTests().catch(console.error);
  96. }
  97. module.exports = {
  98. testMaintenanceWorkersAPI,
  99. validateMaintenanceRoleConfig
  100. };