From 4e2ab537ee287c0c81f435464ed8b4bf311dcc12 Mon Sep 17 00:00:00 2001 From: Carlos Jimenez Ruiz Date: Fri, 14 Feb 2020 14:52:47 +0100 Subject: [PATCH 1/3] unstable with the rest of tests --- e2e/helpers/extensions.js | 23 ++++++------- e2e/helpers/selectors.js | 10 ++++++ e2e/paths/04-item/13_request.spec.js | 48 +++++++++++++++++++++++++++ modules/item/front/request/index.html | 2 +- 4 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 e2e/paths/04-item/13_request.spec.js diff --git a/e2e/helpers/extensions.js b/e2e/helpers/extensions.js index 816eea0643..32c531f7cc 100644 --- a/e2e/helpers/extensions.js +++ b/e2e/helpers/extensions.js @@ -179,6 +179,13 @@ let actions = { 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) { await this.wait(selector); return await this.evaluate(selector => { @@ -284,22 +291,14 @@ let actions = { }, {}, selector, text); }, - selectorFormater: async function(selector) { - let builtSelector = `${selector} input`; - - if (selector.includes('vn-autocomplete')) - return builtSelector = `${selector} input`; - + selectorFormater: function(selector) { if (selector.includes('vn-textarea')) - return builtSelector = `${selector} textarea`; - - if (selector.includes('vn-textfield')) - return builtSelector = `${selector} input`; + return `${selector} textarea`; if (selector.includes('vn-input-file')) - return builtSelector = `${selector} section`; + return `${selector} section`; - return builtSelector; + return `${selector} input`; }, waitForTextInField: async function(selector, text) { diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 63d40f9d5b..16a9bb3991 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -250,6 +250,16 @@ export default { inactiveIcon: 'vn-item-descriptor vn-icon[icon="icon-unavailable"]', 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)', + firstRequestStatus: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(10)', + firstRequestDecline: '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: { basicDataButton: 'vn-left-menu a[ui-sref="item.card.basicData"]', goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]', diff --git a/e2e/paths/04-item/13_request.spec.js b/e2e/paths/04-item/13_request.spec.js new file mode 100644 index 0000000000..9e53e300ae --- /dev/null +++ b/e2e/paths/04-item/13_request.spec.js @@ -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 first declain request icon then type the reason', async() => { + await page.waitToClick(selectors.itemRequest.firstRequestDecline); + 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'); + }); +}); diff --git a/modules/item/front/request/index.html b/modules/item/front/request/index.html index e0cf05107d..3216e05e16 100644 --- a/modules/item/front/request/index.html +++ b/modules/item/front/request/index.html @@ -85,7 +85,7 @@ Date: Thu, 20 Feb 2020 07:37:50 +0100 Subject: [PATCH 2/3] #2119 e2e item.request --- e2e/paths/04-item/13_request.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2e/paths/04-item/13_request.spec.js b/e2e/paths/04-item/13_request.spec.js index 9e53e300ae..adb7e52786 100644 --- a/e2e/paths/04-item/13_request.spec.js +++ b/e2e/paths/04-item/13_request.spec.js @@ -1,7 +1,8 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; -describe('Item request path', () => { +// #2119 e2e item.request +xdescribe('Item request path', () => { let browser; let page; beforeAll(async() => { From 587653fb40be0053f68d8064bc767fb5c1108a1a Mon Sep 17 00:00:00 2001 From: Carlos Jimenez Ruiz Date: Thu, 20 Feb 2020 09:31:44 +0100 Subject: [PATCH 3/3] #2119 e2e item.request --- db/dump/fixtures.sql | 2 +- e2e/helpers/selectors.js | 3 ++- e2e/paths/04-item/13_request.spec.js | 7 +++---- .../back/methods/ticket-request/specs/filter.spec.js | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index f7d5d94f1c..fc509b39c6 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -1530,7 +1530,7 @@ INSERT INTO `vn`.`ticketRequest`(`id`, `description`, `requesterFk`, `attenderFk VALUES (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)), - (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()), (5, 'Melee weapon combat first 15cm', 18, 35, 15, 4, 1.30, 0, NULL, 18, CURDATE()); diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 1e6a30bb5e..aa808688bd 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -254,8 +254,9 @@ export default { 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)', - firstRequestDecline: 'vn-item-request vn-tbody > vn-tr:nth-child(1) vn-icon-button[icon="thumb_down"]', + 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"]', diff --git a/e2e/paths/04-item/13_request.spec.js b/e2e/paths/04-item/13_request.spec.js index adb7e52786..d6aecbb48e 100644 --- a/e2e/paths/04-item/13_request.spec.js +++ b/e2e/paths/04-item/13_request.spec.js @@ -1,8 +1,7 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; -// #2119 e2e item.request -xdescribe('Item request path', () => { +describe('Item request path', () => { let browser; let page; beforeAll(async() => { @@ -37,8 +36,8 @@ xdescribe('Item request path', () => { expect(status).toContain('Aceptada'); }); - it('should now click on the first declain request icon then type the reason', async() => { - await page.waitToClick(selectors.itemRequest.firstRequestDecline); + 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(); diff --git a/modules/ticket/back/methods/ticket-request/specs/filter.spec.js b/modules/ticket/back/methods/ticket-request/specs/filter.spec.js index 329688866b..175bf9c1a3 100644 --- a/modules/ticket/back/methods/ticket-request/specs/filter.spec.js +++ b/modules/ticket/back/methods/ticket-request/specs/filter.spec.js @@ -1,12 +1,12 @@ const app = require('vn-loopback/server/server'); 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 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() => { @@ -42,7 +42,7 @@ describe('ticket-request filter()', () => { let result = await app.models.TicketRequest.filter(ctx); 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() => { @@ -51,7 +51,7 @@ describe('ticket-request filter()', () => { let result = await app.models.TicketRequest.filter(ctx); let requestId = result[0].id; - expect(requestId).toEqual(4); + expect(requestId).toEqual(3); }); 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 requestId = result[0].id; - expect(requestId).toEqual(4); + expect(requestId).toEqual(3); }); 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 requestId = result[0].id; - expect(requestId).toEqual(4); + expect(requestId).toEqual(3); }); });