Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.7.x : Fixed errors for ps_cashondelivery #21

Merged
merged 5 commits into from
Mar 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/pages/BO/BOBasePage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
}

Expand Down
11 changes: 6 additions & 5 deletions src/pages/BO/orders/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import semver from 'semver';

const psVersion = testContext.getPSVersion();

/* eslint-disable global-require */
/* eslint-disable global-require, @typescript-eslint/no-var-requires */
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 */
/* eslint-enable global-require, @typescript-eslint/no-var-requires */

export default requirePage();
5 changes: 3 additions & 2 deletions src/pages/FO/classic/home/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ const psVersion = testContext.getPSVersion();

/* eslint-disable global-require, @typescript-eslint/no-var-requires */
function requirePage(): FoHomePageInterface {
if (semver.gte(psVersion, '0.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/develop/pages/FO/classic/home').homePage;
return require('@versions/1.7.6/pages/FO/classic/home');
}
/* eslint-enable global-require, @typescript-eslint/no-var-requires */

Expand Down
69 changes: 69 additions & 0 deletions src/versions/1.7.6/pages/BO/orders/index.ts
Original file line number Diff line number Diff line change
@@ -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<number>}
*/
async resetAndGetNumberOfLines(page: Page): Promise<number> {
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<string>}
*/
async getTextColumn(page: Page, columnName: string, row: number = 1): Promise<string> {
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();
22 changes: 22 additions & 0 deletions src/versions/1.7.6/pages/FO/classic/home/index.ts
Original file line number Diff line number Diff line change
@@ -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();
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class UninstalledModules extends BOBasePage implements ModuleManagerUninstalledM
async installModule(page: Page, moduleTag: string): Promise<boolean> {
await page.locator(this.installModuleButton(moduleTag)).click();

return this.elementNotVisible(page, this.installModuleButton(moduleTag));
return this.elementNotVisible(page, this.installModuleButton(moduleTag), 3000);
}
}

Expand Down
30 changes: 20 additions & 10 deletions src/versions/develop/pages/BO/orders/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;

Expand Down Expand Up @@ -340,7 +340,16 @@ class Order 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),
Expand Down Expand Up @@ -709,4 +718,5 @@ class Order extends BOBasePage implements BOOrdersPageInterface {
}
}

module.exports = new Order();
const ordersPage = new OrdersPage();
export {ordersPage, OrdersPage};
6 changes: 3 additions & 3 deletions src/versions/develop/pages/FO/classic/home/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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};
Loading