Skip to content

Commit

Permalink
boSearchAliasPage : Adapt the page for v9
Browse files Browse the repository at this point in the history
  • Loading branch information
Progi1984 committed Dec 13, 2024
1 parent f89ac22 commit ba6a7ad
Show file tree
Hide file tree
Showing 15 changed files with 884 additions and 478 deletions.
4 changes: 2 additions & 2 deletions src/data/demo/searchAliases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import FakerSearchAlias from '@data/faker/searchAlias';
export default {
bloose: new FakerSearchAlias({
alias: 'bloose',
result: 'blouse',
search: 'blouse',
}),
blues: new FakerSearchAlias({
alias: 'blues',
result: 'blouse',
search: 'blouse',
}),
};
12 changes: 6 additions & 6 deletions src/data/faker/searchAlias.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ import {faker} from '@faker-js/faker';
* @class
*/
export default class FakerSearchAlias {
public readonly alias: string;
public readonly search: string;

public readonly result: string;
public readonly alias: string;

/**
* Constructor for class FakerSearchAlias
* @param aliasToCreate {Object} Could be used to force the value of some members
*/
constructor(aliasToCreate: SearchAliasCreator = {}) {
/** @type {string} Name of the alias */
this.alias = aliasToCreate.alias || `alias_${faker.lorem.word()}`;
/** @type {string} */
this.search = aliasToCreate.search || `search_${faker.lorem.word()}`;

/** @type {string} Result to display on the search */
this.result = aliasToCreate.result || `result_${faker.lorem.word()}`;
/** @type {string} */
this.alias = aliasToCreate.alias || `alias_${faker.lorem.word()}`;
}
}
2 changes: 1 addition & 1 deletion src/data/types/searchAlias.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
type SearchAliasCreator = {
search?: string
alias?: string
result?: string
};

export default SearchAliasCreator;
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ export {default as boQuickAccessPage} from '@pages/BO/quickAccess';
export {default as boRolesPage} from '@pages/BO/advancedParameters/team/roles';
export {default as boRolesCreatePage} from '@pages/BO/advancedParameters/team/roles/create';
export {default as boSearchPage} from '@pages/BO/shopParameters/search';
export {default as boSearchAliasPage} from '@pages/BO/shopParameters/search/alias';
export {default as boSearchAliasCreatePage} from '@pages/BO/shopParameters/search/alias/create';
export {default as boShopParametersPage} from '@pages/BO/shopParameters/general';
export {default as boShoppingCartsPage} from '@pages/BO/orders/shoppingCarts';
Expand Down
29 changes: 29 additions & 0 deletions src/interfaces/BO/shopParameters/search/alias/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import {BOBasePagePageInterface} from '@interfaces/BO';
import {type Page} from '@playwright/test';

export interface BOSearchAliasPageInterface extends BOBasePagePageInterface {
readonly errorFillFieldMessage: string;
readonly errorMaxWordLengthInvalidMessage: string;
readonly pageTitle: string;
readonly settingsUpdateMessage: string;
readonly successfulUpdateStatusMessage: string;
readonly updateSuccessMessage: string;

bulkDeleteAliases(page: Page): Promise<string>;
bulkSetStatus(page: Page, enable?: boolean): Promise<string>;
deleteAlias(page: Page, row: number): Promise<string>;
filterTable(page: Page, filterType: string, filterBy: string, value: string): Promise<void>;
getAllRowsColumnContent(page: Page, columnName: string): Promise<string[]>;
getNumberOfElementInGrid(page: Page): Promise<number>;
getStatus(page: Page, row: number): Promise<boolean>;
getTextColumn(page: Page, row: number, columnName: string): Promise<string>;
goToAddNewAliasPage(page: Page): Promise<void>;
gotoEditAliasPage(page: Page, row: number): Promise<void>;
paginationNext(page: Page): Promise<string>;
paginationPrevious(page: Page): Promise<string>;
resetAndGetNumberOfLines(page: Page): Promise<number>;
resetFilter(page: Page): Promise<void>;
selectPaginationLimit(page: Page, number: number): Promise<string>;
setStatus(page: Page, row: number, valueWanted?: boolean): Promise<boolean>;
sortTable(page: Page, sortBy: string, sortDirection: string): Promise<void>;
}
18 changes: 1 addition & 17 deletions src/interfaces/BO/shopParameters/search/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,19 @@ export interface BOSearchPageInterface extends BOBasePagePageInterface {
readonly successfulUpdateStatusMessage: string;
readonly updateSuccessMessage: string;

bulkDeleteAliases(page: Page): Promise<string>;
bulkSetStatus(page: Page, enable?: boolean): Promise<string>;
deleteAlias(page: Page, row: number): Promise<string>;
clickAddMissingProductsToIndex(page: Page): Promise<string>;
clickRebuildEntireIndex(page: Page): Promise<string>;
clickRebuildEntireIndexCronJobLink(page: Page): Promise<void>;
filterTable(page: Page, filterType: string, filterBy: string, value: string): Promise<void>;
getAllRowsColumnContent(page: Page, columnName: string): Promise<string[]>;
getBlacklistedWords(page: Page, idLang: number): Promise<string>;
getMaximumApproximateWords(page: Page): Promise<number>;
getMaximumWordLength(page: Page): Promise<number>;
getMinimumWordLength(page: Page): Promise<number>;
getNumberOfElementInGrid(page: Page): Promise<number>;
getNumIndexedProducts(page: Page): Promise<number>;
getNumTotalProducts(page: Page): Promise<number>;
getSearchExactEndMatchStatus(page: Page): Promise<boolean>;
getStatus(page: Page, row: number): Promise<boolean>;
getTextColumn(page: Page, row: number, columnName: string): Promise<string>;
getWeightInputValue(page: Page, field: SearchWeight): Promise<number>;
goToAddNewAliasPage(page: Page): Promise<void>;
gotoEditAliasPage(page: Page, row: number): Promise<void>;
goToAliasesPage(page: Page): Promise<void>;
goToTagsPage(page: Page): Promise<void>;
paginationNext(page: Page): Promise<string>;
paginationPrevious(page: Page): Promise<string>;
resetAndGetNumberOfLines(page: Page): Promise<number>;
resetFilter(page: Page): Promise<void>;
selectPaginationLimit(page: Page, number: number): Promise<string>;
setBlacklistedWords(page: Page, idLang: number, words: string): Promise<string>;
setFuzzySearch(page: Page, toEnable?: boolean): Promise<string>;
setIndexing(page: Page, toEnable?: boolean): Promise<string>;
Expand All @@ -45,7 +31,5 @@ export interface BOSearchPageInterface extends BOBasePagePageInterface {
setMinimumWordLength(page: Page, length: number): Promise<string>;
setSearchExactEndMatch(page: Page, toEnable?: boolean): Promise<string>;
setSearchWithinWord(page: Page, toEnable?: boolean): Promise<string>;
setStatus(page: Page, row: number, valueWanted?: boolean): Promise<boolean>;
setWeightInputValue(page: Page, field: SearchWeight, value: number): Promise<string>;
sortTable(page: Page, sortBy: string, sortDirection: string): Promise<void>;
}
9 changes: 8 additions & 1 deletion src/pages/BO/shopParameters/search/alias/create.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
import type {BOAliasCreatePageInterface} from '@interfaces/BO/shopParameters/search/alias/create';
import testContext from '@utils/test';
import semver from 'semver';

const psVersion = testContext.getPSVersion();

/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
function requirePage(): BOAliasCreatePageInterface {
return require('@versions/develop/pages/BO/shopParameters/search/alias/create');
if (semver.lt(psVersion, '9.0.0')) {
return require('@versions/8.2/pages/BO/shopParameters/search/alias/create');
}
return require('@versions/develop/pages/BO/shopParameters/search/alias/create').boSearchAliasCreatePage;
}
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */

Expand Down
16 changes: 16 additions & 0 deletions src/pages/BO/shopParameters/search/alias/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import type {BOSearchAliasPageInterface} from '@interfaces/BO/shopParameters/search/alias';
import testContext from '@utils/test';
import semver from 'semver';

const psVersion = testContext.getPSVersion();

/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
function requirePage(): BOSearchAliasPageInterface {
if (semver.lt(psVersion, '9.0.0')) {
return require('@versions/8.2/pages/BO/shopParameters/search/alias');
}
return require('@versions/develop/pages/BO/shopParameters/search/alias').boSearchAliasPage;
}
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */

export default requirePage();
9 changes: 8 additions & 1 deletion src/pages/BO/shopParameters/search/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
import type {BOSearchPageInterface} from '@interfaces/BO/shopParameters/search';
import testContext from '@utils/test';
import semver from 'semver';

const psVersion = testContext.getPSVersion();

/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
function requirePage(): BOSearchPageInterface {
return require('@versions/develop/pages/BO/shopParameters/search');
if (semver.lt(psVersion, '9.0.0')) {
return require('@versions/8.2/pages/BO/shopParameters/search');
}
return require('@versions/develop/pages/BO/shopParameters/search').boSearchPage;
}
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */

Expand Down
44 changes: 44 additions & 0 deletions src/versions/8.2/pages/BO/shopParameters/search/alias/create.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import type FakerSearchAlias from '@data/faker/searchAlias';
import {BOAliasCreatePageInterface} from '@interfaces/BO/shopParameters/search/alias/create';
import {
BOSearchAliasCreatePage as BOSearchAliasCreatePageVersion,
} from '@versions/develop/pages/BO/shopParameters/search/alias/create';
import type {Page} from 'playwright';

/**
* Search page, contains selectors and functions for the page
* @class
*/
class BOSearchAliasCreatePage extends BOSearchAliasCreatePageVersion implements BOAliasCreatePageInterface {
/**
* @constructs
* Setting up titles and selectors to use on search page
*/
constructor() {
super();

this.pageTitleCreate = 'Search > Add new •';
this.pageTitleEdit = 'Search > Edit:';

// selectors
this.aliasInput = '#alias';
this.resultInput = '#search';
this.saveButton = '#alias_form_submit_btn';
}

/* Methods */
/**
* Create/Edit alias
* @param page {Page} Browser tab
* @param aliasData {FakerSearchAlias} Data to set on alias form
* @returns {Promise<string>}
*/
async setAlias(page: Page, aliasData: FakerSearchAlias): Promise<string> {
await this.setValue(page, this.aliasInput, aliasData.search);
await this.setValue(page, this.resultInput, aliasData.alias);
await page.locator(this.saveButton).click();
return this.getAlertSuccessBlockContent(page);
}
}

module.exports = new BOSearchAliasCreatePage();
Loading

0 comments on commit ba6a7ad

Please sign in to comment.