124 lines
3.9 KiB
JavaScript
124 lines
3.9 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
|
|
|
// 2277 solucionar problema al testear procedimiento con start transaction / rollback
|
|
xdescribe('ticket_componentMakeUpdate()', () => {
|
|
it('should recalculate the ticket components without make modifications', async() => {
|
|
let stmts = [];
|
|
let stmt;
|
|
|
|
let params = {
|
|
ticketId: 11,
|
|
clientId: 102,
|
|
agencyModeId: 2,
|
|
addressId: 122,
|
|
zoneId: 3,
|
|
warehouseId: 1,
|
|
companyId: 442,
|
|
isDeleted: 0,
|
|
hasToBeUnrouted: 0,
|
|
componentOption: 1
|
|
};
|
|
|
|
stmts.push('START TRANSACTION');
|
|
|
|
stmt = new ParameterizedSQL('SELECT * FROM vn.ticket WHERE id = ?', [
|
|
params.ticketId
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
let originalTicketIndex = stmts.push(stmt) - 1;
|
|
|
|
stmt = new ParameterizedSQL('CALL vn.ticket_componentMakeUpdate(?, ?, ?, ?, ?, ?, ?, DATE_ADD(CURDATE(), INTERVAL +1 DAY), DATE_ADD(CURDATE(), INTERVAL +1 DAY), ?, ?, ?)', [
|
|
params.ticketId,
|
|
params.clientId,
|
|
params.agencyModeId,
|
|
params.addressId,
|
|
params.zoneId,
|
|
params.warehouseId,
|
|
params.companyId,
|
|
params.isDeleted,
|
|
params.hasToBeUnrouted,
|
|
params.componentOption
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
stmt = new ParameterizedSQL('SELECT * FROM vn.ticket WHERE id = ?', [
|
|
params.ticketId
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
let updatedTicketIndex = stmts.push(stmt) - 1;
|
|
|
|
stmts.push('ROLLBACK');
|
|
|
|
let sql = ParameterizedSQL.join(stmts, ';');
|
|
let result = await app.models.Ticket.rawStmt(sql);
|
|
|
|
let originalTicketData = result[originalTicketIndex];
|
|
let updatedTicketData = result[updatedTicketIndex];
|
|
|
|
expect(originalTicketData[0].isDeleted).toEqual(updatedTicketData[0].isDeleted);
|
|
expect(originalTicketData[0].routeFk).toEqual(updatedTicketData[0].routeFk);
|
|
});
|
|
|
|
it('should delete and unroute a ticket and recalculate the components', async() => {
|
|
let stmts = [];
|
|
let stmt;
|
|
|
|
let params = {
|
|
ticketId: 11,
|
|
clientId: 102,
|
|
agencyModeId: 2,
|
|
addressId: 122,
|
|
zoneId: 3,
|
|
warehouseId: 1,
|
|
companyId: 442,
|
|
isDeleted: 1,
|
|
hasToBeUnrouted: 1,
|
|
componentOption: 1
|
|
};
|
|
|
|
stmts.push('START TRANSACTION');
|
|
|
|
stmt = new ParameterizedSQL('SELECT * FROM vn.ticket WHERE id = ?', [
|
|
params.ticketId
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
let originalTicketIndex = stmts.push(stmt) - 1;
|
|
|
|
stmt = new ParameterizedSQL('CALL vn.ticket_componentMakeUpdate(?, ?, ?, ?, ?, ?, ?, DATE_ADD(CURDATE(), INTERVAL +1 DAY), DATE_ADD(CURDATE(), INTERVAL +1 DAY), ?, ?, ?)', [
|
|
params.ticketId,
|
|
params.clientId,
|
|
params.agencyModeId,
|
|
params.addressId,
|
|
params.zoneId,
|
|
params.warehouseId,
|
|
params.companyId,
|
|
params.isDeleted,
|
|
params.hasToBeUnrouted,
|
|
params.componentOption
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
stmt = new ParameterizedSQL('SELECT * FROM vn.ticket WHERE id = ?', [
|
|
params.ticketId
|
|
]);
|
|
stmts.push(stmt);
|
|
|
|
let updatedTicketIndex = stmts.push(stmt) - 1;
|
|
|
|
stmts.push('ROLLBACK');
|
|
|
|
let sql = ParameterizedSQL.join(stmts, ';');
|
|
let result = await app.models.Ticket.rawStmt(sql);
|
|
|
|
let originalTicketData = result[originalTicketIndex];
|
|
let updatedTicketData = result[updatedTicketIndex];
|
|
|
|
expect(originalTicketData[0].isDeleted).not.toEqual(updatedTicketData[0].isDeleted);
|
|
expect(originalTicketData[0].routeFk).not.toEqual(updatedTicketData[0].routeFk);
|
|
});
|
|
});
|