Merge pull request 'e2e paths for invoiceIn summary, descriptor and basicData' (#604) from 2886-invoiceIn_descriptor_n_basicdata_e2e into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #604 Reviewed-by: Joan Sanchez <joan@verdnatura.es>
This commit is contained in:
commit
7e51fe3775
|
@ -904,6 +904,25 @@ export default {
|
||||||
ticketOne: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(1)',
|
ticketOne: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(1)',
|
||||||
ticketTwo: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(2)'
|
ticketTwo: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(2)'
|
||||||
},
|
},
|
||||||
|
invoiceInSummary: {
|
||||||
|
supplierRef: 'vn-invoice-in-summary vn-label-value:nth-child(2) > section > span'
|
||||||
|
},
|
||||||
|
invoiceInDescriptor: {
|
||||||
|
moreMenu: 'vn-invoice-in-descriptor vn-icon-button[icon=more_vert]',
|
||||||
|
moreMenuDeleteInvoiceIn: '.vn-menu [name="deleteInvoice"]',
|
||||||
|
acceptDeleteButton: '.vn-confirm.shown button[response="accept"]'
|
||||||
|
},
|
||||||
|
invoiceInBasicData: {
|
||||||
|
issued: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.issued"]',
|
||||||
|
operated: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.operated"]',
|
||||||
|
supplier: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.supplierFk"]',
|
||||||
|
supplierRef: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.supplierRef"]',
|
||||||
|
bookEntried: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.bookEntried"]',
|
||||||
|
booked: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.booked"]',
|
||||||
|
currency: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.currencyFk"]',
|
||||||
|
company: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.companyFk"]',
|
||||||
|
save: 'vn-invoice-in-basic-data button[type=submit]'
|
||||||
|
},
|
||||||
travelIndex: {
|
travelIndex: {
|
||||||
anySearchResult: 'vn-travel-index vn-tbody > a',
|
anySearchResult: 'vn-travel-index vn-tbody > a',
|
||||||
firstSearchResult: 'vn-travel-index vn-tbody > a:nth-child(1)',
|
firstSearchResult: 'vn-travel-index vn-tbody > a:nth-child(1)',
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
import selectors from '../../helpers/selectors.js';
|
||||||
|
import getBrowser from '../../helpers/puppeteer';
|
||||||
|
|
||||||
|
describe('InvoiceIn summary path', () => {
|
||||||
|
let browser;
|
||||||
|
let page;
|
||||||
|
|
||||||
|
beforeAll(async() => {
|
||||||
|
browser = await getBrowser();
|
||||||
|
page = browser.page;
|
||||||
|
await page.loginAndModule('administrative', 'invoiceIn');
|
||||||
|
await page.accessToSearchResult('1');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async() => {
|
||||||
|
await browser.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should reach the summary section', async() => {
|
||||||
|
await page.waitForState('invoiceIn.card.summary');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should contain some basic data from the invoice', async() => {
|
||||||
|
const result = await page.waitToGetProperty(selectors.invoiceInSummary.supplierRef, 'innerText');
|
||||||
|
|
||||||
|
expect(result).toEqual('1234');
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,38 @@
|
||||||
|
import selectors from '../../helpers/selectors.js';
|
||||||
|
import getBrowser from '../../helpers/puppeteer';
|
||||||
|
|
||||||
|
describe('InvoiceIn descriptor path', () => {
|
||||||
|
let browser;
|
||||||
|
let page;
|
||||||
|
|
||||||
|
beforeAll(async() => {
|
||||||
|
browser = await getBrowser();
|
||||||
|
page = browser.page;
|
||||||
|
await page.loginAndModule('administrative', 'invoiceIn');
|
||||||
|
await page.accessToSearchResult('10');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async() => {
|
||||||
|
await browser.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should delete the invoiceIn using the descriptor more menu', async() => {
|
||||||
|
await page.waitToClick(selectors.invoiceInDescriptor.moreMenu);
|
||||||
|
await page.waitToClick(selectors.invoiceInDescriptor.moreMenuDeleteInvoiceIn);
|
||||||
|
await page.waitToClick(selectors.invoiceInDescriptor.acceptDeleteButton);
|
||||||
|
const message = await page.waitForSnackbar();
|
||||||
|
|
||||||
|
expect(message.text).toContain('InvoiceIn deleted');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have been relocated to the invoiceOut index', async() => {
|
||||||
|
await page.waitForState('invoiceIn.index');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should search for the deleted invouceOut to find no results`, async() => {
|
||||||
|
await page.doSearch('10');
|
||||||
|
const nResults = await page.countElement(selectors.invoiceOutIndex.searchResult);
|
||||||
|
|
||||||
|
expect(nResults).toEqual(0);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,64 @@
|
||||||
|
import selectors from '../../helpers/selectors.js';
|
||||||
|
import getBrowser from '../../helpers/puppeteer';
|
||||||
|
|
||||||
|
describe('InvoiceIn basic data path', () => {
|
||||||
|
let browser;
|
||||||
|
let page;
|
||||||
|
|
||||||
|
beforeAll(async() => {
|
||||||
|
browser = await getBrowser();
|
||||||
|
page = browser.page;
|
||||||
|
await page.loginAndModule('administrative', 'invoiceIn');
|
||||||
|
await page.accessToSearchResult('1');
|
||||||
|
await page.accessToSection('invoiceIn.card.basicData');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async() => {
|
||||||
|
await browser.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should edit the invoiceIn basic data`, async() => {
|
||||||
|
const now = new Date();
|
||||||
|
await page.pickDate(selectors.invoiceInBasicData.issued, now);
|
||||||
|
await page.pickDate(selectors.invoiceInBasicData.operated, now);
|
||||||
|
await page.autocompleteSearch(selectors.invoiceInBasicData.supplier, 'Verdnatura');
|
||||||
|
await page.clearInput(selectors.invoiceInBasicData.supplierRef);
|
||||||
|
await page.write(selectors.invoiceInBasicData.supplierRef, '9999');
|
||||||
|
await page.pickDate(selectors.invoiceInBasicData.bookEntried, now);
|
||||||
|
await page.pickDate(selectors.invoiceInBasicData.booked, now);
|
||||||
|
await page.autocompleteSearch(selectors.invoiceInBasicData.currency, 'Dollar USA');
|
||||||
|
await page.autocompleteSearch(selectors.invoiceInBasicData.company, 'ORN');
|
||||||
|
await page.waitToClick(selectors.invoiceInBasicData.save);
|
||||||
|
const message = await page.waitForSnackbar();
|
||||||
|
|
||||||
|
expect(message.text).toContain('Data saved!');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should confirm the invoiceIn supplier was edited`, async() => {
|
||||||
|
await page.reloadSection('invoiceIn.card.basicData');
|
||||||
|
const result = await page.waitToGetProperty(selectors.invoiceInBasicData.supplier, 'value');
|
||||||
|
|
||||||
|
expect(result).toContain('Verdnatura');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should confirm the invoiceIn supplierRef was edited`, async() => {
|
||||||
|
const result = await page
|
||||||
|
.waitToGetProperty(selectors.invoiceInBasicData.supplierRef, 'value');
|
||||||
|
|
||||||
|
expect(result).toEqual('9999');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should confirm the invoiceIn currency was edited`, async() => {
|
||||||
|
const result = await page
|
||||||
|
.waitToGetProperty(selectors.invoiceInBasicData.currency, 'value');
|
||||||
|
|
||||||
|
expect(result).toEqual('Dollar USA');
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should confirm the invoiceIn company was edited`, async() => {
|
||||||
|
const result = await page
|
||||||
|
.waitToGetProperty(selectors.invoiceInBasicData.company, 'value');
|
||||||
|
|
||||||
|
expect(result).toEqual('ORN');
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue