feat: refs #8151 moveExpeditions #3200

Merged
guillermo merged 7 commits from 8151-moveExpeditions into dev 2024-11-15 05:59:19 +00:00
2 changed files with 43 additions and 5 deletions
Showing only changes of commit 018393fa93 - Show all commits

View File

@ -82,9 +82,7 @@ module.exports = Self => {
} }
await Promise.all(promises); await Promise.all(promises);
await models.Ticket.updateAll({id: ticket.id}, {packages: promises.length}, myOptions); await models.Ticket.updateAll({id: ticket.id}, {packages: promises.length}, myOptions);
Review

no he utilizado ticket.updateAttribute porque me daba error val.slice is not a function en una linea de código de la libreria sqlstring

no he utilizado ticket.updateAttribute porque me daba `error val.slice is not a function` en una linea de código de la libreria sqlstring
const state = await models.State.findOne({ const state = await models.State.findOne({where: {code: 'PACKED'}});
where: {code: 'PACKED'}
}, myOptions);
await models.Ticket.state(ctx, { await models.Ticket.state(ctx, {
ticketFk: ticket.id, ticketFk: ticket.id,

View File

@ -1,6 +1,6 @@
const models = require('vn-loopback/server/server').models; const models = require('vn-loopback/server/server').models;
describe('ticket moveExpeditions()', () => { fdescribe('ticket moveExpeditions()', () => {
const ctx = beforeAll.getCtx(); const ctx = beforeAll.getCtx();
it('should move the selected expeditions to new ticket', async() => { it('should move the selected expeditions to new ticket', async() => {
@ -32,5 +32,45 @@ describe('ticket moveExpeditions()', () => {
throw e; throw e;
} }
}); });
});
it('should move expeditions to a new ticket, set state to PACKED, and update packages count correctly', async() => {
const tx = await models.Expedition.beginTransaction({});
const myCtx = ctx;
try {
const options = {transaction: tx};
myCtx.args = {
clientId: 1101,
landed: Date.vnNew(),
warehouseId: 1,
addressId: 121,
agencyModeId: 1,
routeId: null,
expeditionIds: [1, 2]
};
const ticket = await models.Expedition.moveExpeditions(myCtx, options);
const newestTicketIdInFixtures = 27;
guillermo marked this conversation as resolved
Review

fes este id relatiu, sino quan creen fixturs trencara este test

fes este id relatiu, sino quan creen fixturs trencara este test
expect(ticket.id).toBeGreaterThan(newestTicketIdInFixtures);
const updatedTicket = await models.Ticket.findById(ticket.id, null, options);
const packedState = await models.State.findOne({where: {code: 'PACKED'}}, options);
const state = await models.TicketState.findOne({where: {ticketFk: ticket.id}}, options);
expect(state.stateFk).toBe(packedState.id);
expect(state.userFk).toBe(myCtx.req.accessToken.userId);
const expectedPackagesCount = myCtx.args.expeditionIds.length;
expect(updatedTicket.$packages).toBe(expectedPackagesCount);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
});