salix/db/tests/vn/ticketCalculateClon.spec.js

106 lines
3.1 KiB
JavaScript

const app = require('vn-loopback/server/server');
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
describe('ticket ticketCalculateClon()', () => {
const today = new Date();
it('should add the ticket to the order containing the original ticket', async() => {
let stmts = [];
let stmt;
stmts.push('START TRANSACTION');
let params = {
clientFk: 1101,
shipped: today,
warehouseFk: 1,
companyFk: 442,
addressFk: 121,
agencyType: 23,
routeFk: 1,
landed: today,
userId: 21,
originalTicketId: 11
};
stmt = new ParameterizedSQL('CALL vn.ticketCreateWithUser(?, ?, ?, ?, ?, ?, ?, ?, ?, @result)', [
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk,
params.addressFk,
params.agencyType,
params.routeFk,
params.landed,
params.userId
]);
stmts.push(stmt);
stmt = new ParameterizedSQL('CALL vn.ticketCalculateClon(@result, ?)', [params.originalTicketId]);
stmts.push(stmt);
let orderIndex = stmts.push(`SELECT * FROM vn.orderTicket WHERE ticketFk = @result`) - 1;
stmts.push('ROLLBACK');
let sql = ParameterizedSQL.join(stmts, ';');
let result = await app.models.Ticket.rawStmt(sql);
let expectedOrder = 11;
let newestTicketIdInFixtures = 21;
expect(result[orderIndex][0].orderFk).toEqual(expectedOrder);
expect(result[orderIndex][0].ticketFk).toBeGreaterThan(newestTicketIdInFixtures);
});
it('should add the ticket to the order containing the original ticket and generate landed value if it was null', async() => {
let stmts = [];
let stmt;
stmts.push('START TRANSACTION');
let params = {
clientFk: 1101,
shipped: today,
warehouseFk: 1,
companyFk: 442,
addressFk: 121,
agencyType: 23,
routeFk: 1,
landed: null,
userId: 21,
originalTicketId: 11
};
stmt = new ParameterizedSQL('CALL vn.ticketCreateWithUser(?, ?, ?, ?, ?, ?, ?, ?, ?, @result)', [
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk,
params.addressFk,
params.agencyType,
params.routeFk,
params.landed,
params.userId
]);
stmts.push(stmt);
stmt = new ParameterizedSQL('CALL vn.ticketCalculateClon(@result, ?)', [params.originalTicketId]);
stmts.push(stmt);
stmts.push('ROLLBACK');
let sql = ParameterizedSQL.join(stmts, ';');
let error;
try {
await app.models.Ticket.rawStmt(sql);
} catch (e) {
error = e;
}
expect(error).toBeDefined();
expect(error.statusCode).toBe(500);
expect(error.code).toBe('ER_SIGNAL_EXCEPTION');
});
});