Skip to content

Commit

Permalink
Merge pull request #300 from nesrineabdmouleh/addDataForAutoupgradeMo…
Browse files Browse the repository at this point in the history
…dule

Add data and pages for autoupgrade module
  • Loading branch information
Progi1984 authored Dec 18, 2024
2 parents ebfbe53 + de92e2d commit 60c81a9
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/data/demo/modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,8 @@ export default {
tag: 'statsstock',
name: 'Available quantities',
}),
autoupgrade: new FakerModule({
tag: 'autoupgrade',
name: '1-Click Upgrade',
}),
};
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ export {default as foHummingbirdProductPage} from '@pages/FO/hummingbird/product
export {default as foHummingbirdSearchResultsPage} from '@pages/FO/hummingbird/searchResults';

// Export Modules
export {default as modAutoupgradeBoMain} from '@pages/BO/modules/autoupgrade';
export {default as modBlockwishlistBoMain} from '@pages/BO/modules/blockwishlist';
export {default as modBlockwishlistBoStatistics} from '@pages/BO/modules/blockwishlist/statistics';
export {default as modKeycloakConnectorDemoBoMain} from '@pages/BO/modules/keycloakConnectorDemo';
Expand Down
9 changes: 9 additions & 0 deletions src/interfaces/BO/modules/autoupgrade/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import {ModuleConfigurationPageInterface} from '@interfaces/BO/modules/moduleConfiguration';
import type {Page} from '@playwright/test';

export interface ModuleAutoupgradeMainPageInterface extends ModuleConfigurationPageInterface {
readonly pageTitle: string;

goToMaintenancePage(page:Page): Promise<Page>;
isRequirementsAlertDangerVisible(page:Page): Promise<boolean>;
}
10 changes: 10 additions & 0 deletions src/pages/BO/modules/autoupgrade/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type {ModuleAutoupgradeMainPageInterface} from '@interfaces/BO/modules/autoupgrade';

/* eslint-disable global-require, @typescript-eslint/no-require-imports */
function requirePage(): ModuleAutoupgradeMainPageInterface {
return require('@versions/develop/pages/BO/modules/autoupgrade');
}

/* eslint-enable global-require, @typescript-eslint/no-require-imports */

export default requirePage();
54 changes: 54 additions & 0 deletions src/versions/develop/pages/BO/modules/autoupgrade/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import {ModuleAutoupgradeMainPageInterface} from '@interfaces/BO/modules/autoupgrade';
import ModuleConfiguration from '@pages/BO/modules/moduleConfiguration';
import type {Page} from '@playwright/test';

/**
* Module configuration page for module : Autoupgrade, contains selectors and functions for the page
* @class
* @extends ModuleConfiguration
*/
class Autoupgrade extends ModuleConfiguration implements ModuleAutoupgradeMainPageInterface {
public readonly pageTitle: string;

private readonly currentConfigurationTable: string;

private readonly maintenanceModeLink: string;

private readonly alertDangerPreUpgrade: string;

/**
* @constructs
*/
constructor() {
super();

this.pageTitle = `Update assistant > Update assistant • ${global.INSTALL.SHOP_NAME}`;

// Selectors
this.currentConfigurationTable = '#currentConfiguration table';
this.maintenanceModeLink = `${this.currentConfigurationTable} a[href*='shop/maintenance']`;
this.alertDangerPreUpgrade = `#${this.currentConfigurationTable} p.alert.alert-danger`;
}

// Methods
// Pre-upgrade checklist table
/**
* Go to maintenance page
* @param page {Page} Browser tab
* @return {Promise<Page>} Opened tab after the click
*/
async goToMaintenancePage(page: Page): Promise<Page> {
return this.openLinkWithTargetBlank(page, this.maintenanceModeLink);
}

/**
* Is requirements alert danger visible
* @param page {Page} Browser tab
* @return {Promise<Page>}
*/
async isRequirementsAlertDangerVisible(page: Page): Promise<boolean> {
return this.elementVisible(page, this.alertDangerPreUpgrade, 2000);
}
}

module.exports = new Autoupgrade();

0 comments on commit 60c81a9

Please sign in to comment.