Merge pull request 'entry observations section unit test + e2e' (#493) from 2685-create_test_e2e_entryObservation into dev
gitea/salix/pipeline/head This commit looks good Details

Reviewed-on: #493
Reviewed-by: Carlos Jimenez Ruiz <carlosjr@verdnatura.es>
This commit is contained in:
Joan Sanchez 2021-01-04 08:26:49 +00:00
commit ef7449a4eb
4 changed files with 105 additions and 1 deletions

View File

@ -939,6 +939,14 @@ export default {
newEntryCompany: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.companyFk"]', newEntryCompany: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.companyFk"]',
saveNewEntry: 'vn-entry-create button[type="submit"]' saveNewEntry: 'vn-entry-create button[type="submit"]'
}, },
entryObservations: {
addNewObservation: 'vn-entry-observation vn-icon-button[icon="add_circle"]',
firstObservationType: 'vn-entry-observation vn-horizontal:nth-child(1) > vn-autocomplete[ng-model="observation.observationTypeFk"]',
secondObservationType: 'vn-entry-observation vn-horizontal:nth-child(2) > vn-autocomplete[ng-model="observation.observationTypeFk"]',
firstObservationDescription: 'vn-entry-observation vn-horizontal:nth-child(1) > vn-textfield[ng-model="observation.description"]',
secondObservationDescription: 'vn-entry-observation vn-horizontal:nth-child(2) > vn-textfield[ng-model="observation.description"]',
saveObservationsButton: 'vn-entry-observation vn-submit > button'
},
supplierSummary: { supplierSummary: {
header: 'vn-supplier-summary > vn-card > h5', header: 'vn-supplier-summary > vn-card > h5',
basicDataId: 'vn-supplier-summary vn-label-value[label="Id"]', basicDataId: 'vn-supplier-summary vn-label-value[label="Id"]',

View File

@ -0,0 +1,66 @@
import selectors from '../../helpers/selectors.js';
import getBrowser from '../../helpers/puppeteer';
describe('Entry observations path', () => {
let browser;
let page;
beforeAll(async() => {
browser = await getBrowser();
page = browser.page;
// await page.loginAndModule('buyer', 'entry'); // access denied, awaiting role confirmation
await page.loginAndModule('developer', 'entry');
await page.accessToSearchResult('2');
await page.accessToSection('entry.card.observation');
});
afterAll(async() => {
await browser.close();
});
it(`should add two new observations of the same type then fail to save as they can't be repeated`, async() => {
await page.waitToClick(selectors.entryObservations.addNewObservation);
await page.waitToClick(selectors.entryObservations.addNewObservation);
await page.autocompleteSearch(selectors.entryObservations.firstObservationType, 'comercial');
await page.autocompleteSearch(selectors.entryObservations.secondObservationType, 'comercial');
await page.write(selectors.entryObservations.firstObservationDescription, 'first observation');
await page.write(selectors.entryObservations.secondObservationDescription, 'second observation');
await page.waitToClick(selectors.entryObservations.saveObservationsButton);
const message = await page.waitForSnackbar();
expect(message.text).toContain(`The observation type can't be repeated`);
});
it('should set the 2nd observation of a different one and successfully save both', async() => {
await page.autocompleteSearch(selectors.entryObservations.secondObservationType, 'delivery');
await page.waitToClick(selectors.entryObservations.saveObservationsButton);
const message = await page.waitForSnackbar();
expect(message.text).toContain('Data saved!');
});
it('should reload the section and make sure the first observation type was saved correctly', async() => {
await page.reloadSection('entry.card.observation');
const result = await page.waitToGetProperty(selectors.entryObservations.firstObservationType, 'value');
expect(result).toEqual('comercial');
});
it('should make sure the first observation description was saved correctly', async() => {
const result = await page.waitToGetProperty(selectors.entryObservations.firstObservationDescription, 'value');
expect(result).toEqual('first observation');
});
it('should make sure the second observation type was saved correctly', async() => {
const result = await page.waitToGetProperty(selectors.entryObservations.secondObservationType, 'value');
expect(result).toEqual('delivery');
});
it('should make sure the second observation description was saved correctly', async() => {
const result = await page.waitToGetProperty(selectors.entryObservations.secondObservationDescription, 'value');
expect(result).toEqual('second observation');
});
});

View File

@ -85,5 +85,6 @@
"You need to fill sage information before you check verified data": "You need to fill sage information before you check verified data", "You need to fill sage information before you check verified data": "You need to fill sage information before you check verified data",
"The social name cannot be empty": "The social name cannot be empty", "The social name cannot be empty": "The social name cannot be empty",
"The nif cannot be empty": "The nif cannot be empty", "The nif cannot be empty": "The nif cannot be empty",
"A travel with this data already exists": "A travel with this data already exists" "A travel with this data already exists": "A travel with this data already exists",
"The observation type can't be repeated": "The observation type can't be repeated"
} }

View File

@ -0,0 +1,29 @@
const app = require('vn-loopback/server/server');
describe('EntryObservation', () => {
const entryId = 1;
it('should throw a user error if the observation type is duplicated.', async() => {
const observations = [
{
entryFk: entryId,
observationTypeFk: 1,
description: 'repeated description'
},
{
entryFk: entryId,
observationTypeFk: 1,
description: 'repeated description'
},
];
let error;
try {
await app.models.EntryObservation.create(observations);
} catch (e) {
error = e;
}
expect(error).toBeDefined();
});
});