tender.test.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /**
  2. * 项目数据模型单元测试
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/11/17
  6. * @version
  7. */
  8. 'use strict';
  9. const { app, assert } = require('egg-mock/bootstrap');
  10. const tenderConst = require('../../../app/const/tender');
  11. const addData = {
  12. name: 'test_addTender',
  13. category: null,
  14. };
  15. const renderbody = {
  16. name : '测试保存项目信息',
  17. type: 1,
  18. };
  19. const mockData = {};
  20. let testTenderId;
  21. const _ = require('lodash');
  22. const PayConst = require('../../../app/const/deal_pay.js');
  23. describe('test/app/service/tender.test.js', () => {
  24. // 准备测试数据,新增测试标段
  25. before(function* () {
  26. const ctx = app.mockContext();
  27. // 模拟登录session
  28. const postData = {
  29. account: '734406061@qq.com',
  30. project: 'T201711273363',
  31. project_password: 'mai654321',
  32. };
  33. ctx.session = {};
  34. const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
  35. assert(loginResult);
  36. mockData.session = ctx.session;
  37. // 检查是否存在以往测试数据,存在则清除
  38. const tender = yield ctx.service.tender.getDataByCondition({
  39. name: renderbody.name,
  40. project_id: ctx.session.sessionProject.id,
  41. });
  42. if (tender) {
  43. const result = yield ctx.service.tender.deleteTenderNoBackup(tender.id);
  44. assert(result);
  45. }
  46. });
  47. // 新增标段
  48. it('test addTender', function* () {
  49. const ctx = app.mockContext(mockData);
  50. const result = yield ctx.service.tender.add(addData);
  51. assert(result);
  52. const data = yield ctx.service.tender.getDataByCondition({
  53. name: addData.name,
  54. project_id: ctx.session.sessionProject.id,
  55. });
  56. assert(data);
  57. testTenderId = data.id;
  58. const ledger = yield ctx.service.ledger.getData(testTenderId);
  59. assert(ledger.length === 53);
  60. const payNodes = yield ctx.service.pay.getAllDataByCondition({where: {tid: testTenderId}});
  61. assert(payNodes.length === 5);
  62. let payNode = _.find(payNodes, {ptype: PayConst.payType.wc});
  63. assert(payNode.name === '本期完成计量');
  64. payNode = _.find(payNodes, {ptype: PayConst.payType.yf});
  65. assert(payNode.name === '本期应付');
  66. payNode = _.find(payNodes, {ptype: PayConst.payType.sf});
  67. assert(payNode.name === '本期实付');
  68. });
  69. // 获取标段信息
  70. it('test getTenderData', function* () {
  71. const ctx = app.mockContext(mockData);
  72. const tender = yield ctx.service.tender.getDataById(testTenderId);
  73. assert(tender.id === testTenderId);
  74. assert(tender.name === addData.name);
  75. });
  76. // 修改标段信息
  77. it('test save',function* () {
  78. const ctx = app.mockContext(mockData);
  79. const result = yield ctx.service.tender.save(renderbody, testTenderId);
  80. assert(result);
  81. const data = yield ctx.service.tender.getTender(testTenderId);
  82. assert(data.name === renderbody.name);
  83. });
  84. // 假删除
  85. it('test deleteTenderById', function* () {
  86. const ctx = app.mockContext(mockData);
  87. const result = yield ctx.service.tender.deleteTenderById(testTenderId);
  88. assert(result);
  89. const tender = yield ctx.service.tender.getTender(testTenderId);
  90. assert(tender.status === ctx.service.tender.status.DISABLE);
  91. });
  92. // 真删除
  93. it('test deleteTenderNoBackup', function* () {
  94. const ctx = app.mockContext(mockData);
  95. const result = yield ctx.service.tender.deleteTenderNoBackup(testTenderId);
  96. assert(result);
  97. let count;
  98. count = yield ctx.service.tender.count({id: testTenderId});
  99. assert(count === 0);
  100. count = yield ctx.service.tenderInfo.count({tid: testTenderId});
  101. assert(count === 0);
  102. count = yield ctx.service.ledger.count({tender_id: testTenderId});
  103. assert(count === 0);
  104. count = yield ctx.service.ledgerAudit.count({tender_id: testTenderId});
  105. assert(count === 0);
  106. count = yield app.mysql.count(ctx.service.ledgerAudit.tableName + '_copy', {tender_id: testTenderId});
  107. assert(count === 0);
  108. count = yield ctx.service.pos.count({tid: testTenderId});
  109. assert(count === 0);
  110. count = yield ctx.service.pay.count({tid: testTenderId});
  111. assert(count === 0);
  112. count = yield ctx.service.stage.count({tid: testTenderId});
  113. assert(count === 0);
  114. count = yield ctx.service.stageAudit.count({tid: testTenderId});
  115. assert(count === 0);
  116. count = yield ctx.service.stageBills.count({tid: testTenderId});
  117. assert(count === 0);
  118. count = yield ctx.service.stagePos.count({tid: testTenderId});
  119. assert(count === 0);
  120. count = yield ctx.service.stageDetail.count({tid: testTenderId});
  121. assert(count === 0);
  122. count = yield ctx.service.stagePay.count({tid: testTenderId});
  123. assert(count === 0);
  124. count = yield ctx.service.change.count({tid: testTenderId});
  125. assert(count === 0);
  126. count = yield ctx.service.changeAudit.count({tid: testTenderId});
  127. assert(count === 0);
  128. count = yield ctx.service.changeAuditList.count({tid: testTenderId});
  129. assert(count === 0);
  130. count = yield ctx.service.changeCompany.count({tid: testTenderId});
  131. assert(count === 0);
  132. count = yield ctx.service.changeAtt.count({tid: testTenderId});
  133. assert(count === 0);
  134. });
  135. });