Skip to content

Commit 60c81a9

Browse files
authored
Merge pull request #300 from nesrineabdmouleh/addDataForAutoupgradeModule
Add data and pages for autoupgrade module
2 parents ebfbe53 + de92e2d commit 60c81a9

File tree

5 files changed

+78
-0
lines changed

5 files changed

+78
-0
lines changed

src/data/demo/modules.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,8 @@ export default {
158158
tag: 'statsstock',
159159
name: 'Available quantities',
160160
}),
161+
autoupgrade: new FakerModule({
162+
tag: 'autoupgrade',
163+
name: '1-Click Upgrade',
164+
}),
161165
};

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ export {default as foHummingbirdProductPage} from '@pages/FO/hummingbird/product
308308
export {default as foHummingbirdSearchResultsPage} from '@pages/FO/hummingbird/searchResults';
309309

310310
// Export Modules
311+
export {default as modAutoupgradeBoMain} from '@pages/BO/modules/autoupgrade';
311312
export {default as modBlockwishlistBoMain} from '@pages/BO/modules/blockwishlist';
312313
export {default as modBlockwishlistBoStatistics} from '@pages/BO/modules/blockwishlist/statistics';
313314
export {default as modKeycloakConnectorDemoBoMain} from '@pages/BO/modules/keycloakConnectorDemo';
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {ModuleConfigurationPageInterface} from '@interfaces/BO/modules/moduleConfiguration';
2+
import type {Page} from '@playwright/test';
3+
4+
export interface ModuleAutoupgradeMainPageInterface extends ModuleConfigurationPageInterface {
5+
readonly pageTitle: string;
6+
7+
goToMaintenancePage(page:Page): Promise<Page>;
8+
isRequirementsAlertDangerVisible(page:Page): Promise<boolean>;
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type {ModuleAutoupgradeMainPageInterface} from '@interfaces/BO/modules/autoupgrade';
2+
3+
/* eslint-disable global-require, @typescript-eslint/no-require-imports */
4+
function requirePage(): ModuleAutoupgradeMainPageInterface {
5+
return require('@versions/develop/pages/BO/modules/autoupgrade');
6+
}
7+
8+
/* eslint-enable global-require, @typescript-eslint/no-require-imports */
9+
10+
export default requirePage();
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {ModuleAutoupgradeMainPageInterface} from '@interfaces/BO/modules/autoupgrade';
2+
import ModuleConfiguration from '@pages/BO/modules/moduleConfiguration';
3+
import type {Page} from '@playwright/test';
4+
5+
/**
6+
* Module configuration page for module : Autoupgrade, contains selectors and functions for the page
7+
* @class
8+
* @extends ModuleConfiguration
9+
*/
10+
class Autoupgrade extends ModuleConfiguration implements ModuleAutoupgradeMainPageInterface {
11+
public readonly pageTitle: string;
12+
13+
private readonly currentConfigurationTable: string;
14+
15+
private readonly maintenanceModeLink: string;
16+
17+
private readonly alertDangerPreUpgrade: string;
18+
19+
/**
20+
* @constructs
21+
*/
22+
constructor() {
23+
super();
24+
25+
this.pageTitle = `Update assistant > Update assistant • ${global.INSTALL.SHOP_NAME}`;
26+
27+
// Selectors
28+
this.currentConfigurationTable = '#currentConfiguration table';
29+
this.maintenanceModeLink = `${this.currentConfigurationTable} a[href*='shop/maintenance']`;
30+
this.alertDangerPreUpgrade = `#${this.currentConfigurationTable} p.alert.alert-danger`;
31+
}
32+
33+
// Methods
34+
// Pre-upgrade checklist table
35+
/**
36+
* Go to maintenance page
37+
* @param page {Page} Browser tab
38+
* @return {Promise<Page>} Opened tab after the click
39+
*/
40+
async goToMaintenancePage(page: Page): Promise<Page> {
41+
return this.openLinkWithTargetBlank(page, this.maintenanceModeLink);
42+
}
43+
44+
/**
45+
* Is requirements alert danger visible
46+
* @param page {Page} Browser tab
47+
* @return {Promise<Page>}
48+
*/
49+
async isRequirementsAlertDangerVisible(page: Page): Promise<boolean> {
50+
return this.elementVisible(page, this.alertDangerPreUpgrade, 2000);
51+
}
52+
}
53+
54+
module.exports = new Autoupgrade();

0 commit comments

Comments
 (0)