diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 1740db7ca8..0e6b14b5e9 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -231,23 +231,6 @@ export default { saveButton: 'button[type=submit]', watcher: 'vn-client-fiscal-data vn-watcher' }, - clientBillingData: { - payMethod: 'vn-client-billing-data vn-autocomplete[ng-model="$ctrl.client.payMethodFk"]', - IBAN: 'vn-client-billing-data vn-textfield[ng-model="$ctrl.client.iban"]', - dueDay: 'vn-client-billing-data vn-input-number[ng-model="$ctrl.client.dueDay"]', - receivedCoreLCRCheckbox: 'vn-client-billing-data vn-check[label="Received LCR"]', - receivedCoreVNLCheckbox: 'vn-client-billing-data vn-check[label="Received core VNL"]', - receivedB2BVNLCheckbox: 'vn-client-billing-data vn-check[label="Received B2B VNL"]', - swiftBic: 'vn-client-billing-data vn-autocomplete[ng-model="$ctrl.client.bankEntityFk"]', - newBankEntityButton: 'vn-client-billing-data vn-icon-button[vn-tooltip="New bank entity"] > button', - newBankEntityName: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.name"]', - newBankEntityBIC: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.bic"]', - newBankEntityCountry: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.data.countryFk"]', - newBankEntityCode: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.id"]', - acceptBankEntityButton: '.vn-dialog.shown button[response="accept"]', - saveButton: 'vn-client-billing-data button[type=submit]', - watcher: 'vn-client-billing-data vn-watcher' - }, clientAddresses: { addressesButton: 'vn-left-menu a[ui-sref="client.card.address.index"]', createAddress: 'vn-client-address-index vn-float-button', diff --git a/e2e/paths/01-salix/03_smartTable_searchBar_integrations.spec.js b/e2e/paths/01-salix/03_smartTable_searchBar_integrations.spec.js index f9844d5f73..c4f091d1f7 100644 --- a/e2e/paths/01-salix/03_smartTable_searchBar_integrations.spec.js +++ b/e2e/paths/01-salix/03_smartTable_searchBar_integrations.spec.js @@ -15,81 +15,55 @@ describe('SmartTable SearchBar integration', () => { await browser.close(); }); - describe('as filters in smart-table section', () => { - it('should search by type in searchBar', async() => { - await page.waitToClick(selectors.itemsIndex.openAdvancedSearchButton); - await page.autocompleteSearch(selectors.itemsIndex.advancedSearchItemType, 'Anthurium'); - await page.waitToClick(selectors.itemsIndex.advancedSearchButton); - await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 3); + it('should search by type in searchBar, reload page and have same results', async() => { + await page.waitToClick(selectors.itemsIndex.openAdvancedSearchButton); + await page.autocompleteSearch(selectors.itemsIndex.advancedSearchItemType, 'Anthurium'); + await page.waitToClick(selectors.itemsIndex.advancedSearchButton); + await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 3); + + await page.reload({ + waitUntil: 'networkidle2' }); - it('should reload page and have same results', async() => { - await page.reload({ - waitUntil: 'networkidle2' - }); + await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 3); - await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 3); + await page.waitToClick(selectors.itemsIndex.advancedSmartTableButton); + await page.write(selectors.itemsIndex.advancedSmartTableGrouping, '1'); + await page.keyboard.press('Enter'); + await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 2); + + await page.reload({ + waitUntil: 'networkidle2' }); - it('should search by grouping in smartTable', async() => { - await page.waitToClick(selectors.itemsIndex.advancedSmartTableButton); - await page.write(selectors.itemsIndex.advancedSmartTableGrouping, '1'); - await page.keyboard.press('Enter'); - await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 2); - }); - - it('should now reload page and have same results', async() => { - await page.reload({ - waitUntil: 'networkidle2' - }); - - await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 2); - }); + await page.waitForNumberOfElements(selectors.itemsIndex.searchResult, 2); }); - describe('as filters in section without smart-table', () => { - it('go to zone section', async() => { - await page.loginAndModule('salesPerson', 'zone'); - await page.waitToClick(selectors.globalItems.searchButton); - }); + it('should filter in section without smart-table and search in searchBar go to zone section', async() => { + await page.loginAndModule('salesPerson', 'zone'); + await page.waitToClick(selectors.globalItems.searchButton); - it('should search in searchBar first time', async() => { - await page.doSearch('A'); - const count = await page.countElement(selectors.zoneIndex.searchResult); + await page.doSearch('A'); + const firstCount = await page.countElement(selectors.zoneIndex.searchResult); - expect(count).toEqual(7); - }); + await page.doSearch('A'); + const secondCount = await page.countElement(selectors.zoneIndex.searchResult); - it('should search in searchBar second time', async() => { - await page.doSearch('A'); - const count = await page.countElement(selectors.zoneIndex.searchResult); - - expect(count).toEqual(7); - }); - - it('should search in searchBar third time', async() => { - await page.doSearch('A'); - const count = await page.countElement(selectors.zoneIndex.searchResult); - - expect(count).toEqual(7); - }); + expect(firstCount).toEqual(7); + expect(secondCount).toEqual(7); }); - describe('as orders', () => { - it('should order by first id', async() => { - await page.loginAndModule('developer', 'item'); - await page.accessToSection('item.fixedPrice'); - await page.keyboard.press('Enter'); + it('should order orders by first id and order by last id, reload page and have same order', async() => { + await page.loginAndModule('developer', 'item'); + await page.accessToSection('item.fixedPrice'); + await page.keyboard.press('Enter'); - await page.waitForTextInField(selectors.itemFixedPrice.firstItemID, '1'); - }); + await page.waitForTextInField(selectors.itemFixedPrice.firstItemID, '1'); - it('should order by last id, reload page and have same order', async() => { - await page.waitToClick(selectors.itemFixedPrice.orderColumnId); - await page.reload({ - waitUntil: 'networkidle2' - }); - await page.waitForTextInField(selectors.itemFixedPrice.firstItemID, '13'); + await page.waitToClick(selectors.itemFixedPrice.orderColumnId); + await page.reload({ + waitUntil: 'networkidle2' }); + await page.waitForTextInField(selectors.itemFixedPrice.firstItemID, '13'); }); }); diff --git a/e2e/paths/02-client/03_edit_fiscal_data.spec.js b/e2e/paths/02-client/03_edit_fiscal_data.spec.js index 2a56cb5357..0babb5396d 100644 --- a/e2e/paths/02-client/03_edit_fiscal_data.spec.js +++ b/e2e/paths/02-client/03_edit_fiscal_data.spec.js @@ -171,100 +171,40 @@ describe('Client Edit fiscalData path', () => { expect(result).toEqual('SMASH'); }); - it('should confirm the fiscal id have been edited', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.fiscalId, 'value'); + it('should confirm the fiscal data have been edited', async() => { + const fiscalId = await page.waitToGetProperty(selectors.clientFiscalData.fiscalId, 'value'); + const address = await page.waitToGetProperty(selectors.clientFiscalData.address, 'value'); + const postcode = await page.waitToGetProperty(selectors.clientFiscalData.postcode, 'value'); + const sageTax = await page.waitToGetProperty(selectors.clientFiscalData.sageTax, 'value'); + const sageTransaction = await page.waitToGetProperty(selectors.clientFiscalData.sageTransaction, 'value'); + const city = await page.waitToGetProperty(selectors.clientFiscalData.city, 'value'); + const province = await page.waitToGetProperty(selectors.clientFiscalData.province, 'value'); + const country = await page.waitToGetProperty(selectors.clientFiscalData.country, 'value'); + const active = await page.checkboxState(selectors.clientFiscalData.activeCheckbox); + const frozen = await page.checkboxState(selectors.clientFiscalData.frozenCheckbox); + const hasToInvoice = await page.checkboxState(selectors.clientFiscalData.hasToInvoiceCheckbox); + const vies = await page.checkboxState(selectors.clientFiscalData.viesCheckbox); + const notifyByMail = await page.checkboxState(selectors.clientFiscalData.notifyByMailCheckbox); + const invoiceByAddress = await page.checkboxState(selectors.clientFiscalData.invoiceByAddressCheckbox); + const equalizationTax = await page.checkboxState(selectors.clientFiscalData.equalizationTaxCheckbox); + const verifiedData = await page.checkboxState(selectors.clientFiscalData.verifiedDataCheckbox); - expect(result).toEqual('94980061C'); - }); - - it('should confirm the address have been edited', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.address, 'value'); - - expect(result).toEqual('Somewhere edited'); - }); - - it('should confirm the postcode have been edited', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.postcode, 'value'); - - expect(result).toContain('46000'); - }); - - it('should confirm the sageTax have been edited', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.sageTax, 'value'); - - expect(result).toEqual('Operaciones no sujetas'); - }); - - it('should confirm the sageTransaction have been edited', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.sageTransaction, 'value'); - - expect(result).toEqual('36: Regularización de inversiones'); - }); - - it('should confirm the city have been autocompleted', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.city, 'value'); - - expect(result).toEqual('Valencia'); - }); - - it(`should confirm the province have been autocompleted`, async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.province, 'value'); - - expect(result).toContain('Province one'); - }); - - it('should confirm the country have been autocompleted', async() => { - const result = await page.waitToGetProperty(selectors.clientFiscalData.country, 'value'); - - expect(result).toEqual('España'); - }); - - it('should confirm active checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.activeCheckbox); - - expect(result).toBe('unchecked'); - }); - - it('should confirm frozen checkbox is checked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.frozenCheckbox); - - expect(result).toBe('checked'); - }); - - it('should confirm Has to invoice checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.hasToInvoiceCheckbox); - - expect(result).toBe('unchecked'); - }); - - it('should confirm Vies checkbox is checked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.viesCheckbox); - - expect(result).toBe('checked'); - }); - - it('should confirm Notify by email checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.notifyByMailCheckbox); - - expect(result).toBe('unchecked'); - }); - - it('should confirm invoice by address checkbox is checked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.invoiceByAddressCheckbox); - - expect(result).toBe('checked'); - }); - - it('should confirm Equalization tax checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.equalizationTaxCheckbox); - - expect(result).toBe('unchecked'); - }); - - it('should confirm Verified data checkbox is checked', async() => { - const result = await page.checkboxState(selectors.clientFiscalData.verifiedDataCheckbox); - - expect(result).toBe('checked'); + expect(fiscalId).toEqual('94980061C'); + expect(address).toEqual('Somewhere edited'); + expect(postcode).toContain('46000'); + expect(sageTax).toEqual('Operaciones no sujetas'); + expect(sageTransaction).toEqual('Regularización de inversiones'); + expect(city).toEqual('Valencia'); + expect(province).toContain('Province one'); + expect(country).toEqual('España'); + expect(active).toBe('unchecked'); + expect(frozen).toBe('checked'); + expect(hasToInvoice).toBe('unchecked'); + expect(vies).toBe('checked'); + expect(notifyByMail).toBe('unchecked'); + expect(invoiceByAddress).toBe('checked'); + expect(equalizationTax).toBe('unchecked'); + expect(verifiedData).toBe('checked'); }); // confirm invoice by address checkbox gets checked if the EQtax differs between addresses step 1 diff --git a/e2e/paths/02-client/04_edit_billing_data.spec.js b/e2e/paths/02-client/04_edit_billing_data.spec.js index de3270f934..10eb854061 100644 --- a/e2e/paths/02-client/04_edit_billing_data.spec.js +++ b/e2e/paths/02-client/04_edit_billing_data.spec.js @@ -1,6 +1,23 @@ -import selectors from '../../helpers/selectors'; import getBrowser from '../../helpers/puppeteer'; +const $ = { + payMethod: 'vn-client-billing-data vn-autocomplete[ng-model="$ctrl.client.payMethodFk"]', + IBAN: 'vn-client-billing-data vn-textfield[ng-model="$ctrl.client.iban"]', + dueDay: 'vn-client-billing-data vn-input-number[ng-model="$ctrl.client.dueDay"]', + receivedCoreLCRCheckbox: 'vn-client-billing-data vn-check[label="Received LCR"]', + receivedCoreVNLCheckbox: 'vn-client-billing-data vn-check[label="Received core VNL"]', + receivedB2BVNLCheckbox: 'vn-client-billing-data vn-check[label="Received B2B VNL"]', + swiftBic: 'vn-client-billing-data vn-autocomplete[ng-model="$ctrl.client.bankEntityFk"]', + newBankEntityButton: 'vn-client-billing-data vn-icon-button[vn-tooltip="New bank entity"] > button', + newBankEntityName: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.name"]', + newBankEntityBIC: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.bic"]', + newBankEntityCountry: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.data.countryFk"]', + newBankEntityCode: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.data.id"]', + acceptBankEntityButton: '.vn-dialog.shown button[response="accept"]', + saveButton: 'vn-client-billing-data button[type=submit]', + watcher: 'vn-client-billing-data vn-watcher' +}; + describe('Client Edit billing data path', () => { let browser; let page; @@ -17,93 +34,72 @@ describe('Client Edit billing data path', () => { }); it(`should attempt to edit the billing data without an IBAN but fail`, async() => { - await page.autocompleteSearch(selectors.clientBillingData.payMethod, 'PayMethod with IBAN'); - await page.autocompleteSearch(selectors.clientBillingData.swiftBic, 'BBKKESMMMMM'); - await page.clearInput(selectors.clientBillingData.dueDay); - await page.write(selectors.clientBillingData.dueDay, '60'); - await page.waitForTextInField(selectors.clientBillingData.dueDay, '60'); - await page.waitToClick(selectors.clientBillingData.receivedCoreLCRCheckbox); - await page.waitToClick(selectors.clientBillingData.receivedCoreVNLCheckbox); - await page.waitToClick(selectors.clientBillingData.receivedB2BVNLCheckbox); - await page.waitToClick(selectors.clientBillingData.saveButton); + await page.autocompleteSearch($.payMethod, 'PayMethod with IBAN'); + await page.autocompleteSearch($.swiftBic, 'BBKKESMMMMM'); + await page.clearInput($.dueDay); + await page.write($.dueDay, '60'); + await page.waitForTextInField($.dueDay, '60'); + await page.waitToClick($.receivedCoreLCRCheckbox); + await page.waitToClick($.receivedCoreVNLCheckbox); + await page.waitToClick($.receivedB2BVNLCheckbox); + await page.waitToClick($.saveButton); const message = await page.waitForSnackbar(); expect(message.text).toContain('That payment method requires an IBAN'); }); it(`should create a new BIC code`, async() => { - await page.waitToClick(selectors.clientBillingData.newBankEntityButton); - await page.write(selectors.clientBillingData.newBankEntityName, 'Gotham City Bank'); - await page.write(selectors.clientBillingData.newBankEntityBIC, 'GTHMCT'); - await page.autocompleteSearch(selectors.clientBillingData.newBankEntityCountry, 'España'); - await page.write(selectors.clientBillingData.newBankEntityCode, '9999'); - await page.waitToClick(selectors.clientBillingData.acceptBankEntityButton); + await page.waitToClick($.newBankEntityButton); + await page.write($.newBankEntityName, 'Gotham City Bank'); + await page.write($.newBankEntityBIC, 'GTHMCT'); + await page.autocompleteSearch($.newBankEntityCountry, 'España'); + await page.write($.newBankEntityCode, '9999'); + await page.waitToClick($.acceptBankEntityButton); const message = await page.waitForSnackbar(); - await page.waitForTextInField(selectors.clientBillingData.swiftBic, 'Gotham City Bank'); - const newcode = await page.waitToGetProperty(selectors.clientBillingData.swiftBic, 'value'); - - expect(newcode).toEqual('GTHMCT Gotham City Bank'); + await page.waitForTextInField($.swiftBic, 'GTHMCT'); + const newcode = await page.waitToGetProperty($.swiftBic, 'value'); + expect(newcode).toEqual('GTHMCT'); expect(message.text).toContain('Data saved!'); }); it(`should confirm the IBAN pay method was sucessfully saved`, async() => { - const payMethod = await page.waitToGetProperty(selectors.clientBillingData.payMethod, 'value'); + const payMethod = await page.waitToGetProperty($.payMethod, 'value'); expect(payMethod).toEqual('PayMethod with IBAN'); }); it(`should clear the BIC code field, update the IBAN to see how he BIC code autocompletes`, async() => { - await page.write(selectors.clientBillingData.IBAN, 'ES9121000418450200051332'); + await page.write($.IBAN, 'ES9121000418450200051332'); await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); - await page.waitForTextInField(selectors.clientBillingData.swiftBic, 'caixesbb'); - let automaticCode = await page.waitToGetProperty(selectors.clientBillingData.swiftBic, 'value'); + await page.waitForTextInField($.swiftBic, 'caixesbb'); + let automaticCode = await page.waitToGetProperty($.swiftBic, 'value'); - expect(automaticCode).toEqual('CAIXESBB Caixa Bank'); + expect(automaticCode).toEqual('CAIXESBB'); }); it(`should save the form with all its new data`, async() => { - await page.waitForWatcherData(selectors.clientBillingData.watcher); - await page.waitToClick(selectors.clientBillingData.saveButton); + await page.waitForWatcherData($.watcher); + await page.waitToClick($.saveButton); const message = await page.waitForSnackbar(); expect(message.text).toContain('Notification sent!'); }); - it('should confirm the due day have been edited', async() => { - const dueDate = await page.waitToGetProperty(selectors.clientBillingData.dueDay, 'value'); + it('should confirm the billing data have been edited', async() => { + const dueDate = await page.waitToGetProperty($.dueDay, 'value'); + const IBAN = await page.waitToGetProperty($.IBAN, 'value'); + const swiftBic = await page.waitToGetProperty($.swiftBic, 'value'); + const receivedCoreLCR = await page.checkboxState($.receivedCoreLCRCheckbox); + const receivedCoreVNL = await page.checkboxState($.receivedCoreVNLCheckbox); + const receivedB2BVNL = await page.checkboxState($.receivedB2BVNLCheckbox); expect(dueDate).toEqual('60'); - }); - - it('should confirm the IBAN was saved', async() => { - const IBAN = await page.waitToGetProperty(selectors.clientBillingData.IBAN, 'value'); - expect(IBAN).toEqual('ES9121000418450200051332'); - }); - - it('should confirm the swift / BIC code was saved', async() => { - const code = await page.waitToGetProperty(selectors.clientBillingData.swiftBic, 'value'); - - expect(code).toEqual('CAIXESBB Caixa Bank'); - }); - - it('should confirm Received LCR checkbox is checked', async() => { - const result = await page.checkboxState(selectors.clientBillingData.receivedCoreLCRCheckbox); - - expect(result).toBe('checked'); - }); - - it('should confirm Received core VNL checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientBillingData.receivedCoreVNLCheckbox); - - expect(result).toBe('unchecked'); - }); - - it('should confirm Received B2B VNL checkbox is unchecked', async() => { - const result = await page.checkboxState(selectors.clientBillingData.receivedB2BVNLCheckbox); - - expect(result).toBe('unchecked'); + expect(swiftBic).toEqual('CAIXESBB'); + expect(receivedCoreLCR).toBe('checked'); + expect(receivedCoreVNL).toBe('unchecked'); + expect(receivedB2BVNL).toBe('unchecked'); }); }); diff --git a/modules/client/front/billing-data/index.html b/modules/client/front/billing-data/index.html index 410681930c..a3c8933efb 100644 --- a/modules/client/front/billing-data/index.html +++ b/modules/client/front/billing-data/index.html @@ -46,7 +46,7 @@ label="Swift / BIC" url="BankEntities" ng-model="$ctrl.client.bankEntityFk" - fields="['name']" + fields="['name', 'bic']" initial-data="$ctrl.client.bankEntityFk" on-change="$ctrl.autofillBic()" search-function="{or: [{bic: {like: $search +'%'}}, {name: {like: '%'+ $search +'%'}}]}" @@ -54,7 +54,10 @@ show-field="bic" vn-acl="salesAssistant, hr" disabled="$ctrl.ibanCountry == 'ES'"> - {{bic}} {{name}} + +
{{::bic}}
+
{{::name}}
+
- \ No newline at end of file + diff --git a/modules/client/front/fiscal-data/index.html b/modules/client/front/fiscal-data/index.html index 4b1219f313..d232d6dabe 100644 --- a/modules/client/front/fiscal-data/index.html +++ b/modules/client/front/fiscal-data/index.html @@ -1,52 +1,111 @@ - + - + - + - +
- + - + - + - + - + vn-acl="salesAssistant" + order="transaction" + rule> {{id}}: {{transaction}} - + {{code}} - {{town.name}} ({{town.province.name}}, {{town.province.country.country}}) - + - + {{name}}, {{province.name}} ({{province.country.country}}) @@ -54,48 +113,83 @@ - + {{name}} ({{country.country}}) - + - + - + - + - + - + - + - - + - - @@ -103,17 +197,26 @@ - - + - - - - \ No newline at end of file + + diff --git a/modules/item/front/fixed-price/index.html b/modules/item/front/fixed-price/index.html index 9a143d10d9..ebdb29d073 100644 --- a/modules/item/front/fixed-price/index.html +++ b/modules/item/front/fixed-price/index.html @@ -81,7 +81,7 @@ class="dense" url="Items/withName" ng-model="price.itemFk" - show-field="name" + show-field="id" value-field="id" search-function="$ctrl.itemSearchFunc($search)" on-change="$ctrl.upsertPrice(price, true)"