pay.test.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. 'use strict';
  2. /**
  3. * 合同支付 模型 单元测试
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const { app, assert } = require('egg-mock/bootstrap');
  10. const addData = {
  11. name: 'test_pay',
  12. category: null,
  13. };
  14. const mockData = {};
  15. let testPayId;
  16. const _ = require('lodash');
  17. describe('test/app/service/pay.test.js', () => {
  18. // 准备测试数据,新增测试标段
  19. before(function* () {
  20. const ctx = app.mockContext();
  21. // 模拟登录session
  22. const postData = {
  23. account: '734406061@qq.com',
  24. project: 'T201711273363',
  25. project_password: 'mai654321',
  26. };
  27. ctx.session = {};
  28. const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
  29. assert(loginResult);
  30. mockData.session = ctx.session;
  31. // 移除旧测试数据
  32. const testTender = yield ctx.service.tender.getDataByCondition({
  33. name: addData.name,
  34. project_id: ctx.session.sessionProject.id,
  35. });
  36. if (testTender) {
  37. const result = yield ctx.service.tender.deleteTenderNoBackup(testTender.id);
  38. assert(result);
  39. }
  40. // 新增测试用标段
  41. const result = yield ctx.service.tender.add(addData);
  42. assert(result);
  43. const tender = yield ctx.service.tender.getDataByCondition({
  44. name: addData.name,
  45. project_id: ctx.session.sessionProject.id,
  46. });
  47. mockData.tender = {id: tender.id, data: tender};
  48. ctx.tender = mockData.tender;
  49. // 新增测试期
  50. const stage = yield ctx.service.stage.addStage(mockData.tender.id, '2019-06', '2019-06-10 ~ 2019-06-30');
  51. assert(stage);
  52. mockData.stage = stage;
  53. mockData.stage.curTimes = 1;
  54. mockData.stage.curOrder = 0;
  55. });
  56. // 新增
  57. it('test add', function* () {
  58. const ctx = app.mockContext(mockData);
  59. const orgStagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage);
  60. const result = yield ctx.service.pay.add();
  61. assert(result);
  62. testPayId = result.pid;
  63. const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage);
  64. assert(stagePays.length === orgStagePays.length + 1);
  65. });
  66. // 删除
  67. it('test del', function* () {
  68. const ctx = app.mockContext(mockData);
  69. const orgStagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage);
  70. const result = yield ctx.service.pay.del(testPayId);
  71. assert(result);
  72. const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage);
  73. assert(stagePays.length === orgStagePays.length - 1);
  74. });
  75. // 调整顺序
  76. it('test changeOrder', function* () {
  77. const ctx = app.mockContext(mockData);
  78. const node1 = yield ctx.service.pay.add();
  79. assert(node1);
  80. const node2 = yield ctx.service.pay.add();
  81. assert(node2);
  82. const result = yield ctx.service.pay.changeOrder(node1.pid, node2.pid);
  83. assert(result);
  84. const stagePays = yield ctx.service.stagePay.getStageLastestPays(ctx.stage);
  85. const newNode1 = _.find(stagePays, {order: node1.order});
  86. assert(newNode1.pid === node2.pid);
  87. const newNode2 = _.find(stagePays, {order: node2.order});
  88. assert(newNode2.pid === node1.pid);
  89. testPayId = node1.pid;
  90. });
  91. // 名称/扣款项/起扣金额/扣款限额/计提期限/停用/启用 等单元测试在stagePay.test.js中测试
  92. });