Skip to content

Commit

Permalink
Merge pull request #426 from Progi1984/modPsCheckPaymentBoMain
Browse files Browse the repository at this point in the history
Migrate `@pages/BO/modules/psCheckPayment` from Core
  • Loading branch information
Progi1984 authored Feb 20, 2025
2 parents 48c2c25 + 9add9f1 commit 3d1cd15
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ export {default as modBlockwishlistBoStatistics} from '@pages/BO/modules/blockwi
export {default as modKeycloakConnectorDemoBoMain} from '@pages/BO/modules/keycloakConnectorDemo';
export {default as modProductCommentsBoMain} from '@pages/BO/modules/productcomments';
export {default as modPsCategoryProductsBoMain} from '@pages/BO/modules/ps_categoryproducts';
export {default as modPsCheckPaymentBoMain} from '@pages/BO/modules/ps_checkpayment';
export {default as modPsEmailAlertsBoMain} from '@pages/BO/modules/ps_emailalerts';
export {default as modPsEmailSubscriptionBoMain} from '@pages/BO/modules/ps_emailsubscription';
export {default as modPsFacetedsearchBoMain} from '@pages/BO/modules/ps_facetedsearch';
Expand Down
10 changes: 10 additions & 0 deletions src/interfaces/BO/modules/ps_checkpayment/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import {ModuleConfigurationPageInterface} from '@interfaces/BO/modules/moduleConfiguration';
import {Page} from '@playwright/test';

export interface ModulePsCheckPaymentMainPageInterface extends ModuleConfigurationPageInterface {
readonly pageTitle: string;

saveFormContactDetails(page: Page): Promise<string>;
setAddress(page: Page, address: string): Promise<void>;
setPayee(page: Page, payee: string): Promise<void>;
}
9 changes: 9 additions & 0 deletions src/pages/BO/modules/ps_checkpayment/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import type {ModulePsCheckPaymentMainPageInterface} from '@interfaces/BO/modules/ps_checkpayment';

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

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

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

private readonly configurationForm: string;

private readonly payeeInput: string;

private readonly addressInput: string;

private readonly submitContactDetails: string;

/**
* @constructs
* Setting up titles and selectors to use on page
*/
constructor() {
super();
this.pageTitle = 'Payments by check';
this.successfulUpdateMessage = 'Settings updated';

// Selectors
// Customer Notifications
this.configurationForm = '#configuration_form';
this.payeeInput = `${this.configurationForm} #CHEQUE_NAME`;
this.addressInput = `${this.configurationForm} #CHEQUE_ADDRESS`;
this.submitContactDetails = `${this.configurationForm} button[name="btnSubmit"]`;
}

/* Methods */

/**
* Define the field "Payee"
* @param page {Page} Browser tab
* @param payee {string}
* @returns {Promise<void>}
*/
async setPayee(page: Page, payee: string): Promise<void> {
return this.setInputValue(page, this.payeeInput, payee);
}

/**
* Define the field "Address"
* @param page {Page} Browser tab
* @param address {string}
* @returns {Promise<void>}
*/
async setAddress(page: Page, address: string): Promise<void> {
return this.setInputValue(page, this.addressInput, address);
}

/**
* Save the "Contact details" form
* @param page {Page} Browser tab
* @returns {Promise<string>}
*/
async saveFormContactDetails(page: Page): Promise<string> {
await page.locator(this.submitContactDetails).click();

return this.getAlertSuccessBlockContent(page);
}
}

module.exports = new ModulePsCheckPaymentMainPage();

0 comments on commit 3d1cd15

Please sign in to comment.