Merge branch '1835-e2e-item-request' of verdnatura/salix into dev
gitea/salix/dev This commit looks good
Details
gitea/salix/dev This commit looks good
Details
This commit is contained in:
commit
54bc1bc281
|
@ -1530,7 +1530,7 @@ INSERT INTO `vn`.`ticketRequest`(`id`, `description`, `requesterFk`, `attenderFk
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'Ranged weapon longbow 2m', 18, 35, 5, 1, 9.10, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
(1, 'Ranged weapon longbow 2m', 18, 35, 5, 1, 9.10, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||||
(2, 'Melee weapon combat first 15cm', 18, 35, 10, 2, 1.07, 0, NULL, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
(2, 'Melee weapon combat first 15cm', 18, 35, 10, 2, 1.07, 0, NULL, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||||
(3, 'Melee weapon heavy shield 1x0.5m', 18, 35, 20, 4, 3.06, 0, NULL, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
(3, 'Melee weapon heavy shield 1x0.5m', 18, 35, 20, NULL, 3.06, NULL, NULL, 23, CURDATE()),
|
||||||
(4, 'Melee weapon combat first 15cm', 18, 35, 15, NULL, 1.30, NULL, NULL, 11, CURDATE()),
|
(4, 'Melee weapon combat first 15cm', 18, 35, 15, NULL, 1.30, NULL, NULL, 11, CURDATE()),
|
||||||
(5, 'Melee weapon combat first 15cm', 18, 35, 15, 4, 1.30, 0, NULL, 18, CURDATE());
|
(5, 'Melee weapon combat first 15cm', 18, 35, 15, 4, 1.30, 0, NULL, 18, CURDATE());
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,13 @@ let actions = {
|
||||||
await this.click(selector);
|
await this.click(selector);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
writeOnEditableTD: async function(selector, text) {
|
||||||
|
let builtSelector = await this.selectorFormater(selector);
|
||||||
|
await this.waitToClick(selector);
|
||||||
|
await this.type(builtSelector, text);
|
||||||
|
await this.keyboard.press('Enter');
|
||||||
|
},
|
||||||
|
|
||||||
focusElement: async function(selector) {
|
focusElement: async function(selector) {
|
||||||
await this.wait(selector);
|
await this.wait(selector);
|
||||||
return await this.evaluate(selector => {
|
return await this.evaluate(selector => {
|
||||||
|
@ -284,22 +291,14 @@ let actions = {
|
||||||
}, {}, selector, text);
|
}, {}, selector, text);
|
||||||
},
|
},
|
||||||
|
|
||||||
selectorFormater: async function(selector) {
|
selectorFormater: function(selector) {
|
||||||
let builtSelector = `${selector} input`;
|
|
||||||
|
|
||||||
if (selector.includes('vn-autocomplete'))
|
|
||||||
return builtSelector = `${selector} input`;
|
|
||||||
|
|
||||||
if (selector.includes('vn-textarea'))
|
if (selector.includes('vn-textarea'))
|
||||||
return builtSelector = `${selector} textarea`;
|
return `${selector} textarea`;
|
||||||
|
|
||||||
if (selector.includes('vn-textfield'))
|
|
||||||
return builtSelector = `${selector} input`;
|
|
||||||
|
|
||||||
if (selector.includes('vn-input-file'))
|
if (selector.includes('vn-input-file'))
|
||||||
return builtSelector = `${selector} section`;
|
return `${selector} section`;
|
||||||
|
|
||||||
return builtSelector;
|
return `${selector} input`;
|
||||||
},
|
},
|
||||||
|
|
||||||
waitForTextInField: async function(selector, text) {
|
waitForTextInField: async function(selector, text) {
|
||||||
|
|
|
@ -250,6 +250,17 @@ export default {
|
||||||
inactiveIcon: 'vn-item-descriptor vn-icon[icon="icon-unavailable"]',
|
inactiveIcon: 'vn-item-descriptor vn-icon[icon="icon-unavailable"]',
|
||||||
navigateBackToIndex: 'vn-item-descriptor vn-icon[icon="chevron_left"]'
|
navigateBackToIndex: 'vn-item-descriptor vn-icon[icon="chevron_left"]'
|
||||||
},
|
},
|
||||||
|
itemRequest: {
|
||||||
|
firstRequestItemID: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td-editable:nth-child(7)',
|
||||||
|
firstRequestQuantity: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td-editable:nth-child(8)',
|
||||||
|
firstRequestConcept: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(9)',
|
||||||
|
secondRequestStatus: 'vn-item-request vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(10)',
|
||||||
|
firstRequestStatus: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(10)',
|
||||||
|
secondRequestDecline: 'vn-item-request vn-tbody > vn-tr:nth-child(1) vn-icon-button[icon="thumb_down"]',
|
||||||
|
declineReason: 'vn-textarea[ng-model="$ctrl.denyObservation"]',
|
||||||
|
acceptDeclineReason: 'button[response="accept"]',
|
||||||
|
|
||||||
|
},
|
||||||
itemBasicData: {
|
itemBasicData: {
|
||||||
basicDataButton: 'vn-left-menu a[ui-sref="item.card.basicData"]',
|
basicDataButton: 'vn-left-menu a[ui-sref="item.card.basicData"]',
|
||||||
goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]',
|
goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]',
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
import selectors from '../../helpers/selectors.js';
|
||||||
|
import getBrowser from '../../helpers/puppeteer';
|
||||||
|
|
||||||
|
describe('Item request path', () => {
|
||||||
|
let browser;
|
||||||
|
let page;
|
||||||
|
beforeAll(async() => {
|
||||||
|
browser = await getBrowser();
|
||||||
|
page = browser.page;
|
||||||
|
await page.loginAndModule('buyer', 'item');
|
||||||
|
await page.accessToSection('item.request');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async() => {
|
||||||
|
await browser.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should reach the item request section', async() => {
|
||||||
|
const result = await page.expectURL('/item/request');
|
||||||
|
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fill the id and quantity then check the concept was updated', async() => {
|
||||||
|
await page.writeOnEditableTD(selectors.itemRequest.firstRequestItemID, '4');
|
||||||
|
await page.writeOnEditableTD(selectors.itemRequest.firstRequestQuantity, '10');
|
||||||
|
await page.waitForTextInElement(selectors.itemRequest.firstRequestConcept, 'Melee weapon heavy shield 1x0.5m');
|
||||||
|
let filledConcept = await page.waitToGetProperty(selectors.itemRequest.firstRequestConcept, 'innerText');
|
||||||
|
|
||||||
|
expect(filledConcept).toContain('Melee weapon heavy shield 1x0.5m');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should the status of the request should now be accepted', async() => {
|
||||||
|
let status = await page.waitToGetProperty(selectors.itemRequest.firstRequestStatus, 'innerText');
|
||||||
|
|
||||||
|
expect(status).toContain('Aceptada');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should now click on the second declain request icon then type the reason', async() => {
|
||||||
|
await page.waitToClick(selectors.itemRequest.secondRequestDecline);
|
||||||
|
await page.write(selectors.itemRequest.declineReason, 'not quite as expected');
|
||||||
|
await page.waitToClick(selectors.itemRequest.acceptDeclineReason);
|
||||||
|
await page.waitForContentLoaded();
|
||||||
|
let status = await page.waitToGetProperty(selectors.itemRequest.firstRequestStatus, 'innerText');
|
||||||
|
|
||||||
|
expect(status).toContain('Denegada');
|
||||||
|
});
|
||||||
|
});
|
|
@ -85,7 +85,7 @@
|
||||||
<vn-td>
|
<vn-td>
|
||||||
<vn-icon
|
<vn-icon
|
||||||
ng-if="request.response.length"
|
ng-if="request.response.length"
|
||||||
ranslate-attr="{title: request.response}"
|
translate-attr="{title: request.response}"
|
||||||
icon="insert_drive_file">
|
icon="insert_drive_file">
|
||||||
</vn-icon>
|
</vn-icon>
|
||||||
<vn-icon-button
|
<vn-icon-button
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
const app = require('vn-loopback/server/server');
|
const app = require('vn-loopback/server/server');
|
||||||
|
|
||||||
describe('ticket-request filter()', () => {
|
describe('ticket-request filter()', () => {
|
||||||
it('should return all ticket requests', async() => {
|
it('should now return all ticket requests', async() => {
|
||||||
let ctx = {req: {accessToken: {userId: 9}}, args: {}};
|
let ctx = {req: {accessToken: {userId: 9}}, args: {}};
|
||||||
|
|
||||||
let result = await app.models.TicketRequest.filter(ctx);
|
let result = await app.models.TicketRequest.filter(ctx);
|
||||||
|
|
||||||
expect(result.length).toEqual(2);
|
expect(result.length).toEqual(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the ticket request matching a generic search value which is the ticket ID', async() => {
|
it('should return the ticket request matching a generic search value which is the ticket ID', async() => {
|
||||||
|
@ -42,7 +42,7 @@ describe('ticket-request filter()', () => {
|
||||||
let result = await app.models.TicketRequest.filter(ctx);
|
let result = await app.models.TicketRequest.filter(ctx);
|
||||||
let requestId = result[0].id;
|
let requestId = result[0].id;
|
||||||
|
|
||||||
expect(requestId).toEqual(4);
|
expect(requestId).toEqual(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the ticket request matching the isOk triple-state', async() => {
|
it('should return the ticket request matching the isOk triple-state', async() => {
|
||||||
|
@ -51,7 +51,7 @@ describe('ticket-request filter()', () => {
|
||||||
let result = await app.models.TicketRequest.filter(ctx);
|
let result = await app.models.TicketRequest.filter(ctx);
|
||||||
let requestId = result[0].id;
|
let requestId = result[0].id;
|
||||||
|
|
||||||
expect(requestId).toEqual(4);
|
expect(requestId).toEqual(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the ticket request matching the client ID', async() => {
|
it('should return the ticket request matching the client ID', async() => {
|
||||||
|
@ -69,7 +69,7 @@ describe('ticket-request filter()', () => {
|
||||||
let result = await app.models.TicketRequest.filter(ctx);
|
let result = await app.models.TicketRequest.filter(ctx);
|
||||||
let requestId = result[0].id;
|
let requestId = result[0].id;
|
||||||
|
|
||||||
expect(requestId).toEqual(4);
|
expect(requestId).toEqual(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the ticket request matching the salesPerson ID', async() => {
|
it('should return the ticket request matching the salesPerson ID', async() => {
|
||||||
|
@ -78,6 +78,6 @@ describe('ticket-request filter()', () => {
|
||||||
let result = await app.models.TicketRequest.filter(ctx);
|
let result = await app.models.TicketRequest.filter(ctx);
|
||||||
let requestId = result[0].id;
|
let requestId = result[0].id;
|
||||||
|
|
||||||
expect(requestId).toEqual(4);
|
expect(requestId).toEqual(3);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue