|
@@ -0,0 +1,113 @@
|
|
|
+'use strict';
|
|
|
+
|
|
|
+/**
|
|
|
+ * 合同支付 模型 单元测试
|
|
|
+ *
|
|
|
+ * @author Mai
|
|
|
+ * @date
|
|
|
+ * @version
|
|
|
+ */
|
|
|
+
|
|
|
+const { app, assert } = require('egg-mock/bootstrap');
|
|
|
+const addData = {
|
|
|
+ name: 'test_pay',
|
|
|
+ category: null,
|
|
|
+};
|
|
|
+const mockData = {};
|
|
|
+let testPayId;
|
|
|
+const _ = require('lodash');
|
|
|
+
|
|
|
+describe('test/app/service/pay.test.js', () => {
|
|
|
+ // 准备测试数据,新增测试标段
|
|
|
+ before(function* () {
|
|
|
+ const ctx = app.mockContext();
|
|
|
+ // 模拟登录session
|
|
|
+ const postData = {
|
|
|
+ account: '734406061@qq.com',
|
|
|
+ project: 'T201711273363',
|
|
|
+ project_password: 'mai654321',
|
|
|
+ };
|
|
|
+ ctx.session = {};
|
|
|
+ const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
|
|
|
+ assert(loginResult);
|
|
|
+ mockData.session = ctx.session;
|
|
|
+ // 移除旧测试数据
|
|
|
+ const testTender = yield ctx.service.tender.getDataByCondition({
|
|
|
+ name: addData.name,
|
|
|
+ project_id: ctx.session.sessionProject.id,
|
|
|
+ });
|
|
|
+ if (testTender) {
|
|
|
+ const result = yield ctx.service.tender.deleteTenderNoBackup(testTender.id);
|
|
|
+ assert(result);
|
|
|
+ }
|
|
|
+ // 新增测试用标段
|
|
|
+ const result = yield ctx.service.tender.add(addData);
|
|
|
+ assert(result);
|
|
|
+ const tender = yield ctx.service.tender.getDataByCondition({
|
|
|
+ name: addData.name,
|
|
|
+ project_id: ctx.session.sessionProject.id,
|
|
|
+ });
|
|
|
+ mockData.tender = {id: tender.id, data: tender};
|
|
|
+ ctx.tender = mockData.tender;
|
|
|
+ // 新增测试期
|
|
|
+ const stage = yield ctx.service.stage.addStage(mockData.tender.id, '2019-06', '2019-06-10 ~ 2019-06-30');
|
|
|
+ assert(stage);
|
|
|
+ mockData.stage = stage;
|
|
|
+ mockData.stage.curTimes = 1;
|
|
|
+ mockData.stage.curOrder = 0;
|
|
|
+ });
|
|
|
+ it('test add', function* () {
|
|
|
+ const ctx = app.mockContext(mockData);
|
|
|
+
|
|
|
+ const orgStagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+
|
|
|
+ const result = yield ctx.service.pay.add();
|
|
|
+ assert(result);
|
|
|
+ testPayId = result.pid;
|
|
|
+
|
|
|
+ const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+ assert(stagePays.length === orgStagePays.length + 1);
|
|
|
+ });
|
|
|
+ it('test del', function* () {
|
|
|
+ const ctx = app.mockContext(mockData);
|
|
|
+
|
|
|
+ const orgStagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+
|
|
|
+ const result = yield ctx.service.pay.del(testPayId);
|
|
|
+ assert(result);
|
|
|
+
|
|
|
+ const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+ assert(stagePays.length === orgStagePays.length - 1);
|
|
|
+ });
|
|
|
+ it('test changeOrder', function* () {
|
|
|
+ const ctx = app.mockContext(mockData);
|
|
|
+
|
|
|
+ const node1 = yield ctx.service.pay.add();
|
|
|
+ assert(node1);
|
|
|
+ const node2 = yield ctx.service.pay.add();
|
|
|
+ assert(node2);
|
|
|
+
|
|
|
+ const result = yield ctx.service.pay.changeOrder(node1.pid, node2.pid);
|
|
|
+ assert(result);
|
|
|
+
|
|
|
+ const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+ const newNode1 = _.find(stagePays, {order: node1.order});
|
|
|
+ assert(newNode1.pid === node2.pid);
|
|
|
+ const newNode2 = _.find(stagePays, {order: node2.order});
|
|
|
+ assert(newNode2.pid === node1.pid);
|
|
|
+
|
|
|
+ testPayId = node1.pid;
|
|
|
+ });
|
|
|
+ it('test save', function* () {
|
|
|
+ const ctx = app.mockContext(mockData);
|
|
|
+ const data = {id: testPayId, name: '12345', invalidField: 'invalid'};
|
|
|
+ console.log(data);
|
|
|
+ const result = yield ctx.service.pay.save(data);
|
|
|
+ assert(result);
|
|
|
+ assert(result.name);
|
|
|
+ assert(!result.invalidField);
|
|
|
+ const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage.id);
|
|
|
+ const node = _.find(stagePays, {pid: testPayId});
|
|
|
+ assert(node.name === data.name);
|
|
|
+ });
|
|
|
+});
|