const models = require('vn-loopback/server/server').models; const axios = require('axios'); describe('docuware download()', () => { const ticketId = 1; const userId = 9; const ctx = { req: { accessToken: {userId: userId}, headers: {origin: 'http://localhost:5000'}, } }; const docuwareModel = models.Docuware; const fileCabinetName = 'deliveryNote'; beforeAll(() => { spyOn(docuwareModel, 'getFileCabinet').and.returnValue((new Promise(resolve => resolve(Math.random())))); spyOn(docuwareModel, 'getDialog').and.returnValue((new Promise(resolve => resolve(Math.random())))); }); it('should return false if there are no documents', async() => { const response = { data: { Items: [] } }; spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(response))); const result = await models.Docuware.checkFile(ctx, ticketId, fileCabinetName, true); expect(result).toEqual(false); }); it('should return false if the document is unsigned', async() => { const response = { data: { Items: [ { Id: 1, Fields: [ { FieldName: 'ESTADO', Item: 'Unsigned' } ] } ] } }; spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(response))); const result = await models.Docuware.checkFile(ctx, ticketId, fileCabinetName, true); expect(result).toEqual(false); }); it('should return the document data', async() => { const docuwareId = 1; const response = { data: { Items: [ { Id: docuwareId, Fields: [ { FieldName: 'ESTADO', Item: 'Firmado' } ] } ] } }; spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(response))); const result = await models.Docuware.checkFile(ctx, ticketId, fileCabinetName, true); expect(result.id).toEqual(docuwareId); }); });