48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
const axios = require('axios');
|
|
const stream = require('stream');
|
|
|
|
describe('docuware download()', () => {
|
|
const userId = 9;
|
|
const ticketId = 1;
|
|
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 error if file not exist', async() => {
|
|
spyOn(docuwareModel, 'checkFile').and.returnValue(false);
|
|
spyOn(axios, 'get').and.returnValue(new stream.PassThrough({objectMode: true}));
|
|
|
|
let error;
|
|
try {
|
|
await models.Docuware.download(ctx, ticketId, fileCabinetName);
|
|
} catch (e) {
|
|
error = e.message;
|
|
}
|
|
|
|
expect(error).toEqual('The DOCUWARE PDF document does not exists');
|
|
});
|
|
|
|
it('should return the downloaded file if exist file ', async() => {
|
|
spyOn(docuwareModel, 'checkFile').and.returnValue({});
|
|
spyOn(axios, 'get').and.returnValue(new stream.PassThrough({objectMode: true}));
|
|
|
|
const result = await models.Docuware.download(ticketId, fileCabinetName);
|
|
|
|
expect(result[1]).toEqual('application/pdf');
|
|
expect(result[2]).toEqual(`filename="${ticketId}.pdf"`);
|
|
});
|
|
});
|