Skip to content

Commit fa01aff

Browse files
authored
Merge pull request #275 from Progi1984/boSearchPage
`boSearchAliasPage` : Adapt the page for v9
2 parents f89ac22 + ba6a7ad commit fa01aff

File tree

15 files changed

+884
-478
lines changed

15 files changed

+884
-478
lines changed

src/data/demo/searchAliases.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import FakerSearchAlias from '@data/faker/searchAlias';
33
export default {
44
bloose: new FakerSearchAlias({
55
alias: 'bloose',
6-
result: 'blouse',
6+
search: 'blouse',
77
}),
88
blues: new FakerSearchAlias({
99
alias: 'blues',
10-
result: 'blouse',
10+
search: 'blouse',
1111
}),
1212
};

src/data/faker/searchAlias.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import {faker} from '@faker-js/faker';
77
* @class
88
*/
99
export default class FakerSearchAlias {
10-
public readonly alias: string;
10+
public readonly search: string;
1111

12-
public readonly result: string;
12+
public readonly alias: string;
1313

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

22-
/** @type {string} Result to display on the search */
23-
this.result = aliasToCreate.result || `result_${faker.lorem.word()}`;
22+
/** @type {string} */
23+
this.alias = aliasToCreate.alias || `alias_${faker.lorem.word()}`;
2424
}
2525
}

src/data/types/searchAlias.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type SearchAliasCreator = {
2+
search?: string
23
alias?: string
3-
result?: string
44
};
55

66
export default SearchAliasCreator;

src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ export {default as boQuickAccessPage} from '@pages/BO/quickAccess';
253253
export {default as boRolesPage} from '@pages/BO/advancedParameters/team/roles';
254254
export {default as boRolesCreatePage} from '@pages/BO/advancedParameters/team/roles/create';
255255
export {default as boSearchPage} from '@pages/BO/shopParameters/search';
256+
export {default as boSearchAliasPage} from '@pages/BO/shopParameters/search/alias';
256257
export {default as boSearchAliasCreatePage} from '@pages/BO/shopParameters/search/alias/create';
257258
export {default as boShopParametersPage} from '@pages/BO/shopParameters/general';
258259
export {default as boShoppingCartsPage} from '@pages/BO/orders/shoppingCarts';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import {BOBasePagePageInterface} from '@interfaces/BO';
2+
import {type Page} from '@playwright/test';
3+
4+
export interface BOSearchAliasPageInterface extends BOBasePagePageInterface {
5+
readonly errorFillFieldMessage: string;
6+
readonly errorMaxWordLengthInvalidMessage: string;
7+
readonly pageTitle: string;
8+
readonly settingsUpdateMessage: string;
9+
readonly successfulUpdateStatusMessage: string;
10+
readonly updateSuccessMessage: string;
11+
12+
bulkDeleteAliases(page: Page): Promise<string>;
13+
bulkSetStatus(page: Page, enable?: boolean): Promise<string>;
14+
deleteAlias(page: Page, row: number): Promise<string>;
15+
filterTable(page: Page, filterType: string, filterBy: string, value: string): Promise<void>;
16+
getAllRowsColumnContent(page: Page, columnName: string): Promise<string[]>;
17+
getNumberOfElementInGrid(page: Page): Promise<number>;
18+
getStatus(page: Page, row: number): Promise<boolean>;
19+
getTextColumn(page: Page, row: number, columnName: string): Promise<string>;
20+
goToAddNewAliasPage(page: Page): Promise<void>;
21+
gotoEditAliasPage(page: Page, row: number): Promise<void>;
22+
paginationNext(page: Page): Promise<string>;
23+
paginationPrevious(page: Page): Promise<string>;
24+
resetAndGetNumberOfLines(page: Page): Promise<number>;
25+
resetFilter(page: Page): Promise<void>;
26+
selectPaginationLimit(page: Page, number: number): Promise<string>;
27+
setStatus(page: Page, row: number, valueWanted?: boolean): Promise<boolean>;
28+
sortTable(page: Page, sortBy: string, sortDirection: string): Promise<void>;
29+
}

src/interfaces/BO/shopParameters/search/index.ts

+1-17
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,19 @@ export interface BOSearchPageInterface extends BOBasePagePageInterface {
1010
readonly successfulUpdateStatusMessage: string;
1111
readonly updateSuccessMessage: string;
1212

13-
bulkDeleteAliases(page: Page): Promise<string>;
14-
bulkSetStatus(page: Page, enable?: boolean): Promise<string>;
15-
deleteAlias(page: Page, row: number): Promise<string>;
1613
clickAddMissingProductsToIndex(page: Page): Promise<string>;
1714
clickRebuildEntireIndex(page: Page): Promise<string>;
1815
clickRebuildEntireIndexCronJobLink(page: Page): Promise<void>;
19-
filterTable(page: Page, filterType: string, filterBy: string, value: string): Promise<void>;
20-
getAllRowsColumnContent(page: Page, columnName: string): Promise<string[]>;
2116
getBlacklistedWords(page: Page, idLang: number): Promise<string>;
2217
getMaximumApproximateWords(page: Page): Promise<number>;
2318
getMaximumWordLength(page: Page): Promise<number>;
2419
getMinimumWordLength(page: Page): Promise<number>;
25-
getNumberOfElementInGrid(page: Page): Promise<number>;
2620
getNumIndexedProducts(page: Page): Promise<number>;
2721
getNumTotalProducts(page: Page): Promise<number>;
2822
getSearchExactEndMatchStatus(page: Page): Promise<boolean>;
29-
getStatus(page: Page, row: number): Promise<boolean>;
30-
getTextColumn(page: Page, row: number, columnName: string): Promise<string>;
3123
getWeightInputValue(page: Page, field: SearchWeight): Promise<number>;
32-
goToAddNewAliasPage(page: Page): Promise<void>;
33-
gotoEditAliasPage(page: Page, row: number): Promise<void>;
24+
goToAliasesPage(page: Page): Promise<void>;
3425
goToTagsPage(page: Page): Promise<void>;
35-
paginationNext(page: Page): Promise<string>;
36-
paginationPrevious(page: Page): Promise<string>;
37-
resetAndGetNumberOfLines(page: Page): Promise<number>;
38-
resetFilter(page: Page): Promise<void>;
39-
selectPaginationLimit(page: Page, number: number): Promise<string>;
4026
setBlacklistedWords(page: Page, idLang: number, words: string): Promise<string>;
4127
setFuzzySearch(page: Page, toEnable?: boolean): Promise<string>;
4228
setIndexing(page: Page, toEnable?: boolean): Promise<string>;
@@ -45,7 +31,5 @@ export interface BOSearchPageInterface extends BOBasePagePageInterface {
4531
setMinimumWordLength(page: Page, length: number): Promise<string>;
4632
setSearchExactEndMatch(page: Page, toEnable?: boolean): Promise<string>;
4733
setSearchWithinWord(page: Page, toEnable?: boolean): Promise<string>;
48-
setStatus(page: Page, row: number, valueWanted?: boolean): Promise<boolean>;
4934
setWeightInputValue(page: Page, field: SearchWeight, value: number): Promise<string>;
50-
sortTable(page: Page, sortBy: string, sortDirection: string): Promise<void>;
5135
}

src/pages/BO/shopParameters/search/alias/create.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import type {BOAliasCreatePageInterface} from '@interfaces/BO/shopParameters/search/alias/create';
2+
import testContext from '@utils/test';
3+
import semver from 'semver';
4+
5+
const psVersion = testContext.getPSVersion();
26

37
/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
48
function requirePage(): BOAliasCreatePageInterface {
5-
return require('@versions/develop/pages/BO/shopParameters/search/alias/create');
9+
if (semver.lt(psVersion, '9.0.0')) {
10+
return require('@versions/8.2/pages/BO/shopParameters/search/alias/create');
11+
}
12+
return require('@versions/develop/pages/BO/shopParameters/search/alias/create').boSearchAliasCreatePage;
613
}
714
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
815

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import type {BOSearchAliasPageInterface} from '@interfaces/BO/shopParameters/search/alias';
2+
import testContext from '@utils/test';
3+
import semver from 'semver';
4+
5+
const psVersion = testContext.getPSVersion();
6+
7+
/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
8+
function requirePage(): BOSearchAliasPageInterface {
9+
if (semver.lt(psVersion, '9.0.0')) {
10+
return require('@versions/8.2/pages/BO/shopParameters/search/alias');
11+
}
12+
return require('@versions/develop/pages/BO/shopParameters/search/alias').boSearchAliasPage;
13+
}
14+
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
15+
16+
export default requirePage();

src/pages/BO/shopParameters/search/index.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import type {BOSearchPageInterface} from '@interfaces/BO/shopParameters/search';
2+
import testContext from '@utils/test';
3+
import semver from 'semver';
4+
5+
const psVersion = testContext.getPSVersion();
26

37
/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
48
function requirePage(): BOSearchPageInterface {
5-
return require('@versions/develop/pages/BO/shopParameters/search');
9+
if (semver.lt(psVersion, '9.0.0')) {
10+
return require('@versions/8.2/pages/BO/shopParameters/search');
11+
}
12+
return require('@versions/develop/pages/BO/shopParameters/search').boSearchPage;
613
}
714
/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
815

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import type FakerSearchAlias from '@data/faker/searchAlias';
2+
import {BOAliasCreatePageInterface} from '@interfaces/BO/shopParameters/search/alias/create';
3+
import {
4+
BOSearchAliasCreatePage as BOSearchAliasCreatePageVersion,
5+
} from '@versions/develop/pages/BO/shopParameters/search/alias/create';
6+
import type {Page} from 'playwright';
7+
8+
/**
9+
* Search page, contains selectors and functions for the page
10+
* @class
11+
*/
12+
class BOSearchAliasCreatePage extends BOSearchAliasCreatePageVersion implements BOAliasCreatePageInterface {
13+
/**
14+
* @constructs
15+
* Setting up titles and selectors to use on search page
16+
*/
17+
constructor() {
18+
super();
19+
20+
this.pageTitleCreate = 'Search > Add new •';
21+
this.pageTitleEdit = 'Search > Edit:';
22+
23+
// selectors
24+
this.aliasInput = '#alias';
25+
this.resultInput = '#search';
26+
this.saveButton = '#alias_form_submit_btn';
27+
}
28+
29+
/* Methods */
30+
/**
31+
* Create/Edit alias
32+
* @param page {Page} Browser tab
33+
* @param aliasData {FakerSearchAlias} Data to set on alias form
34+
* @returns {Promise<string>}
35+
*/
36+
async setAlias(page: Page, aliasData: FakerSearchAlias): Promise<string> {
37+
await this.setValue(page, this.aliasInput, aliasData.search);
38+
await this.setValue(page, this.resultInput, aliasData.alias);
39+
await page.locator(this.saveButton).click();
40+
return this.getAlertSuccessBlockContent(page);
41+
}
42+
}
43+
44+
module.exports = new BOSearchAliasCreatePage();

0 commit comments

Comments
 (0)