122 lines
4.4 KiB
JavaScript
122 lines
4.4 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
|
|
describe('sale moveToTicket()', () => {
|
|
let createdTicketId;
|
|
|
|
afterAll(async done => {
|
|
await app.models.Ticket.destroyById(createdTicketId);
|
|
done();
|
|
});
|
|
|
|
it('should throw an error if the ticket is not editable', async() => {
|
|
const ctx = {req: {accessToken: {userId: 101}}};
|
|
let error;
|
|
|
|
const params = {currentTicket: {currentTicketId: 10}};
|
|
|
|
await app.models.Sale.moveToTicket(ctx, params)
|
|
.catch(response => {
|
|
expect(response.message).toEqual(`The sales of the current ticket can't be modified`);
|
|
error = response;
|
|
});
|
|
|
|
expect(error).toBeDefined();
|
|
});
|
|
|
|
it('should throw an error if the receiving ticket is not editable', async() => {
|
|
const ctx = {req: {accessToken: {userId: 101}}};
|
|
let error;
|
|
|
|
const params = {currentTicket: {currentTicketId: 16}, receiverTicket: {id: 1}};
|
|
|
|
await app.models.Sale.moveToTicket(ctx, params)
|
|
.catch(response => {
|
|
expect(response.message).toEqual(`The sales of the receiver ticket can't be modified`);
|
|
error = response;
|
|
});
|
|
|
|
expect(error).toBeDefined();
|
|
});
|
|
|
|
it('should throw an error when attempting to create a new ticket without delivery dates', async() => {
|
|
const ctx = {req: {accessToken: {userId: 101}}};
|
|
let error;
|
|
|
|
const params = {currentTicket: {currentTicketId: 18}, receiverTicket: {id: undefined}};
|
|
|
|
await app.models.Sale.moveToTicket(ctx, params)
|
|
.catch(response => {
|
|
expect(response.message).toEqual(`Invalid parameters to create a new ticket`);
|
|
error = response;
|
|
});
|
|
|
|
expect(error).toBeDefined();
|
|
});
|
|
|
|
it('should transfer the sales from one ticket to a new one', async() => {
|
|
const ctx = {req: {accessToken: {userId: 101}}};
|
|
let currentTicket = await app.models.Ticket.findById(11);
|
|
currentTicket.currentTicketId = currentTicket.id;
|
|
currentTicket.id = undefined;
|
|
|
|
let currentTicketSales = await app.models.Ticket.getSales(currentTicket.currentTicketId);
|
|
|
|
expect(currentTicketSales.length).toEqual(2);
|
|
|
|
let params = {
|
|
currentTicket: currentTicket,
|
|
receiverTicket: {id: undefined},
|
|
sales: [
|
|
{id: currentTicketSales[0].id},
|
|
{id: currentTicketSales[1].id}
|
|
]
|
|
};
|
|
|
|
let createdTicket = await app.models.Sale.moveToTicket(ctx, params);
|
|
createdTicketId = createdTicket.id;
|
|
|
|
currentTicketSales = await app.models.Ticket.getSales(currentTicket.currentTicketId);
|
|
receiverTicketSales = await app.models.Ticket.getSales(createdTicket.id);
|
|
|
|
expect(currentTicketSales.length).toEqual(0);
|
|
expect(receiverTicketSales.length).toEqual(2);
|
|
});
|
|
|
|
it('should transfer back the sales and set the created ticket as deleted', async() => {
|
|
const ctx = {req: {accessToken: {userId: 101}}};
|
|
let receiverTicketId = 11;
|
|
let currentTicket = await app.models.Ticket.findById(createdTicketId);
|
|
currentTicket.currentTicketId = createdTicketId;
|
|
currentTicket.id = undefined;
|
|
|
|
let createdTicket = await app.models.Ticket.findById(createdTicketId);
|
|
let createdTicketSales = await app.models.Ticket.getSales(createdTicketId);
|
|
let receiverTicketSales = await app.models.Ticket.getSales(receiverTicketId);
|
|
|
|
expect(createdTicket.isDeleted).toBeFalsy();
|
|
expect(createdTicketSales.length).toEqual(2);
|
|
expect(receiverTicketSales.length).toEqual(0);
|
|
|
|
let params = {
|
|
removeEmptyTicket: true,
|
|
currentTicket: currentTicket,
|
|
receiverTicket: {id: receiverTicketId},
|
|
sales: [
|
|
{id: createdTicketSales[0].id},
|
|
{id: createdTicketSales[1].id}
|
|
]
|
|
};
|
|
|
|
await app.models.Sale.moveToTicket(ctx, params);
|
|
|
|
createdTicket = await app.models.Ticket.findById(createdTicketId);
|
|
|
|
createdTicketSales = await app.models.Ticket.getSales(createdTicketId);
|
|
receiverTicketSales = await app.models.Ticket.getSales(receiverTicketId);
|
|
|
|
expect(createdTicket.isDeleted).toBeTruthy();
|
|
expect(createdTicketSales.length).toEqual(0);
|
|
expect(receiverTicketSales.length).toEqual(2);
|
|
});
|
|
});
|