#686 PROCEDURE unit test vn.ticketCreateWithUser

This commit is contained in:
Carlos Jimenez 2018-10-04 13:32:28 +02:00
parent b6068e9150
commit ffd3dd3986
1 changed files with 97 additions and 18 deletions

View File

@ -25,10 +25,10 @@ describe('ticket ticketCreateWithUser()', () => {
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk | 442,
params.companyFk,
params.addressFk,
params.agencyModeFk,
params.routeFk | null,
params.routeFk,
params.landed,
params.userId
]);
@ -70,10 +70,10 @@ describe('ticket ticketCreateWithUser()', () => {
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk | 442,
params.companyFk,
params.addressFk,
params.agencyModeFk,
params.routeFk | null,
params.routeFk,
params.landed,
params.userId
]);
@ -90,7 +90,7 @@ describe('ticket ticketCreateWithUser()', () => {
expect(thirdTicketObservation.description).toEqual('care with the dog');
});
it('should confirm the procedure creates the expected observations in the ticket', async() => {
it('should confirm the procedure sets companyFk as Tenerife if vProvinceName is SANTA CRUZ DE TENERIFE', async() => {
let params = {
clientFk: 101,
shipped: today,
@ -103,33 +103,112 @@ describe('ticket ticketCreateWithUser()', () => {
userId: 18
};
let tenerife = 1381;
let changeProvinceToTenerife = `UPDATE province p, client c SET p.name ='SANTA CRUZ DE TENERIFE' WHERE p.id = c.provinceFk AND c.id = ?;`;
let query = `
START TRANSACTION;
${changeProvinceToTenerife}
CALL vn.ticketCreateWithUser(?, ?, ?, ?, ?, ?, ?, ?, ?, @newTicketId);
SELECT @newTicketId newTicketId;
SELECT companyFk FROM vn.ticket WHERE id = @newTicketId;
ROLLBACK;`;
let result = await app.models.Ticket.rawSql(query, [
params.clientFk,
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk,
params.addressFk,
params.agencyModeFk,
params.routeFk,
params.landed,
params.userId
]);
let ticket = result[4][0];
expect(ticket.companyFk).toEqual(tenerife);
});
it('should confirm the procedure sets address if it received it null', async() => {
let params = {
clientFk: 101,
shipped: today,
warehouseFk: 1,
companyFk: 442,
addressFk: 0,
agencyModeFk: 2,
routeFk: null,
landed: today,
userId: 18
};
let query = `
START TRANSACTION;
CALL vn.ticketCreateWithUser(?, ?, ?, ?, ?, ?, ?, ?, ?, @newTicketId);
SELECT @newTicketId newTicketId;
SELECT * FROM vn.ticketObservation WHERE ticketFk = @newTicketId;
SELECT addressFk FROM vn.ticket WHERE id = @newTicketId;
SELECT id FROM vn.address WHERE clientFk = ? AND isDefaultAddress = 1;
ROLLBACK;`;
let result = await app.models.Ticket.rawSql(query, [
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk | 442,
params.companyFk,
params.addressFk,
params.agencyModeFk,
params.routeFk | null,
params.routeFk,
params.landed,
params.userId
params.userId,
params.clientFk
]);
let firstTicketObservation = result[3][0];
let secondTicketObservation = result[3][1];
let thirdTicketObservation = result[3][2];
let ticket = result[2][0];
let clientDefaultAddress = result[3][0];
expect(firstTicketObservation.observationTypeFk).toEqual(1);
expect(firstTicketObservation.description).toEqual('under the floor');
expect(secondTicketObservation.observationTypeFk).toEqual(2);
expect(secondTicketObservation.description).toEqual('wears leather and goes out at night');
expect(thirdTicketObservation.observationTypeFk).toEqual(3);
expect(thirdTicketObservation.description).toEqual('care with the dog');
expect(ticket.addressFk).toEqual(clientDefaultAddress.id);
});
it('should confirm the procedure creates the state as delivered if the client has isCreatedAsServed TRUE', async() => {
let params = {
clientFk: 101,
shipped: today,
warehouseFk: 1,
companyFk: 442,
addressFk: 0,
agencyModeFk: 2,
routeFk: null,
landed: today,
userId: 18
};
let setAsIsDelivered = `UPDATE vn.client SET isCreatedAsServed = 1 WHERE id = ?;`;
let query = `
START TRANSACTION;
${setAsIsDelivered}
CALL vn.ticketCreateWithUser(?, ?, ?, ?, ?, ?, ?, ?, ?, @newTicketId);
SELECT @newTicketId newTicketId;
SELECT code FROM vn.ticketState WHERE ticketFk = @newTicketId;
ROLLBACK;`;
let result = await app.models.Ticket.rawSql(query, [
params.clientFk,
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk,
params.addressFk,
params.agencyModeFk,
params.routeFk,
params.landed,
params.userId,
params.clientFk
]);
let ticketState = result[4][0];
expect(ticketState.code).toEqual('DELIVERED');
});
});