feat: refs #6760 refs #actualiza campo nickname #2883

Merged
jgallego merged 3 commits from 6760-transferClient into dev 2024-08-28 10:38:46 +00:00
2 changed files with 19 additions and 7 deletions

View File

@ -8,6 +8,7 @@ describe('Ticket transferClient()', () => {
const ctx = beforeAll.getCtx();
let options;
let tx;
beforeEach(async() => {
options = {transaction: tx};
tx = await models.Ticket.beginTransaction({});
@ -21,21 +22,23 @@ describe('Ticket transferClient()', () => {
it('should throw an error as the ticket is not editable', async() => {
try {
const ticketId = 4;
const clientId = 1;
await models.Ticket.transferClient(ctx, ticketId, clientId, options);
} catch (e) {
expect(e.message).toEqual(`This ticket is locked`);
expect(e.message).toEqual('This ticket is locked');
}
});
it('should be assigned a different clientFk in the original ticket', async() => {
it('should be assigned a different clientFk and nickname in the original ticket', async() => {
await models.Ticket.transferClient(ctx, 2, clientId, options);
const afterTransfer = await models.Ticket.findById(2, null, options);
const client = await models.Client.findById(clientId, {fields: ['defaultAddressFk']}, options);
const address = await models.Address.findById(client.defaultAddressFk, {fields: ['nickname']}, options);
expect(afterTransfer.clientFk).toEqual(clientId);
expect(afterTransfer.nickname).toEqual(address.nickname);
});
it('should be assigned a different clientFk in the original and refund ticket and claim', async() => {
it('should be assigned a different clientFk and nickname in the original and refund ticket and claim', async() => {
await models.Ticket.transferClient(ctx, originalTicketId, clientId, options);
const [originalTicket, refundTicket] = await models.Ticket.find({
@ -46,8 +49,14 @@ describe('Ticket transferClient()', () => {
where: {ticketFk: originalTicketId}
}, options);
const client = await models.Client.findById(clientId, {fields: ['defaultAddressFk']}, options);
const address = await models.Address.findById(client.defaultAddressFk, {fields: ['nickname']}, options);
expect(originalTicket.clientFk).toEqual(clientId);
expect(refundTicket.clientFk).toEqual(clientId);
expect(claim.clientFk).toEqual(clientId);
expect(originalTicket.nickname).toEqual(address.nickname);
expect(refundTicket.nickname).toEqual(address.nickname);
});
});

View File

@ -1,6 +1,6 @@
module.exports = Self => {
Self.remoteMethodCtx('transferClient', {
description: 'Transfering ticket to another client',
description: 'Transferring ticket to another client',
accessType: 'WRITE',
accepts: [{
arg: 'id',
@ -40,10 +40,13 @@ module.exports = Self => {
include: [{relation: 'refundTicket'}, {relation: 'originalTicket'}]
}, myOptions);
const {defaultAddressFk: addressFk} = await models.Client.findById(clientFk,
const client = await models.Client.findById(clientFk,
{fields: ['id', 'defaultAddressFk']}, myOptions);
const attributes = {clientFk, addressFk};
const address = await models.Address.findById(client.defaultAddressFk,
{fields: ['id', 'nickname']}, myOptions);
const attributes = {clientFk, addressFk: client.defaultAddressFk, nickname: address.nickname};
const tickets = [];
const ticketIds = [];