refs #4928 fixture notification, fix test supplier
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Alexandre Riera 2022-12-15 08:31:47 +01:00
parent f4ed7781b5
commit 33196acac6
2 changed files with 84 additions and 46 deletions

View File

@ -44,3 +44,6 @@ BEGIN
END$$ END$$
DELIMITER ; DELIMITER ;
INSERT INTO `util`.`notification` (`id`, `name`,`description`)
VALUES (3, 'supplier-pay-method-update', 'A supplier pay method has been updated');

View File

@ -2,13 +2,7 @@ const models = require('vn-loopback/server/server').models;
const LoopBackContext = require('loopback-context'); const LoopBackContext = require('loopback-context');
describe('loopback model Supplier', () => { describe('loopback model Supplier', () => {
let supplierOne;
let supplierTwo;
beforeAll(async() => { beforeAll(async() => {
supplierOne = await models.Supplier.findById(1);
supplierTwo = await models.Supplier.findById(442);
const activeCtx = { const activeCtx = {
accessToken: {userId: 9}, accessToken: {userId: 9},
http: { http: {
@ -23,71 +17,112 @@ describe('loopback model Supplier', () => {
}); });
}); });
afterAll(async() => {
await supplierOne.updateAttribute('payMethodFk', supplierOne.payMethodFk);
await supplierTwo.updateAttribute('payMethodFk', supplierTwo.payMethodFk);
});
describe('payMethodFk', () => { describe('payMethodFk', () => {
it('should throw an error when attempting to set an invalid payMethod id in the supplier', async() => { it('should throw an error when attempting to set an invalid payMethod id in the supplier', async() => {
let error; const tx = await models.Supplier.beginTransaction({});
const expectedError = 'You can not select this payment method without a registered bankery account'; const options = {transaction: tx};
const supplier = await models.Supplier.findById(1);
await supplier.updateAttribute('payMethodFk', 8) try {
.catch(e => { let error;
error = e; const expectedError = 'You can not select this payment method without a registered bankery account';
const supplier = await models.Supplier.findOne({where: {id: 1}}, options);
expect(error.message).toContain(expectedError); await supplier.updateAttribute('payMethodFk', 8, options)
}); .catch(e => {
error = e;
expect(error).toBeDefined(); expect(error.message).toContain(expectedError);
});
expect(error).toBeDefined();
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
}); });
it('should not throw if the payMethod id is valid', async() => { it('should not throw if the payMethod id is valid', async() => {
let error; const tx = await models.Supplier.beginTransaction({});
const supplier = await models.Supplier.findById(442); const options = {transaction: tx};
await supplier.updateAttribute('payMethodFk', 4)
.catch(e => {
error = e;
});
expect(error).not.toBeDefined(); try {
let error;
const supplier = await models.Supplier.findOne({where: {id: 442}}, options);
await supplier.updateAttribute('payMethodFk', 4, options)
.catch(e => {
error = e;
});
expect(error).not.toBeDefined();
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
}); });
it('should have checked isPayMethodChecked for payMethod hasVerfified is false', async() => { it('should have checked isPayMethodChecked for payMethod hasVerfified is false', async() => {
const supplier = await models.Supplier.findById(442); const tx = await models.Supplier.beginTransaction({});
await supplier.updateAttribute('isPayMethodChecked', true); const options = {transaction: tx};
await supplier.updateAttribute('payMethodFk', 5);
const result = await models.Supplier.findById(442); try {
const supplier = await models.Supplier.findOne({where: {id: 442}}, options);
await supplier.updateAttribute('isPayMethodChecked', true, options);
await supplier.updateAttribute('payMethodFk', 5, options);
expect(result.isPayMethodChecked).toEqual(true); const result = await models.Supplier.findOne({where: {id: 442}}, options);
expect(result.isPayMethodChecked).toEqual(true);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
}); });
it('should have unchecked isPayMethodChecked for payMethod hasVerfified is true', async() => { it('should have unchecked isPayMethodChecked for payMethod hasVerfified is true', async() => {
const supplier = await models.Supplier.findById(442); const tx = await models.Supplier.beginTransaction({});
await supplier.updateAttribute('isPayMethodChecked', true); const options = {transaction: tx};
await supplier.updateAttribute('payMethodFk', 2);
const result = await models.Supplier.findById(442); try {
const supplier = await models.Supplier.findOne({where: {id: 442}}, options);
await supplier.updateAttribute('isPayMethodChecked', true, options);
await supplier.updateAttribute('payMethodFk', 2, options);
expect(result.isPayMethodChecked).toEqual(false); const result = await models.Supplier.findOne({where: {id: 442}}, options);
expect(result.isPayMethodChecked).toEqual(false);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
}); });
it('should have unchecked isPayMethodChecked for payDay and peyDemFk', async() => { it('should have unchecked isPayMethodChecked for payDay and peyDemFk', async() => {
const supplier = await models.Supplier.findById(442); const tx = await models.Supplier.beginTransaction({});
const options = {transaction: tx};
await supplier.updateAttribute('isPayMethodChecked', true); try {
await supplier.updateAttribute('payDay', 5); const supplier = await models.Supplier.findOne({where: {id: 442}}, options);
const firstResult = await models.Supplier.findById(442); await supplier.updateAttribute('payMethodFk', 2, options);
await supplier.updateAttribute('isPayMethodChecked', true); await supplier.updateAttribute('isPayMethodChecked', true, options);
await supplier.updateAttribute('payDemFk', 1); await supplier.updateAttribute('payDay', 5, options);
const secondResult = await models.Supplier.findById(442); const firstResult = await models.Supplier.findOne({where: {id: 442}}, options);
expect(firstResult.isPayMethodChecked).toEqual(false); await supplier.updateAttribute('isPayMethodChecked', true, options);
expect(secondResult.isPayMethodChecked).toEqual(false); await supplier.updateAttribute('payDemFk', 1, options);
const secondResult = await models.Supplier.findOne({where: {id: 442}}, options);
expect(firstResult.isPayMethodChecked).toEqual(false);
expect(secondResult.isPayMethodChecked).toEqual(false);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
}); });
}); });
}); });