3802-ticket_sale_mana #924

Merged
carlosjr merged 10 commits from 3802-ticket_sale_mana into dev 2022-04-11 10:50:20 +00:00
9 changed files with 24 additions and 41 deletions
Showing only changes of commit 655db502f7 - Show all commits

View File

@ -1,2 +1,2 @@
INSERT INTO `vn`.`component` (`name`,`typeFk`,`classRate`,`isRenewable`,`code`,`isRequired`)
VALUES ('maná reclamacion',7,4,0,'mana claim',0);
VALUES ('maná reclamacion',7,4,0,'manaClaim',0);
vicent marked this conversation as resolved Outdated

The column code should be in lowerCamelCase

The column code should be in lowerCamelCase

View File

@ -20,7 +20,7 @@ BEGIN
FROM `component` WHERE code = 'autoMana';
SELECT id INTO vClaimManaId
FROM `component` WHERE code = 'mana claim';
FROM `component` WHERE code = 'manaClaim';
SELECT id INTO vManaBankId
FROM `bank` WHERE code = 'mana';

View File

@ -30,7 +30,7 @@ BEGIN
FROM `component` WHERE code = 'autoMana';
SELECT id INTO vClaimMana
FROM `component` WHERE code = 'mana claim';
FROM `component` WHERE code = 'manaClaim';
SELECT id INTO vManaBank
FROM `bank` WHERE code = 'mana';

View File

@ -175,7 +175,7 @@ describe('Ticket Edit sale path', () => {
it('should update the discount', async() => {
await page.waitToClick(selectors.ticketSales.firstSaleDiscount);
await page.waitForSelector(selectors.ticketSales.firstSaleDiscountInput);
await page.type(selectors.ticketSales.firstSaleDiscountInput, '50\u000d');
await page.type(selectors.ticketSales.firstSaleDiscountInput, '50');
vicent marked this conversation as resolved Outdated

since you added a click on a submit button on the next line, the u000d of this input is no longer needed.

since you added a click on a submit button on the next line, the u000d of this input is no longer needed.
await page.waitToClick(selectors.ticketSales.saveSaleDiscountButton);
const message = await page.waitForSnackbar();

View File

@ -90,7 +90,7 @@ describe('sale updateDiscount()', () => {
expect(error.message).toEqual(`The sales of this ticket can't be modified`);
});
it('should update the discount if the salesPerson has mana and manaType = "mana"', async() => {
it('should update the discount if the salesPerson has mana and manaCode = "mana"', async() => {
const tx = await models.Ticket.beginTransaction({});
try {
@ -108,9 +108,9 @@ describe('sale updateDiscount()', () => {
const newDiscount = 100;
const manaDiscount = await models.Component.findOne({where: {code: 'mana'}}, options);
const componentId = manaDiscount.id;
const manaType = 'mana';
const manaCode = 'mana';
await models.Ticket.updateDiscount(ctx, ticketId, sales, newDiscount, manaType, options);
await models.Ticket.updateDiscount(ctx, ticketId, sales, newDiscount, manaCode, options);
const updatedSale = await models.Sale.findById(originalSaleId, null, options);
const createdSaleComponent = await models.SaleComponent.findOne({
@ -130,7 +130,7 @@ describe('sale updateDiscount()', () => {
}
});
it('should update the discount if the salesPerson has mana and manaType = "mana claim"', async() => {
it('should update the discount if the salesPerson has mana and manaCode = "manaClaim"', async() => {
vicent marked this conversation as resolved Outdated

if the code gets updated to lowerCamelCase this line and the test should be updated to match the code.

also manaType doesn't seem to be correct, manaCode or manaComponentCode are more specifics

if the code gets updated to lowerCamelCase this line and the test should be updated to match the code. also manaType doesn't seem to be correct, manaCode or manaComponentCode are more specifics
const tx = await models.Ticket.beginTransaction({});
try {
@ -146,11 +146,11 @@ describe('sale updateDiscount()', () => {
const ticketId = 11;
const sales = [originalSaleId];
const newDiscount = 100;
const manaDiscount = await models.Component.findOne({where: {code: 'mana claim'}}, options);
const manaDiscount = await models.Component.findOne({where: {code: 'manaClaim'}}, options);
const componentId = manaDiscount.id;
const manaType = 'mana claim';
const manaCode = 'manaClaim';
await models.Ticket.updateDiscount(ctx, ticketId, sales, newDiscount, manaType, options);
await models.Ticket.updateDiscount(ctx, ticketId, sales, newDiscount, manaCode, options);
const updatedSale = await models.Sale.findById(originalSaleId, null, options);
const createdSaleComponent = await models.SaleComponent.findOne({

View File

@ -25,7 +25,7 @@ module.exports = Self => {
required: true
},
{
arg: 'manaType',
arg: 'manaCode',
vicent marked this conversation as resolved Outdated

manaCode

manaCode
description: 'The type of mana',
type: 'string',
required: false
@ -41,7 +41,7 @@ module.exports = Self => {
}
});
Self.updateDiscount = async(ctx, id, salesIds, newDiscount, manaType, options) => {
Self.updateDiscount = async(ctx, id, salesIds, newDiscount, manaCode, options) => {
const $t = ctx.req.__; // $translate
const models = Self.app.models;
const myOptions = {};
@ -104,7 +104,7 @@ module.exports = Self => {
},
fields: 'amount'}, myOptions);
const componentCode = usesMana ? manaType : 'buyerDiscount';
const componentCode = usesMana ? manaCode : 'buyerDiscount';
const discountComponent = await models.Component.findOne({
where: {code: componentCode}}, myOptions);

View File

@ -292,12 +292,12 @@
<vn-radio
label="Promotion mana"
val="mana"
ng-model="$ctrl.manaType">
ng-model="$ctrl.manaCode">
</vn-radio>
<vn-radio
label="Claim mana"
val="mana claim"
ng-model="$ctrl.manaType">
val="manaClaim"
ng-model="$ctrl.manaCode">
</vn-radio>
</vn-vertical>
<div class="simulator">

View File

@ -6,15 +6,15 @@ class Controller extends Section {
constructor($element, $) {
super($element, $);
this._sales = [];
this.manaType = 'mana';
this.manaCode = 'mana';
}
get manaType() {
return this._manaType;
get manaCode() {
return this._manaCode;
}
set manaType(value) {
this._manaType = value;
set manaCode(value) {
this._manaCode = value;
}
get ticket() {
@ -290,7 +290,7 @@ class Controller extends Section {
return sale.id;
});
const params = {salesIds: saleIds, newDiscount: this.edit.discount, manaType: this.manaType};
const params = {salesIds: saleIds, newDiscount: this.edit.discount, manaCode: this.manaCode};
const query = `Tickets/${this.$params.id}/updateDiscount`;
this.$http.post(query, params).then(() => {
this.vnApp.showSuccess(this.$t('Data saved!'));

View File

@ -63,14 +63,6 @@ describe('Ticket', () => {
controller._sales = sales;
}));
describe('manaType() setter/getter', () => {
it('should set the manaType data', () => {
controller.manaType = 'mana claim';
expect(controller.manaType).toEqual('mana claim');
});
});
describe('ticket() setter', () => {
it('should set the ticket data an then call the isTicketEditable() and isTicketLocked() methods', () => {
vicent marked this conversation as resolved Outdated

Don't test angularjs basic functionalities like getters and setters, we test setters if there's logic to it.

Don't test angularjs basic functionalities like getters and setters, we test setters if there's logic to it.
jest.spyOn(controller, 'isTicketEditable').mockReturnThis();
@ -456,7 +448,7 @@ describe('Ticket', () => {
const expectedSales = [firstSelectedSale, secondSelectedSale];
const expectedSaleIds = [firstSelectedSale.id, secondSelectedSale.id];
const expectedParams = {salesIds: expectedSaleIds, newDiscount: expectedDiscount, manaType: 'mana'};
const expectedParams = {salesIds: expectedSaleIds, newDiscount: expectedDiscount, manaCode: 'mana'};
$httpBackend.expect('POST', `Tickets/1/updateDiscount`, expectedParams).respond(200, {discount: 10});
controller.updateDiscount(expectedSales);
$httpBackend.flush();
@ -743,15 +735,6 @@ describe('Ticket', () => {
});
});
describe('save()', () => {
it('should call changeDiscount()', () => {
jest.spyOn(controller, 'changeDiscount').mockReturnThis();
controller.save();
expect(controller.changeDiscount).toHaveBeenCalledWith();
});
});
describe('cancel()', () => {
it('should call hide()', () => {
jest.spyOn(controller.$.editDiscount, 'hide').mockReturnThis();