54 lines
2.2 KiB
JavaScript
54 lines
2.2 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
const LoopBackContext = require('loopback-context');
|
|
|
|
describe('Ticket cloning - cloneAll function', () => {
|
|
const activeCtx = {
|
|
accessToken: {userId: 1},
|
|
http: {
|
|
req: {
|
|
headers: {origin: 'http://localhost'}
|
|
}
|
|
}
|
|
};
|
|
const ctx = {req: activeCtx};
|
|
let options;
|
|
let tx;
|
|
const ticketIds = [1, 2];
|
|
const withWarehouse = true;
|
|
const negative = false;
|
|
|
|
beforeEach(async() => {
|
|
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({active: ctx.req});
|
|
tx = await models.Ticket.beginTransaction({});
|
|
options = {transaction: tx};
|
|
});
|
|
|
|
afterEach(async() => {
|
|
if (tx)
|
|
await tx.rollback();
|
|
});
|
|
|
|
it('should clone all provided tickets with their associated sales, services, and packages', async() => {
|
|
const originalTickets = await models.Ticket.find({where: {id: {inq: ticketIds}}}, options);
|
|
const originalSales = await models.Sale.find({where: {ticketFk: {inq: ticketIds}}}, options);
|
|
const originalServices = await models.TicketService.find({where: {ticketFk: {inq: ticketIds}}}, options);
|
|
const originalTicketPackaging =
|
|
await models.TicketPackaging.find({where: {ticketFk: {inq: ticketIds}}}, options);
|
|
|
|
// Pass the ctx correctly to the cloneAll function
|
|
const clonedTickets = await models.Ticket.cloneAll(ctx, ticketIds, withWarehouse, negative, options);
|
|
|
|
expect(clonedTickets.length).toEqual(originalTickets.length);
|
|
|
|
const clonedSales = await models.Sale.find({where: {ticketFk: {inq: clonedTickets.map(t => t.id)}}}, options);
|
|
const clonedServices =
|
|
await models.TicketService.find({where: {ticketFk: {inq: clonedTickets.map(t => t.id)}}}, options);
|
|
const clonedTicketPackaging =
|
|
await models.TicketPackaging.find({where: {ticketFk: {inq: clonedTickets.map(t => t.id)}}}, options);
|
|
|
|
expect(clonedSales.length).toEqual(originalSales.length);
|
|
expect(clonedServices.length).toEqual(originalServices.length);
|
|
expect(clonedTicketPackaging.length).toEqual(originalTicketPackaging.length);
|
|
});
|
|
});
|