supplier basicData + e2e #438

Merged
carlosjr merged 6 commits from 2544-supplier_basicData into dev 2020-11-05 13:35:21 +00:00
8 changed files with 133 additions and 2 deletions

View File

@ -925,7 +925,11 @@ export default {
thirdContactDeleteButton: 'vn-supplier-contact div:nth-child(3) vn-icon-button[icon="delete"]' thirdContactDeleteButton: 'vn-supplier-contact div:nth-child(3) vn-icon-button[icon="delete"]'
}, },
supplierBasicData: { 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: { supplierFiscalData: {
socialName: 'vn-supplier-fiscal-data vn-textfield[ng-model="$ctrl.supplier.name"]', socialName: 'vn-supplier-fiscal-data vn-textfield[ng-model="$ctrl.supplier.name"]',

View File

@ -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');
});
});

View File

@ -0,0 +1,42 @@
<mg-ajax path="Suppliers/{{patch.params.id}}" options="vnPatch"></mg-ajax>
<vn-watcher
vn-id="watcher"
data="$ctrl.supplier"
form="form"
save="patch">
</vn-watcher>
<form name="form" ng-submit="watcher.submit()" class="vn-w-md">
<vn-card class="vn-pa-lg">
<vn-horizontal>
<vn-textfield
vn-one
label="Alias"
ng-model="$ctrl.supplier.nickname"
rule
vn-focus>
</vn-textfield>
</vn-horizontal>
<vn-horizontal>
<vn-check
label="Official"
ng-model="$ctrl.supplier.isOfficial">
</vn-check>
<vn-check
label="Active"
ng-model="$ctrl.supplier.isActive">
</vn-check>
</vn-horizontal>
<vn-horizontal>
<vn-textarea
vn-one
label="Notes"
ng-model="$ctrl.supplier.note"
rule>
</vn-textarea>
</vn-horizontal>
</vn-card>
<vn-button-bar>
<vn-submit label="Save"></vn-submit>
<vn-button label="Undo changes" ng-if="watcher.dataChanged()" ng-click="watcher.loadOriginalData()"></vn-button>
</vn-button-bar>
</form>

View File

@ -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: '<'
}
});

View File

@ -0,0 +1,3 @@
Notes: Notas
Active: Activo
Official: Oficial

View File

@ -6,6 +6,7 @@ import './descriptor';
import './index/'; import './index/';
import './search-panel'; import './search-panel';
import './summary'; import './summary';
import './basic-data';
import './fiscal-data'; import './fiscal-data';
import './contact'; import './contact';
import './log'; import './log';

View File

@ -48,6 +48,7 @@
"state": "supplier.card.basicData", "state": "supplier.card.basicData",
"component": "vn-supplier-basic-data", "component": "vn-supplier-basic-data",
"description": "Basic data", "description": "Basic data",
"acl": ["administrative"],
"params": { "params": {
"supplier": "$ctrl.supplier" "supplier": "$ctrl.supplier"
} }
@ -65,7 +66,7 @@
"state": "supplier.card.log", "state": "supplier.card.log",
"component": "vn-supplier-log", "component": "vn-supplier-log",
"description": "Log" "description": "Log"
}, },
{ {
"url": "/contact", "url": "/contact",
"state": "supplier.card.contact", "state": "supplier.card.contact",