51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
const got = require('got');
|
|
const stream = require('stream');
|
|
|
|
describe('docuware download()', () => {
|
|
const userId = 9;
|
|
const ticketId = 1;
|
|
const ctx = {
|
|
req: {
|
|
|
|
accessToken: {userId: userId},
|
|
headers: {origin: 'http://localhost:5000'},
|
|
}
|
|
};
|
|
|
|
it('should return the downloaded file name', async() => {
|
|
const fileCabinetName = 'deliveryClientTest';
|
|
const dialogDisplayName = 'find';
|
|
const dialogName = 'findTest';
|
|
const gotGetResponse = {
|
|
body: JSON.stringify(
|
|
{
|
|
FileCabinet: [
|
|
{Id: 12, Name: fileCabinetName}
|
|
],
|
|
Dialog: [
|
|
{Id: 34, DisplayName: dialogDisplayName}
|
|
]
|
|
})
|
|
};
|
|
|
|
const gotPostResponse = {
|
|
body: JSON.stringify(
|
|
{
|
|
Items: [
|
|
{Id: 56}
|
|
],
|
|
})
|
|
};
|
|
|
|
spyOn(got, 'get').and.returnValue(new Promise(resolve => resolve(gotGetResponse)));
|
|
spyOn(got, 'post').and.returnValue(new Promise(resolve => resolve(gotPostResponse)));
|
|
spyOn(got, 'stream').and.returnValue(new stream.PassThrough({objectMode: true}));
|
|
|
|
const result = await models.Docuware.download(ctx, ticketId, fileCabinetName, dialogName);
|
|
|
|
expect(result[1]).toEqual('application/pdf');
|
|
expect(result[2]).toEqual(`filename="${ticketId}.pdf"`);
|
|
});
|
|
});
|