'use strict'; /** * * * @author Mai * @date * @version */ const { app, assert } = require('egg-mock/bootstrap'); const path = require('path'); let savePath; const mockData = {}; const dataType = { int: 'int', str: 'string', double: 'double', currency: 'currency', }; const checkData = function (target, source) { for (const prop in source) { if (source[prop] !== target[prop]) return false; } return true; }; describe('test/app/service/report_memory.test.js', () => { // 准备测试数据 before(function* () { const ctx = app.mockContext(); savePath = path.join(ctx.app.baseDir,'report_temp'); const postData = { account: 'fuqingqing', project: 'P0505', project_password: '123456', }; ctx.session = {}; const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2); assert(loginResult); mockData.session = ctx.session; }); // 材料调差 - 期列表 it('test getMaterial', function* () { const ctx = app.mockContext(mockData); const result = yield ctx.service.reportMemory.getMaterial(2418); yield ctx.helper.saveBufferFile(JSON.stringify(result, "", "\t"), path.join(savePath, 'mem-material.json')); }); // 材料调差 - 期 - 调差工料 it('test getMaterialGl Order1', function* () { const ctx = app.mockContext(mockData); const result = yield ctx.service.reportMemory.getMaterialGl(2418, 2); //yield ctx.helper.saveBufferFile(JSON.stringify(result, "", "\t"), path.join(savePath, 'mem-material-gl.json')); assert(result.length === 4); }); it('test getMaterialGl Order2', function* () { const ctx = app.mockContext(mockData); const checkResult = [ { "id": 131, "tid": 2418, "mid": 131, "code": "101", "name": "光圆钢筋", "unit": "kg", "spec": null, "t_type": 1, "m_type": 1, "t_type_str": "消耗量", "m_type_str": "分类", "quantity": 145.635, "expr": null, "basic_price": 4350, "basic_times": null, "msg_tp": 5100, "msg_times": "2020-05-08", "msg_spread": 750, "m_up_risk": 5, "m_down_risk": 5, "m_spread": 532.5, "tp": 77550.64, "end_tp": 1060588.24, "pre_tp": 983037.6, "remark": null, "in_time": "2020-05-08T08:09:33.000Z", }, { "id": 132, "tid": 2418, "mid": 131, "t_type": 1, "m_type": 1, "t_type_str": "消耗量", "m_type_str": "分类", "code": "102", "name": "带肋钢筋", "unit": "kg", "spec": null, "quantity": 145.55, "expr": null, "basic_price": 4620, "basic_times": null, "msg_tp": 5500, "msg_times": "2020-05-09", "msg_spread": 880, "m_up_risk": 5, "m_down_risk": 5, "m_spread": 649, "tp": 94461.95, "end_tp": 1783456.95, "pre_tp": 1688995, "remark": null, "in_time": "2020-05-08T08:09:33.000Z", }, { "id": 133, "tid": 2418, "mid": 131, "t_type": 1, "code": "103", "name": "水泥", "unit": "m3", "spec": null, "m_type": 1, "quantity": 498.732, "expr": null, "basic_price": 236.98, "basic_times": null, "msg_tp": 200.69, "msg_times": "2020-05-09", "msg_spread": -36.29, "m_up_risk": 5, "m_down_risk": 5, "m_spread": -24.441, "pre_tp": -3770872.11, "remark": null, "in_time": "2020-05-08T08:09:34.000Z", "tp": -12189.51, "t_type_str": "消耗量", "m_type_str": "分类", "end_tp": -3783061.62 }, { "id": 134, "tid": 2418, "mid": 131, "t_type": 2, "code": "985", "name": "汽油", "unit": "kg", "spec": null, "m_type": 1, "quantity": 1170.1512, "expr": "bqwc/10000*12", "basic_price": 4.9, "basic_times": null, "msg_tp": 6.2, "msg_times": "2020-05-08", "msg_spread": 1.3, "m_up_risk": 3, "m_down_risk": 3, "m_spread": 1.153, "pre_tp": null, "remark": null, "in_time": "2020-05-08T08:09:36.000Z", "tp": 1349.18, "t_type_str": "费用", "m_type_str": "分类", "end_tp": 1349.18 } ]; const result = yield ctx.service.reportMemory.getMaterialGl(2418, 2); //yield ctx.helper.saveBufferFile(JSON.stringify(result, "", "\t"), path.join(savePath, 'mem-material-gl.json')); assert(result.length === 4); assert(checkData(result[0], checkResult[0])); assert(checkData(result[1], checkResult[1])); assert(checkData(result[2], checkResult[2])); assert(checkData(result[3], checkResult[3])); }); });