| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 | 'use strict';/** * 台账审批流程单元测试 * * @author Mai * @date 2018/5/25 * @version */const { app, assert } = require('egg-mock/bootstrap');const testTenderId = 3, testProjectId = 17;const addData = {    name: 'test_ledger_audit',    category: null,};const mockData = {};let times = 1;const auditConst = require('../../../app/const/audit');describe('test/app/service/ledger_audit.test.js', () => {    // 准备测试数据    before(function* () {        const ctx = app.mockContext(mockData);        // 模拟登录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 tenderData = yield ctx.service.tender.getDataByCondition({            user_id: ctx.session.sessionUser.accountId,            name: addData.name,        });        if (tenderData) {            const result = yield ctx.service.tender.deleteTenderNoBackup(tenderData.id);            assert(result);        }        // 新建测试标段        const addResult = yield ctx.service.tender.add(addData);        assert(addResult);        // 模拟打开标段        mockData.tender = {};        mockData.tender.data = yield ctx.service.tender.getDataByCondition({            user_id: ctx.session.sessionUser.accountId,            name: addData.name,        });        mockData.tender.id = mockData.tender.data.id;        mockData.tender.info = yield ctx.service.tenderInfo.getTenderInfo(mockData.tender.id);    });    /**     * 流程   名称          id     * 原报   CinYung      11     */    // 新增审核人    it('test addAuditor', function* () {        const ctx = app.mockContext(mockData);        // 该测试项目存在4个用户,11/13/14/15        const result1 = yield ctx.service.ledgerAudit.addAuditor(ctx.tender.id, 14, ctx.tender.data.ledger_times);        assert(result1);        const result2 = yield ctx.service.ledgerAudit.addAuditor(ctx.tender.id, 15, ctx.tender.data.ledger_times);        assert(result2);    });    /**     * 流程   名称          id     * 原报   CinYung      11     * 1审    陈特         14     * 2审    付青青       15     */    // 查询审核人    it('test getAuditor', function* () {        const ctx = app.mockContext(mockData);        const result = yield ctx.service.ledgerAudit.getAuditor(ctx.tender.id, 14, ctx.tender.data.ledger_times);        assert(result);        assert(result.audit_order === 1);        assert(result.name === '陈特');    });    // 获取台账审核人列表    it('test getAuditors', function* () {        const ctx = app.mockContext(mockData);        const result = yield ctx.service.ledgerAudit.getAuditors(ctx.tender.id, ctx.tender.data.ledger_times);        assert(result);        assert(result.length === 2);        assert(result[0].audit_order === 1);        assert(result[0].name === '陈特');        assert(result[1].audit_order === 2);        assert(result[1].name === '付青青');    });    // 获取New Order    it('test getNewOrder', function* () {        const ctx = app.mockContext(mockData);        const result = yield ctx.service.ledgerAudit.getNewOrder(ctx.tender.id, ctx.tender.data.ledger_times);        assert(result === 3);    });    it('test deleteAuditor', function* () {        const ctx = app.mockContext(mockData);        const result = yield ctx.service.ledgerAudit.deleteAuditor(ctx.tender.id, 14, ctx.tender.data.ledger_times);        assert(result);        const auditors = yield ctx.service.ledgerAudit.getAuditors(ctx.tender.id, ctx.tender.data.ledger_times);        assert(auditors.length === 1);        assert(auditors[0].audit_order === 1);        assert(auditors[0].audit_id === 15);        assert(auditors[0].name === '付青青');    });    /**     * 流程   名称          id     * 原报   CinYung      11     * 1审    付青青        15     */    // 获取当前审核人 未上报    it('test getCurAuditor 未上报', function* () {        const ctx = app.mockContext(mockData);        let curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, ctx.tender.data.ledger_times);        assert(curAuditor === null);    });    // 上报    it('test start', function* () {        const ctx = app.mockContext(mockData);        const result = yield ctx.service.ledgerAudit.start(ctx.tender.id, ctx.tender.data.ledger_times);        assert(result);        const tender = yield ctx.service.tender.getTender(ctx.tender.id);        assert(tender.ledger_status === auditConst.ledger.status.checking);        const auditors = yield ctx.service.ledgerAudit.getAuditors(ctx.tender.id, ctx.tender.data.ledger_times);        assert(auditors);        assert(auditors.length === 1);        assert(auditors[0].status === auditConst.ledger.status.checking);    });    // 获取当前审核人 审批中    it('test getCurAuditor 审批中', function* () {        const ctx = app.mockContext(mockData);        let curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, ctx.tender.data.ledger_times);        assert(curAuditor);        assert(curAuditor.name === '付青青');    });    // 审批退回    it('test check 审批退回', function* () {        const ctx = app.mockContext(mockData);        yield ctx.service.ledgerAudit.check(ctx.tender.id, auditConst.ledger.status.checkNo, '审批不通过', ctx.tender.data.ledger_times);        const auditors = yield ctx.service.ledgerAudit.getAuditors(ctx.tender.id, ctx.tender.data.ledger_times);        assert(auditors);        assert(auditors.length === 1);        assert(auditors[0].status === auditConst.ledger.status.checkNo);        mockData.tender.data = yield ctx.service.tender.getTender(ctx.tender.id);        assert(mockData.tender.data.ledger_times === 1);        assert(mockData.tender.data.ledger_status === auditConst.ledger.status.checkNo);    });    // 获取当前审核人 审批退回    it('test getCurAuditor 审批退回', function* () {        const ctx = app.mockContext(mockData);        let curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, ctx.tender.data.ledger_times);        assert(curAuditor === null);    });    it('test start 重新上报', function* () {        const ctx = app.mockContext(mockData);        const addRst = yield ctx.service.ledgerAudit.addAuditor(ctx.tender.id, 14, ctx.tender.data.ledger_times);        assert(addRst);        const auditors = yield ctx.service.ledgerAudit.getAuditors(ctx.tender.id, ctx.tender.data.ledger_times);        assert(auditors);        assert(auditors.length === 2);        assert(auditors[0].audit_order === 1);        assert(auditors[0].name === '付青青');        assert(auditors[1].audit_order === 2);        assert(auditors[1].name === '陈特');        const result = yield ctx.service.ledgerAudit.start(ctx.tender.id, ctx.tender.data.ledger_times);        assert(result);        const tender = yield ctx.service.tender.getTender(ctx.tender.id);        assert(tender.ledger_status === auditConst.ledger.status.checking);        const curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, times);        assert(curAuditor);        assert(curAuditor.audit_order === 1);        assert(curAuditor.name === '付青青');    });    it('test check 审批通过', function* () {        const ctx = app.mockContext(mockData);        yield ctx.service.ledgerAudit.check(ctx.tender.id, auditConst.ledger.status.checked, '审批通过', ctx.tender.data.ledger_times);        const tender = yield ctx.service.tender.getTender(ctx.tender.id);        assert(tender.ledger_status === auditConst.ledger.status.checking);        const curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, times);        assert(curAuditor);        assert(curAuditor.audit_order === 2);        assert(curAuditor.name === '陈特');    });    it('test check 终审 审批通过', function* () {        const ctx = app.mockContext(mockData);        yield ctx.service.ledgerAudit.check(ctx.tender.id, auditConst.ledger.status.checked, '审批通过', ctx.tender.data.ledger_times);        const tender = yield ctx.service.tender.getTender(ctx.tender.id);        assert(tender.ledger_status === auditConst.ledger.status.checked);        const curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, times);        assert(curAuditor === null);    });    it('test getCurAuditor 审批完成', function* () {        const ctx = app.mockContext(mockData);        let curAuditor = yield ctx.service.ledgerAudit.getCurAuditor(ctx.tender.id, ctx.tender.data.ledger_times);        assert(curAuditor === null);    });});
 |