89 lines
2.5 KiB
JavaScript
89 lines
2.5 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
|
|
describe('ticket addSale()', () => {
|
|
const ticketId = 13;
|
|
|
|
it('should create a new sale for the ticket with id 13', async() => {
|
|
const tx = await models.Ticket.beginTransaction({});
|
|
|
|
try {
|
|
const options = {transaction: tx};
|
|
|
|
const ctx = {
|
|
req: {
|
|
accessToken: {userId: 9},
|
|
headers: {origin: 'localhost:5000'},
|
|
__: () => {}
|
|
}
|
|
};
|
|
const itemId = 4;
|
|
const quantity = 10;
|
|
const newSale = await models.Ticket.addSale(ctx, ticketId, itemId, quantity, options);
|
|
|
|
expect(newSale.itemFk).toEqual(4);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
throw e;
|
|
}
|
|
});
|
|
|
|
it('should not be able to add a sale if the item quantity is not available', async() => {
|
|
const tx = await models.Ticket.beginTransaction({});
|
|
|
|
let error;
|
|
|
|
try {
|
|
const options = {transaction: tx};
|
|
|
|
const ctx = {
|
|
req: {
|
|
accessToken: {userId: 9},
|
|
headers: {origin: 'localhost:5000'},
|
|
__: () => {}
|
|
}
|
|
};
|
|
const itemId = 11;
|
|
const quantity = 10;
|
|
|
|
await models.Ticket.addSale(ctx, ticketId, itemId, quantity, options);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
error = e;
|
|
}
|
|
|
|
expect(error.message).toEqual(`This item is not available`);
|
|
});
|
|
|
|
it('should not be able to add a sale if the ticket is not editable', async() => {
|
|
const tx = await models.Ticket.beginTransaction({});
|
|
|
|
let error;
|
|
|
|
try {
|
|
const options = {transaction: tx};
|
|
const ctx = {
|
|
req: {
|
|
accessToken: {userId: 9},
|
|
headers: {origin: 'localhost:5000'},
|
|
__: () => {}
|
|
}
|
|
};
|
|
const notEditableTicketId = 1;
|
|
const itemId = 4;
|
|
const quantity = 10;
|
|
await models.Ticket.addSale(ctx, notEditableTicketId, itemId, quantity, options);
|
|
|
|
await tx.rollback();
|
|
} catch (e) {
|
|
await tx.rollback();
|
|
error = e;
|
|
}
|
|
|
|
expect(error.message).toEqual(`The sales of this ticket can't be modified`);
|
|
});
|
|
});
|