From 46321682fef5c468f4cb30553828bdf52e5ee1f1 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Mon, 3 Mar 2025 14:15:22 +0100 Subject: [PATCH] Migrate `@pages/BO/shopParameters/orderSettings/statuses/returnStatus/add` from Core --- src/index.ts | 1 + .../orderStatuses/returnStatuses/create.ts | 10 +++ .../orderStatuses/returnStatuses/create.ts | 11 ++++ .../orderStatuses/returnStatuses/create.ts | 62 +++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 src/interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts create mode 100644 src/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts create mode 100644 src/versions/develop/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts diff --git a/src/index.ts b/src/index.ts index a0a33d6a..add324ef 100644 --- a/src/index.ts +++ b/src/index.ts @@ -308,6 +308,7 @@ export {default as boProductsCreateTabStocksPage} from '@pages/BO/catalog/produc export {default as boProductsCreateTabVirtualProductPage} from '@pages/BO/catalog/products/create/tabVirtualProduct'; export {default as boProductSettingsPage} from '@pages/BO/shopParameters/productSettings'; export {default as boQuickAccessPage} from '@pages/BO/quickAccess'; +export {default as boReturnStatusesCreatePage} from '@pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create'; 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'; diff --git a/src/interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts b/src/interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts new file mode 100644 index 00000000..55d61a3f --- /dev/null +++ b/src/interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts @@ -0,0 +1,10 @@ +import type FakerOrderReturnStatus from '@data/faker/orderReturnStatus'; +import {BOBasePagePageInterface} from '@interfaces/BO'; +import {type Page} from '@playwright/test'; + +export interface BOReturnStatusesCreatePageInterface extends BOBasePagePageInterface { + readonly pageTitleCreate: string; + readonly pageTitleEdit: (name: string) => string; + + setOrderReturnStatus(page: Page, orderReturnStatusData: FakerOrderReturnStatus): Promise; +} diff --git a/src/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts b/src/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts new file mode 100644 index 00000000..806a37a7 --- /dev/null +++ b/src/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts @@ -0,0 +1,11 @@ +import { + type BOReturnStatusesCreatePageInterface, +} from '@interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create'; + +/* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */ +function requirePage(): BOReturnStatusesCreatePageInterface { + return require('@versions/develop/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create'); +} +/* eslint-enable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */ + +export default requirePage(); diff --git a/src/versions/develop/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts b/src/versions/develop/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts new file mode 100644 index 00000000..d1449454 --- /dev/null +++ b/src/versions/develop/pages/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create.ts @@ -0,0 +1,62 @@ +import type FakerOrderReturnStatus from '@data/faker/orderReturnStatus'; +import { + type BOReturnStatusesCreatePageInterface, +} from '@interfaces/BO/shopParameters/orderSettings/orderStatuses/returnStatuses/create'; +import BOBasePage from '@pages/BO/BOBasePage'; +import {type Page} from '@playwright/test'; + +/** + * Add order return status page, contains selectors and functions for the page + * @class + * @extends BOBasePage + */ +class BOReturnStatusesCreatePage extends BOBasePage implements BOReturnStatusesCreatePageInterface { + public readonly pageTitleCreate: string; + + public readonly pageTitleEdit: (name: string) => string; + + private readonly nameInput: string; + + private readonly colorInput: string; + + private readonly saveButton: string; + + /** + * @constructs + * Setting up titles and selectors to use on add order return status page + */ + constructor() { + super(); + + this.pageTitleCreate = `New return status • ${global.INSTALL.SHOP_NAME}`; + this.pageTitleEdit = (name: string) => `Editing return status ${name} • ${global.INSTALL.SHOP_NAME}`; + + // Form selectors + this.nameInput = '#order_return_state_name_1'; + this.colorInput = '#order_return_state_color'; + this.saveButton = '#save-button'; + } + + /* Methods */ + + /** + * Fill order return status form + * @param page {Page} Browser tab + * @param orderReturnStatusData {FakerOrderReturnStatus} Data to set on order return status form + * @return {Promise} + */ + async setOrderReturnStatus(page: Page, orderReturnStatusData: FakerOrderReturnStatus): Promise { + await this.setValue(page, this.nameInput, orderReturnStatusData.name); + + // Set color + await this.setInputValue(page, this.colorInput, orderReturnStatusData.color); + + // Save order return status + await this.clickAndWaitForURL(page, this.saveButton); + + // Return successful message + return this.getAlertSuccessBlockParagraphContent(page); + } +} + +module.exports = new BOReturnStatusesCreatePage();