From be85c784eda909535c699ec659287a3f410b0d1a Mon Sep 17 00:00:00 2001 From: Carlos Jimenez <=> Date: Thu, 23 Aug 2018 09:09:21 +0200 Subject: [PATCH] #529 item/updateTaxes.js Backend unit tests --- .../methods/item/specs/updateTaxes.spec.js | 40 +++++++++++++++++++ .../common/methods/item/updateTaxes.js | 4 +- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 services/loopback/common/methods/item/specs/updateTaxes.spec.js diff --git a/services/loopback/common/methods/item/specs/updateTaxes.spec.js b/services/loopback/common/methods/item/specs/updateTaxes.spec.js new file mode 100644 index 0000000000..aa30ed8cd6 --- /dev/null +++ b/services/loopback/common/methods/item/specs/updateTaxes.spec.js @@ -0,0 +1,40 @@ +const app = require(`${servicesDir}/item/server/server`); + +describe('item updateTaxes()', () => { + afterAll(async() => { + let taxesInFixtures = [{id: 509368, taxClassFk: 1}]; + + await app.models.Item.updateTaxes(taxesInFixtures); + }); + + it('should throw an error if the taxClassFk is blank', async() => { + let error; + let taxes = [{id: 509368, taxClassFk: undefined}]; + + await app.models.Item.updateTaxes(taxes) + .catch(err => { + expect(err.message).toEqual('Tax class cannot be blank'); + error = err; + }); + + expect(error).toBeDefined(); + }); + + it('should update the tax of a given country of an item', async() => { + let taxCountry = await app.models.ItemTaxCountry.findById(509368); + + expect(taxCountry.taxClassFk).toEqual(1); + + let taxes = [{id: 509368, taxClassFk: 2}]; + + let result = await app.models.Item.updateTaxes(taxes); + + expect(result).toBeTruthy(); + }); + + it('should confirm the tax class was updated', async() => { + let taxCountry = await app.models.ItemTaxCountry.findById(509368); + + expect(taxCountry.taxClassFk).toEqual(2); + }); +}); diff --git a/services/loopback/common/methods/item/updateTaxes.js b/services/loopback/common/methods/item/updateTaxes.js index 02065be20b..53c073dbf7 100644 --- a/services/loopback/common/methods/item/updateTaxes.js +++ b/services/loopback/common/methods/item/updateTaxes.js @@ -11,7 +11,7 @@ module.exports = Self => { description: 'The item id', http: {source: 'path'} }, { - arg: 'niches', + arg: 'taxes', type: ['object'], required: true, description: 'The list of taxes to update', @@ -27,7 +27,7 @@ module.exports = Self => { } }); - Self.updateTaxes = async(id, taxes) => { + Self.updateTaxes = async taxes => { let promises = []; for (let tax of taxes) { if (!tax.taxClassFk)