diff --git a/src/page-objects/AdministrationPages.ts b/src/page-objects/AdministrationPages.ts index 4905b4d..631b0b4 100644 --- a/src/page-objects/AdministrationPages.ts +++ b/src/page-objects/AdministrationPages.ts @@ -14,6 +14,7 @@ import { ShippingListing } from './administration/ShippingListing'; import { LandingPageCreate } from './administration/LandingPageCreate'; import { LandingPageDetail } from './administration/LandingPageDetail'; import { Categories } from './administration/Categories'; +import { RuleDetail } from './administration/RuleDetail'; export interface AdministrationPageTypes { AdminProductDetail: ProductDetail; @@ -29,6 +30,7 @@ export interface AdministrationPageTypes { AdminCategories: Categories; AdminLandingPageCreate: LandingPageCreate; AdminLandingPageDetail: LandingPageDetail; + AdminRuleDetail: RuleDetail; } export const AdminPageObjects = { @@ -45,6 +47,7 @@ export const AdminPageObjects = { Categories, LandingPageCreate, LandingPageDetail, + RuleDetail, } export const test = base.extend({ @@ -100,4 +103,7 @@ export const test = base.extend({ AdminLandingPageCreate: async ({ AdminPage }, use) => { await use(new LandingPageCreate(AdminPage)); }, + AdminRuleDetail: async ({ AdminPage }, use) => { + await use(new RuleDetail(AdminPage)); + }, }); \ No newline at end of file diff --git a/src/page-objects/administration/RuleDetail.ts b/src/page-objects/administration/RuleDetail.ts new file mode 100644 index 0000000..96e484a --- /dev/null +++ b/src/page-objects/administration/RuleDetail.ts @@ -0,0 +1,17 @@ +import type { Page, Locator } from '@playwright/test'; +import type { PageObject } from '../../types/PageObject'; + +export class RuleDetail implements PageObject { + + public readonly nameInput: Locator; + public readonly priorityInput: Locator; + + constructor(public readonly page: Page) { + this.nameInput = page.getByLabel('Name'); + this.priorityInput = page.getByLabel('Priority') + } + + url(ruleId: string, tabName = 'base') { + return `#/sw/settings/rule/detail/${ruleId}/${tabName}` + } +} \ No newline at end of file diff --git a/src/services/TestDataService.ts b/src/services/TestDataService.ts index a6b00b5..7ccec64 100644 --- a/src/services/TestDataService.ts +++ b/src/services/TestDataService.ts @@ -617,10 +617,13 @@ export class TestDataService { * @param overrides - Specific data overrides that will be applied to the payment method data struct. */ async createBasicRule( - overrides: Partial = {} + overrides: Partial = {}, + conditionType = 'cartCartAmount', + operator = '>=', + amount = 1, ): Promise { - const basicRule = this.getBasicRuleStruct(overrides); + const basicRule = this.getBasicRuleStruct(overrides, conditionType, operator, amount); const ruleResponse = await this.AdminApiClient.post('rule?_response=detail', { data: basicRule, @@ -1347,9 +1350,9 @@ export class TestDataService { getBasicRuleStruct( overrides: Partial = {}, - conditionType = 'cartCartAmount', - operator = '>=', - amount = 1, + conditionType: string, + operator: string, + amount: number, ): Partial { const { id: ruleId, uuid: ruleUuid } = this.IdProvider.getIdPair();