Skip to content

Commit

Permalink
Migrate @pages/BO/catalog/features/addValue from Core
Browse files Browse the repository at this point in the history
  • Loading branch information
Progi1984 committed Jan 29, 2025
1 parent 9395bc7 commit ff4c026
Show file tree
Hide file tree
Showing 4 changed files with 97 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 @@ -236,6 +236,7 @@ export {default as boEmployeeSessionsPage} from '@pages/BO/advancedParameters/se
export {default as boFeatureFlagPage} from '@pages/BO/advancedParameters/featureFlag';
export {default as boFeaturesPage} from '@pages/BO/catalog/features';
export {default as boFeaturesCreatePage} from '@pages/BO/catalog/features/create';
export {default as boFeaturesValueCreatePage} from '@pages/BO/catalog/features/createValue';
export {default as boFeaturesViewPage} from '@pages/BO/catalog/features/view';
export {default as boFilesPage} from '@pages/BO/catalog/files';
export {default as boInformationPage} from '@pages/BO/advancedParameters/information';
Expand Down
10 changes: 10 additions & 0 deletions src/interfaces/BO/catalog/features/createValue.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type FakerFeatureValue from '@data/faker/featureValue';
import {BOBasePagePageInterface} from '@interfaces/BO';
import {type Page} from '@playwright/test';

export interface BOFeaturesValueCreatePageInterface extends BOBasePagePageInterface {
readonly createPageTitle: string;
readonly editPageTitle: string;

addEditValue(page: Page, valueData: FakerFeatureValue, saveAndStay?: boolean): Promise<string | void>;
}
9 changes: 9 additions & 0 deletions src/pages/BO/catalog/features/createValue.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import {type BOFeaturesValueCreatePageInterface} from '@interfaces/BO/catalog/features/createValue';

/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
function requirePage(): BOFeaturesValueCreatePageInterface {
return require('@versions/develop/pages/BO/catalog/features/createValue');
}
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */

export default requirePage();
77 changes: 77 additions & 0 deletions src/versions/develop/pages/BO/catalog/features/createValue.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import type FakerFeatureValue from '@data/faker/featureValue';
import {type BOFeaturesValueCreatePageInterface} from '@interfaces/BO/catalog/features/createValue';
import BOBasePage from '@pages/BO/BOBasePage';
import {type Page} from '@playwright/test';

/**
* Add feature page, contains functions that can be used on add feature page
* @class
* @extends BOBasePage
*/
class BOFeaturesValueCreatePage extends BOBasePage implements BOFeaturesValueCreatePageInterface {
public readonly createPageTitle: string;

public readonly editPageTitle: string;

private readonly featureSelect: string;

private readonly valueInput: string;

private readonly urlInput: string;

private readonly metaTitleInput: string;

private readonly saveButton: string;

private readonly saveAndStayButton: string;

/**
* @constructs
* Setting up texts and selectors to use on add feature page
*/
constructor() {
super();

this.createPageTitle = `New Feature Value • ${global.INSTALL.SHOP_NAME}`;
this.editPageTitle = `Feature value • ${global.INSTALL.SHOP_NAME}`;

// Form selectors
this.featureSelect = '#feature_value_feature_id';
this.valueInput = '#feature_value_value_1';
this.urlInput = 'input[name=\'url_name_1\']';
this.metaTitleInput = 'input[name=\'meta_title_1\']';
this.saveButton = '#save-button';
this.saveAndStayButton = 'button[name=\'save-and-add-new\']';
}

/**
* Fill value form and save it
* @param page {Page} Browser tab
* @param valueData {FakerFeatureValue} Values to set on add feature value form inputs
* @param saveAndStay {boolean} True if we need to save and stay
* @return {Promise<string>}
*/
// eslint-disable-next-line consistent-return
async addEditValue(page: Page, valueData: FakerFeatureValue, saveAndStay: boolean = false): Promise<string | void> {
// Set group and value
if (!(await this.isDisabled(page, this.featureSelect))) {
await this.selectByVisibleText(page, this.featureSelect, valueData.featureName);
}
await this.setValue(page, this.valueInput, valueData.value);

// Set Url and meta title
//await this.setValue(page, this.urlInput, valueData.url);
//await this.setValue(page, this.metaTitleInput, valueData.metaTitle);

// Save value
if (saveAndStay) {
await page.locator(this.saveAndStayButton).click();
} else {
await this.clickAndWaitForURL(page, this.saveButton);
}
// Return successful message
return this.getAlertSuccessBlockParagraphContent(page);
}
}

module.exports = new BOFeaturesValueCreatePage();

0 comments on commit ff4c026

Please sign in to comment.