From acb5253bdc114d7992c49a3eaf6471966b87b139 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Wed, 20 Mar 2024 15:18:14 +0100 Subject: [PATCH 1/5] 1.7.8 : FO - Classic - Home : Fixed the product article selector --- src/pages/FO/classic/home/index.ts | 4 ++-- .../moduleManager/uninstalledModules.ts | 2 +- .../1.7.8/pages/FO/classic/home/index.ts | 22 +++++++++++++++++++ .../develop/pages/FO/classic/home/index.ts | 6 ++--- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 src/versions/1.7.8/pages/FO/classic/home/index.ts diff --git a/src/pages/FO/classic/home/index.ts b/src/pages/FO/classic/home/index.ts index 412fb74d..f980ce2a 100644 --- a/src/pages/FO/classic/home/index.ts +++ b/src/pages/FO/classic/home/index.ts @@ -6,10 +6,10 @@ const psVersion = testContext.getPSVersion(); /* eslint-disable global-require, @typescript-eslint/no-var-requires */ function requirePage(): FoHomePageInterface { - if (semver.gte(psVersion, '0.0.0')) { + if (semver.gte(psVersion, '8.0.0')) { return require('@versions/develop/pages/FO/classic/home').homePage; } - return require('@versions/develop/pages/FO/classic/home').homePage; + return require('@versions/1.7.8/pages/FO/classic/home'); } /* eslint-enable global-require, @typescript-eslint/no-var-requires */ diff --git a/src/versions/1.7.8/pages/BO/modules/moduleManager/uninstalledModules.ts b/src/versions/1.7.8/pages/BO/modules/moduleManager/uninstalledModules.ts index 12286e2f..3e27c93a 100644 --- a/src/versions/1.7.8/pages/BO/modules/moduleManager/uninstalledModules.ts +++ b/src/versions/1.7.8/pages/BO/modules/moduleManager/uninstalledModules.ts @@ -50,7 +50,7 @@ class UninstalledModules extends BOBasePage implements ModuleManagerUninstalledM async installModule(page: Page, moduleTag: string): Promise { await page.locator(this.installModuleButton(moduleTag)).click(); - return this.elementNotVisible(page, this.installModuleButton(moduleTag)); + return this.elementNotVisible(page, this.installModuleButton(moduleTag), 3000); } } diff --git a/src/versions/1.7.8/pages/FO/classic/home/index.ts b/src/versions/1.7.8/pages/FO/classic/home/index.ts new file mode 100644 index 00000000..44b54aa6 --- /dev/null +++ b/src/versions/1.7.8/pages/FO/classic/home/index.ts @@ -0,0 +1,22 @@ +// Import pages +import type {FoHomePageInterface} from '@interfaces/FO/home'; +import {HomePage} from '@versions/develop/pages/FO/classic/home/index'; + +/** + * Order confirmation page, contains functions that can be used on the page + * @class + * @extends OrderConfirmationPage + */ +class HomePageVersion extends HomePage implements FoHomePageInterface { + /** + * @constructs + * Setting up texts and selectors to use on order confirmation page + */ + constructor(theme: string = 'classic') { + super(theme); + + this.productArticle = (number: number) => `${this.productsBlock(2)} .products article:nth-child(${number}) div`; + } +} + +module.exports = new HomePageVersion(); diff --git a/src/versions/develop/pages/FO/classic/home/index.ts b/src/versions/develop/pages/FO/classic/home/index.ts index 5dfd731b..99ed1844 100644 --- a/src/versions/develop/pages/FO/classic/home/index.ts +++ b/src/versions/develop/pages/FO/classic/home/index.ts @@ -32,7 +32,7 @@ class HomePage extends FOBasePage implements FoHomePageInterface { private readonly homePageSection: string; - private productsBlock: (blockId: number) => string; + protected productsBlock: (blockId: number) => string; private readonly productsBlockTitle: (blockId: number) => string; @@ -877,5 +877,5 @@ class HomePage extends FOBasePage implements FoHomePageInterface { } } -module.exports.HomePage = HomePage; -module.exports.homePage = new HomePage(); +const homePage = new HomePage(); +export {homePage, HomePage}; From b7574b9bb6042ab9d39912dede0e30f893f0cad7 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Wed, 20 Mar 2024 15:19:20 +0100 Subject: [PATCH 2/5] 1.7.6 : BO - Orders : Fixed selectors (filter reset button, table row column) --- src/pages/BO/orders/index.ts | 7 +- src/versions/1.7.6/pages/BO/orders/index.ts | 69 +++++++++++++++++++ src/versions/develop/pages/BO/orders/index.ts | 19 ++--- 3 files changed, 83 insertions(+), 12 deletions(-) create mode 100644 src/versions/1.7.6/pages/BO/orders/index.ts diff --git a/src/pages/BO/orders/index.ts b/src/pages/BO/orders/index.ts index 89a56ac7..05017535 100644 --- a/src/pages/BO/orders/index.ts +++ b/src/pages/BO/orders/index.ts @@ -6,10 +6,11 @@ const psVersion = testContext.getPSVersion(); /* eslint-disable global-require */ function requirePage(): BOOrdersPageInterface { - if (semver.gte(psVersion, '0.0.0')) { - return require('@versions/develop/pages/BO/orders'); + // >= 1.7.7.9 + if (semver.gte(psVersion, '7.7.0')) { + return require('@versions/develop/pages/BO/orders').ordersPage; } - return require('@versions/develop/pages/BO/orders'); + return require('@versions/1.7.6/pages/BO/orders'); } /* eslint-enable global-require */ diff --git a/src/versions/1.7.6/pages/BO/orders/index.ts b/src/versions/1.7.6/pages/BO/orders/index.ts new file mode 100644 index 00000000..026254d4 --- /dev/null +++ b/src/versions/1.7.6/pages/BO/orders/index.ts @@ -0,0 +1,69 @@ +// Import pages +import type {BOOrdersPageInterface} from '@interfaces/BO/orders'; +import {OrdersPage} from '@versions/develop/pages/BO/orders/index'; +import type {Page} from 'playwright-core'; + +/** + * Orders page, contains functions that can be used on the page + * @class + * @extends OrdersPage + */ +class OrdersPageVersion extends OrdersPage implements BOOrdersPageInterface { + private readonly tableRowColumn: (row: number, column: number) => string; + + /** + * @constructs + * Setting up texts and selectors to use on order confirmation page + */ + constructor() { + super(); + + // Selectors grid panel + this.gridPanel = '#form-order .panel .panel-heading'; + this.gridTable = '#table-order'; + this.gridHeaderTitle = `${this.gridPanel} span.badge`; + this.filterResetButton = `${this.gridTable} button[name="submitResetorder"]`; + + // Table rows + this.tableBody = `${this.gridTable} tbody`; + this.tableRows = `${this.tableBody} tr`; + this.tableRow = (row: number) => `${this.tableRows}:nth-child(${row})`; + this.tableRowColumn = (row: number, column: number) => `${this.tableRow(row)} td:nth-child(${column})`; + } + + /** + * Reset Filter And get number of elements in list + * @param page {Page} Browser tab + * @returns {Promise} + */ + async resetAndGetNumberOfLines(page: Page): Promise { + await this.resetFilter(page); + return this.getNumberOfElementInGrid(page); + } + + /** + * Get text from Column + * @param page {Page} Browser tab + * @param columnName {string} Column name on table + * @param row {number} Order row in table + * @returns {Promise} + */ + async getTextColumn(page: Page, columnName: string, row: number = 1): Promise { + if (columnName === 'id_order') { + return (await this.getNumberFromText(page, this.tableRowColumn(row, 2))).toString(); + } + if (columnName === 'reference') { + return this.getTextContent(page, this.tableRowColumn(row, 3)); + } + if (columnName === 'payment') { + return this.getTextContent(page, this.tableRowColumn(row, 8)); + } + if (columnName === 'osname') { + return this.getTextContent(page, this.tableRowColumn(row, 9)); + } + + return ''; + } +} + +module.exports = new OrdersPageVersion(); diff --git a/src/versions/develop/pages/BO/orders/index.ts b/src/versions/develop/pages/BO/orders/index.ts index 44afddf4..a9a9ed4c 100644 --- a/src/versions/develop/pages/BO/orders/index.ts +++ b/src/versions/develop/pages/BO/orders/index.ts @@ -10,16 +10,16 @@ import type {Page} from 'playwright'; * @class * @extends BOBasePage */ -class Order extends BOBasePage implements BOOrdersPageInterface { +class OrdersPage extends BOBasePage implements BOOrdersPageInterface { public readonly pageTitle: string; private readonly createNewOrderButton: string; - private readonly gridPanel: string; + protected gridPanel: string; - private readonly gridTable: string; + protected gridTable: string; - private readonly gridHeaderTitle: string; + protected gridHeaderTitle: string; private readonly tableHead: string; @@ -31,13 +31,13 @@ class Order extends BOBasePage implements BOOrdersPageInterface { private readonly filterSearchButton: string; - private readonly filterResetButton: string; + protected filterResetButton: string; - private readonly tableBody: string; + protected tableBody: string; - private readonly tableRows: string; + protected tableRows: string; - private readonly tableRow: (row: number) => string; + protected tableRow: (row: number) => string; private readonly tableEmptyRow: string; @@ -709,4 +709,5 @@ class Order extends BOBasePage implements BOOrdersPageInterface { } } -module.exports = new Order(); +const ordersPage = new OrdersPage(); +export {ordersPage, OrdersPage}; From 42b5e22097f46ea79cc01982384a3098327ded68 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Wed, 20 Mar 2024 15:21:45 +0100 Subject: [PATCH 3/5] Fixed ESLint --- src/pages/BO/orders/index.ts | 4 ++-- src/versions/develop/pages/BO/orders/index.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/pages/BO/orders/index.ts b/src/pages/BO/orders/index.ts index 05017535..6520cdf4 100644 --- a/src/pages/BO/orders/index.ts +++ b/src/pages/BO/orders/index.ts @@ -4,7 +4,7 @@ import semver from 'semver'; const psVersion = testContext.getPSVersion(); -/* eslint-disable global-require */ +/* eslint-disable global-require, @typescript-eslint/no-var-requires */ function requirePage(): BOOrdersPageInterface { // >= 1.7.7.9 if (semver.gte(psVersion, '7.7.0')) { @@ -12,6 +12,6 @@ function requirePage(): BOOrdersPageInterface { } return require('@versions/1.7.6/pages/BO/orders'); } -/* eslint-enable global-require */ +/* eslint-enable global-require, @typescript-eslint/no-var-requires */ export default requirePage(); diff --git a/src/versions/develop/pages/BO/orders/index.ts b/src/versions/develop/pages/BO/orders/index.ts index a9a9ed4c..dbc9b013 100644 --- a/src/versions/develop/pages/BO/orders/index.ts +++ b/src/versions/develop/pages/BO/orders/index.ts @@ -340,7 +340,16 @@ class OrdersPage extends BOBasePage implements BOOrdersPageInterface { * @returns {Promise<{id: number, reference: string, newClient:string, delivery: string, customer: string, * totalPaid: string, payment: string, status: string}>} */ - async getOrderFromTable(page: Page, row: number) { + async getOrderFromTable(page: Page, row: number): Promise<{ + id: number, + reference: string, + newClient:string, + delivery: string, + customer: string, + totalPaid: string, + payment: string, + status: string + }> { return { id: parseFloat(await this.getTextColumn(page, 'id_order', row)), reference: await this.getTextColumn(page, 'reference', row), From 2101800929935a1d1e7f87cca8bd18a35e8c482f Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Wed, 20 Mar 2024 15:53:30 +0100 Subject: [PATCH 4/5] 1.7.7 : FO - Classic - Home : Fixed the product article selector --- src/pages/FO/classic/home/index.ts | 5 +++-- src/versions/{1.7.8 => 1.7.6}/pages/FO/classic/home/index.ts | 0 2 files changed, 3 insertions(+), 2 deletions(-) rename src/versions/{1.7.8 => 1.7.6}/pages/FO/classic/home/index.ts (100%) diff --git a/src/pages/FO/classic/home/index.ts b/src/pages/FO/classic/home/index.ts index f980ce2a..c42432c7 100644 --- a/src/pages/FO/classic/home/index.ts +++ b/src/pages/FO/classic/home/index.ts @@ -6,10 +6,11 @@ const psVersion = testContext.getPSVersion(); /* eslint-disable global-require, @typescript-eslint/no-var-requires */ function requirePage(): FoHomePageInterface { - if (semver.gte(psVersion, '8.0.0')) { + // >= 1.7.7.9 + if (semver.gte(psVersion, '7.7.0')) { return require('@versions/develop/pages/FO/classic/home').homePage; } - return require('@versions/1.7.8/pages/FO/classic/home'); + return require('@versions/1.7.6/pages/FO/classic/home'); } /* eslint-enable global-require, @typescript-eslint/no-var-requires */ diff --git a/src/versions/1.7.8/pages/FO/classic/home/index.ts b/src/versions/1.7.6/pages/FO/classic/home/index.ts similarity index 100% rename from src/versions/1.7.8/pages/FO/classic/home/index.ts rename to src/versions/1.7.6/pages/FO/classic/home/index.ts From 8cbc3d9c48414964cb68b4a0a60f37483df225f8 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Thu, 21 Mar 2024 08:51:35 +0100 Subject: [PATCH 5/5] 1.7.8 : BO : Fixed the selector active for menu --- src/pages/BO/BOBasePage.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/BO/BOBasePage.ts b/src/pages/BO/BOBasePage.ts index 04784ad1..0c01903f 100644 --- a/src/pages/BO/BOBasePage.ts +++ b/src/pages/BO/BOBasePage.ts @@ -721,7 +721,8 @@ export default class BOBasePage extends CommonPage { const psVersion = testContext.getPSVersion(); let linkActiveClass: string = '-active'; - if (semver.gte(psVersion, '8.0.0')) { + // >= 1.7.8.0 + if (semver.gte(psVersion, '7.8.0')) { linkActiveClass = 'link-active'; }