diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 02c749b3c..3df6eec8c 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -925,7 +925,11 @@ export default { thirdContactDeleteButton: 'vn-supplier-contact div:nth-child(3) vn-icon-button[icon="delete"]' }, supplierBasicData: { - + alias: 'vn-supplier-basic-data vn-textfield[ng-model="$ctrl.supplier.nickname"]', + isOfficial: 'vn-supplier-basic-data vn-check[ng-model="$ctrl.supplier.isOfficial"]', + isActive: 'vn-supplier-basic-data vn-check[ng-model="$ctrl.supplier.isActive"]', + notes: 'vn-supplier-basic-data vn-textarea[ng-model="$ctrl.supplier.note"]', + saveButton: 'vn-supplier-basic-data button[type="submit"]', }, supplierFiscalData: { socialName: 'vn-supplier-fiscal-data vn-textfield[ng-model="$ctrl.supplier.name"]', diff --git a/e2e/paths/13-supplier/02_basic_data.spec.js b/e2e/paths/13-supplier/02_basic_data.spec.js new file mode 100644 index 000000000..dfb33b6b0 --- /dev/null +++ b/e2e/paths/13-supplier/02_basic_data.spec.js @@ -0,0 +1,70 @@ +import selectors from '../../helpers/selectors.js'; +import getBrowser from '../../helpers/puppeteer'; + +describe('Supplier basic data path', () => { + let browser; + let page; + + beforeAll(async() => { + browser = await getBrowser(); + page = browser.page; + await page.loginAndModule('administrative', 'supplier'); + await page.accessToSearchResult('1'); + await page.accessToSection('supplier.card.basicData'); + }); + + afterAll(async() => { + await browser.close(); + }); + + it('should edit the basic data', async() => { + await page.clearInput(selectors.supplierBasicData.alias); + await page.write(selectors.supplierBasicData.alias, 'Plants Nick SL'); + await page.waitToClick(selectors.supplierBasicData.isOfficial); + await page.waitToClick(selectors.supplierBasicData.isActive); + await page.write(selectors.supplierBasicData.notes, 'Some notes'); + + await page.waitToClick(selectors.supplierBasicData.saveButton); + const message = await page.waitForSnackbar(); + + expect(message.text).toBe('Data saved!'); + }); + + it('should reload the section', async() => { + await page.reloadSection('supplier.card.basicData'); + }); + + it('should check the alias was edited', async() => { + const result = await page.waitToGetProperty(selectors.supplierBasicData.alias, 'value'); + + expect(result).toEqual('Plants Nick SL'); + }); + + it('should check the isOffical checkbox is now unchecked', async() => { + const result = await page.checkboxState(selectors.supplierBasicData.isOfficial); + + expect(result).toBe('unchecked'); + }); + + it('should check the isActive checkbox is now unchecked', async() => { + const result = await page.checkboxState(selectors.supplierBasicData.isActive); + + expect(result).toBe('unchecked'); + }); + + it('should check the notes were edited', async() => { + const result = await page.waitToGetProperty(selectors.supplierBasicData.notes, 'value'); + + expect(result).toEqual('Some notes'); + }); + + it('should navigate to the log section', async() => { + await page.accessToSection('supplier.card.log'); + }); + + it('should check the changes have been recorded', async() => { + const result = await page.waitToGetProperty('#newInstance:nth-child(3)', 'innerText'); + + expect(result).toEqual('note: Some notes'); + }); +}); diff --git a/e2e/paths/13-supplier/02_contact.spec.js b/e2e/paths/13-supplier/04_contact.spec.js similarity index 100% rename from e2e/paths/13-supplier/02_contact.spec.js rename to e2e/paths/13-supplier/04_contact.spec.js diff --git a/modules/supplier/front/basic-data/index.html b/modules/supplier/front/basic-data/index.html new file mode 100644 index 000000000..03622cf38 --- /dev/null +++ b/modules/supplier/front/basic-data/index.html @@ -0,0 +1,42 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/modules/supplier/front/basic-data/index.js b/modules/supplier/front/basic-data/index.js new file mode 100644 index 000000000..447118ebb --- /dev/null +++ b/modules/supplier/front/basic-data/index.js @@ -0,0 +1,10 @@ +import ngModule from '../module'; +import Section from 'salix/components/section'; + +ngModule.vnComponent('vnSupplierBasicData', { + template: require('./index.html'), + controller: Section, + bindings: { + supplier: '<' + } +}); diff --git a/modules/supplier/front/basic-data/locale/es.yml b/modules/supplier/front/basic-data/locale/es.yml new file mode 100644 index 000000000..c810be508 --- /dev/null +++ b/modules/supplier/front/basic-data/locale/es.yml @@ -0,0 +1,3 @@ +Notes: Notas +Active: Activo +Official: Oficial \ No newline at end of file diff --git a/modules/supplier/front/index.js b/modules/supplier/front/index.js index 1f5879370..8b4ac9ca2 100644 --- a/modules/supplier/front/index.js +++ b/modules/supplier/front/index.js @@ -6,6 +6,7 @@ import './descriptor'; import './index/'; import './search-panel'; import './summary'; +import './basic-data'; import './fiscal-data'; import './contact'; import './log'; diff --git a/modules/supplier/front/routes.json b/modules/supplier/front/routes.json index 4dd23c2b3..10727fecf 100644 --- a/modules/supplier/front/routes.json +++ b/modules/supplier/front/routes.json @@ -48,6 +48,7 @@ "state": "supplier.card.basicData", "component": "vn-supplier-basic-data", "description": "Basic data", + "acl": ["administrative"], "params": { "supplier": "$ctrl.supplier" } @@ -65,7 +66,7 @@ "state": "supplier.card.log", "component": "vn-supplier-log", "description": "Log" - }, + }, { "url": "/contact", "state": "supplier.card.contact",