From c00201b2366e1bdb201446ecad5db5c098828077 Mon Sep 17 00:00:00 2001 From: carlosjr Date: Tue, 31 Aug 2021 11:01:14 +0200 Subject: [PATCH 1/4] corrected a typo --- modules/order/front/create/card.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/order/front/create/card.js b/modules/order/front/create/card.js index de04484bda..315cc82557 100644 --- a/modules/order/front/create/card.js +++ b/modules/order/front/create/card.js @@ -37,7 +37,7 @@ class Controller extends Component { }; filter = encodeURIComponent(JSON.stringify(filter)); let query = `Clients?filter=${filter}`; - this.$http.get(query).then(res=> { + this.$http.get(query).then(res => { if (res.data) { let client = res.data[0]; let defaultAddress = client.defaultAddress; From 614c23fd77d1ab1368204594a3aa8c309b29c5ba Mon Sep 17 00:00:00 2001 From: carlosjr Date: Tue, 31 Aug 2021 13:02:14 +0200 Subject: [PATCH 2/4] refactor(basicdata): order basicdata now shows only available agencies --- modules/order/front/basic-data/index.html | 14 ++++----- modules/order/front/basic-data/index.js | 26 +++++++++++++++ modules/order/front/basic-data/index.spec.js | 33 ++++++++++++++++++-- 3 files changed, 63 insertions(+), 10 deletions(-) diff --git a/modules/order/front/basic-data/index.html b/modules/order/front/basic-data/index.html index 7ad73e1be0..46c7394856 100644 --- a/modules/order/front/basic-data/index.html +++ b/modules/order/front/basic-data/index.html @@ -23,6 +23,7 @@ show-field="name" value-field="id" ng-model="$ctrl.order.clientFk" + on-change="$ctrl.getAvailableAgencies()" selection="$ctrl.selection" fields="['defaultAddressFk']"> {{::id}}: {{::name}} @@ -43,17 +44,16 @@ + ng-model="$ctrl.order.landed" + on-change="$ctrl.getAvailableAgencies()"> - {{::id}}: {{::name}} diff --git a/modules/order/front/basic-data/index.js b/modules/order/front/basic-data/index.js index 3719eb42fc..16a3cea5e3 100644 --- a/modules/order/front/basic-data/index.js +++ b/modules/order/front/basic-data/index.js @@ -20,6 +20,32 @@ class Controller extends Section { } }); } + + set order(value = {}) { + this._order = value; + + const agencyModeFk = value.agencyModeFk; + this.getAvailableAgencies(); + this._order.agencyModeFk = agencyModeFk; + } + + get order() { + return this._order; + } + + getAvailableAgencies() { + const order = this.order; + order.agencyModeFk = null; + + const params = { + addressFk: order.addressFk, + landed: order.landed + }; + if (params.landed && params.addressFk) { + this.$http.get(`Agencies/landsThatDay`, {params}) + .then(res => this._availableAgencies = res.data); + } + } } ngModule.vnComponent('vnOrderBasicData', { diff --git a/modules/order/front/basic-data/index.spec.js b/modules/order/front/basic-data/index.spec.js index 4442fadccb..f55c2c07f4 100644 --- a/modules/order/front/basic-data/index.spec.js +++ b/modules/order/front/basic-data/index.spec.js @@ -3,13 +3,15 @@ import './index.js'; describe('Order', () => { describe('Component vnOrderBasicData', () => { let $httpBackend; + let $httpParamSerializer; let controller; let $scope; beforeEach(ngModule('order')); - beforeEach(inject(($compile, _$httpBackend_, $rootScope) => { + beforeEach(inject(($compile, _$httpBackend_, $rootScope, _$httpParamSerializer_) => { $httpBackend = _$httpBackend_; + $httpParamSerializer = _$httpParamSerializer_; $scope = $rootScope.$new(); $httpBackend.whenRoute('GET', 'Addresses') @@ -30,10 +32,35 @@ describe('Order', () => { describe('constructor()', () => { it('should update the address after the client changes', async() => { - controller.selection = {id: 2, defaultAddressFk: 2}; + const addressId = 999; + const id = 444; + + controller.selection = {id: id, defaultAddressFk: addressId}; $scope.$digest(); - expect(controller.order.addressFk).toEqual(2); + expect(controller.order.addressFk).toEqual(addressId); + }); + }); + + describe('getAvailableAgencies()', () => { + it('should set agencyModeFk to null and get the available agencies if the order has landed and client', async() => { + controller.order.agencyModeFk = 999; + controller.order.clientFk = 999; + controller.order.landed = new Date(); + + const expectedAgencies = [{id: 1}, {id: 2}]; + + const paramsObj = { + addressFk: controller.order.addressFk, + landed: controller.order.landed + }; + const serializedParams = $httpParamSerializer(paramsObj); + $httpBackend.expect('GET', `Agencies/landsThatDay?${serializedParams}`).respond(expectedAgencies); + controller.getAvailableAgencies(); + $httpBackend.flush(); + + expect(controller.order.agencyModeFk).toBeDefined(); + expect(controller._availableAgencies).toEqual(expectedAgencies); }); }); }); From 0de3755d090b1b834ae82f0960ae21811013756a Mon Sep 17 00:00:00 2001 From: carlosjr Date: Tue, 31 Aug 2021 13:51:19 +0200 Subject: [PATCH 3/4] fix(e2e): order basic data e2e now uses a valid agency --- e2e/paths/07-order/02_basic_data.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/paths/07-order/02_basic_data.spec.js b/e2e/paths/07-order/02_basic_data.spec.js index 17ff5d7a62..90eaf269e9 100644 --- a/e2e/paths/07-order/02_basic_data.spec.js +++ b/e2e/paths/07-order/02_basic_data.spec.js @@ -76,7 +76,7 @@ describe('Order edit basic data path', () => { it('should be able to modify all the properties', async() => { await page.autocompleteSearch(selectors.orderBasicData.client, 'Tony Stark'); await page.autocompleteSearch(selectors.orderBasicData.address, 'Tony Stark'); - await page.autocompleteSearch(selectors.orderBasicData.agency, 'Silla247'); + await page.autocompleteSearch(selectors.orderBasicData.agency, 'Other agency'); await page.write(selectors.orderBasicData.observation, 'my observation'); await page.waitToClick(selectors.orderBasicData.saveButton); const message = await page.waitForSnackbar(); @@ -96,7 +96,7 @@ describe('Order edit basic data path', () => { const result = await page .waitToGetProperty(selectors.orderBasicData.agency, 'value'); - expect(result).toEqual('7: Silla247'); + expect(result).toEqual('Other agency'); }); it('should now confirm the observations have been edited', async() => { From 74a3b5cf890b2f39b7f48d608c165ee7dfe313d9 Mon Sep 17 00:00:00 2001 From: carlosjr Date: Tue, 31 Aug 2021 14:10:37 +0200 Subject: [PATCH 4/4] refactor(basicdata): order basicdata requires address and landed to show agencies --- modules/order/front/basic-data/index.html | 6 +++--- modules/order/front/basic-data/index.spec.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/order/front/basic-data/index.html b/modules/order/front/basic-data/index.html index 46c7394856..109168e29d 100644 --- a/modules/order/front/basic-data/index.html +++ b/modules/order/front/basic-data/index.html @@ -23,7 +23,6 @@ show-field="name" value-field="id" ng-model="$ctrl.order.clientFk" - on-change="$ctrl.getAvailableAgencies()" selection="$ctrl.selection" fields="['defaultAddressFk']"> {{::id}}: {{::name}} @@ -36,7 +35,8 @@ search-function="$search" show-field="nickname" value-field="id" - ng-model="$ctrl.order.addressFk"> + ng-model="$ctrl.order.addressFk" + on-change="$ctrl.getAvailableAgencies()"> {{::nickname}} @@ -48,7 +48,7 @@ on-change="$ctrl.getAvailableAgencies()"> { describe('getAvailableAgencies()', () => { it('should set agencyModeFk to null and get the available agencies if the order has landed and client', async() => { controller.order.agencyModeFk = 999; - controller.order.clientFk = 999; + controller.order.addressFk = 999; controller.order.landed = new Date(); const expectedAgencies = [{id: 1}, {id: 2}];