entry observations section unit test + e2e #493
|
@ -939,6 +939,14 @@ export default {
|
|||
newEntryCompany: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.companyFk"]',
|
||||
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: {
|
||||
header: 'vn-supplier-summary > vn-card > h5',
|
||||
basicDataId: 'vn-supplier-summary vn-label-value[label="Id"]',
|
||||
|
|
|
@ -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');
|
||||
});
|
||||
});
|
|
@ -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",
|
||||
"The social name cannot be empty": "The social name 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"
|
||||
}
|
|
@ -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();
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue