analysis_excel.test.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const { app, assert } = require('egg-mock/bootstrap');
  10. const AnalysisExcel = require('../../../app/lib/analysis_excel');
  11. describe('test/app/lib/analysis_excel.test.js', () => {
  12. it('analysis Test Data', function* () {
  13. const analysisExcel = new AnalysisExcel();
  14. const testData = {
  15. rows: [
  16. ['项目节编号', '清单子目号', '部位明细', '名称', '单位', '清单数量', '设计数量1', '设计数量2', '单价', '合价', '图号', '备注'],
  17. ['1', null, null, '第一部分 建筑安装工程费', '公路公里'],
  18. ['1-1', null, null, '临时工程', '公路公里'],
  19. ['1-1-6', null, null, '临时道路修建、养护与拆除(包括原道路的养护费)'],
  20. [ null, '103-1', null, '临时道路修建、养护与拆除(包括原道路的养护费)', '总额', 1, null, null, 50000 ],
  21. [ '1-1-7', null, null, '临时占地' ],
  22. [ null, '103-2', null, '临时占地', '总额', 1, null, null, 57350 ],
  23. [ '1-1-8', null, null, '临时供电设施' ],
  24. [ null, '103-3-a', null, '设施架设、拆除', '总额', 1, null, null, 638406 ],
  25. [ null, '103-3-b', null, '设施维修', '总额', 1, null, null, 50000 ],
  26. [ '1-1-9', null, null, '电讯设施的提供、维修与拆除' ],
  27. [ null, '103-4', null, '电讯设施的提供、维修与拆除', '总额', 1, null, null, 50000 ],
  28. [ '1-1-10', null, null, '承包人驻地建设' ],
  29. [ null, '104-1', null, '承包人驻地建设', '总额', 1, null, null, 200000 ],
  30. [ '1-2', null, null, '路基工程', 'km' ],
  31. [ '1-2-2', null, null, '挖方', 'm3' ],
  32. [ '1-2-2-1', null, null, '挖土方', 'm3' ],
  33. [ '1-2-2-1-1', null, null, '挖路基土方', 'm3' ],
  34. [ null, '203-1-a', null, ' ', 'm3', 92954.75, null, null, 7.53 ],
  35. [ null, null, 1, 'K0+000-K1+000', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  36. [ null, null, 2, 'K1+000-K1+800', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  37. [ null, null, 3, 'K2+800-K3+004', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  38. [ null, null, 4, 'K3+004-K4+040', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  39. [ null, null, 5, 'K4+040-K5+000', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  40. [ null, null, 6, 'K5+000-K6+000', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  41. [ null, null, 7, 'K6+000-K7+000', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  42. [ null, null, 8, 'K7+000-K7+700', null, 11619.34375, null, null, null, null, '第二册S-2-1' ],
  43. [ '1-2-2-2', null, null, '挖石方', 'm3' ],
  44. [ '1-2-2-2-1', null, null, '挖软石', 'm3' ],
  45. [ null, '203-1-b', null, '挖石方', 'm3', 105.36, null, null, 16.11 ],
  46. ],
  47. range: 'A1:L29',
  48. };
  49. const ctx = app.mockContext();
  50. const templateData = yield ctx.service.tenderNodeTemplate.getData(true);
  51. const result = analysisExcel.analysisData(testData, templateData);
  52. assert(result.items.length === 21);
  53. assert(result.roots.length === 1);
  54. assert(result.pos.length === 8);
  55. });
  56. });