@shopware-ag/acceptance-test-suite 5.0.1 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/dist/index.d.mts +227 -47
- package/dist/index.d.ts +227 -47
- package/dist/index.mjs +1111 -567
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ This test suite is an extension to [Playwright](https://playwright.dev/) to easi
|
|
|
14
14
|
* [Page Objects](#page-objects)
|
|
15
15
|
* [Actor Pattern](#actor-pattern)
|
|
16
16
|
* [Data Fixtures](#data-fixtures)
|
|
17
|
+
* [Test Data Service](#test-data-service)
|
|
17
18
|
* [Code Contribution](#code-contribution)
|
|
18
19
|
* [Best practices](#best-practices)
|
|
19
20
|
|
|
@@ -321,6 +322,12 @@ test('Customer login test scenario', async ({ ShopCustomer, Login }) => {
|
|
|
321
322
|
You can create your own tasks in the same way to make them available for the actor pattern. Every task is just a simple Playwright fixture containing a function call with the corresponding test logic. Make sure to merge your task fixtures with other fixtures you created in your base test file. You can use the `mergeTests` method of Playwright to combine several fixtures into one test extension.
|
|
322
323
|
|
|
323
324
|
## Data Fixtures
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
**Deprecated:** Use the [Test Data Service](#test-data-service) instead.
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
324
331
|
We already covered a lot of interesting fixtures you can use to create your test scenario. One topic which is missing is test data. Most test scenarios will need some predefined state within the system under test to validate a certain behaviour. Within this test suite we use Playwright fixtures also to create necessary test data via API. The goal is to have no direct system dependencies like a database connection to the system under test.
|
|
325
332
|
|
|
326
333
|
**Example**
|
|
@@ -374,6 +381,58 @@ test('Property group test scenario', async ({ PropertiesData }) => {
|
|
|
374
381
|
|
|
375
382
|
If you create your own data fixtures make sure to import and merge them in your base test file with other fixtures you created.
|
|
376
383
|
|
|
384
|
+
## Test Data Service
|
|
385
|
+
This service is a simple way to create test data within your tests. It simplifies the usage of the Shopware API and provides sample structs for various entities, which you also can adjust to your needs. For detailed documentation of the methods you can have a look at the service class or simply use the auto-completion of your IDE. Here is a list of available methods:
|
|
386
|
+
|
|
387
|
+
### Creating Data
|
|
388
|
+
* `createBasicProduct()`
|
|
389
|
+
* `createProductWithImage()`
|
|
390
|
+
* `createDigitalProduct()`
|
|
391
|
+
* `createProductWithPriceRange()`
|
|
392
|
+
* `createBasicManufacturer()`
|
|
393
|
+
* `createManufacturerWithImage()`
|
|
394
|
+
* `createCategory()`
|
|
395
|
+
* `createMediaPNG()`
|
|
396
|
+
* `createMediaTXT()`
|
|
397
|
+
* `createColorPropertyGroup()`
|
|
398
|
+
* `createTextPropertyGroup()`
|
|
399
|
+
* `createTag()`
|
|
400
|
+
* `createCustomer()`
|
|
401
|
+
* `createOrder()`
|
|
402
|
+
* `createPromotionWithCode()`
|
|
403
|
+
* `createBasicPaymentMethod()`
|
|
404
|
+
* `createPaymentMethodWithImage()`
|
|
405
|
+
* `createBasicShippingMethod()`
|
|
406
|
+
* `createShippingMethodWithImage()`
|
|
407
|
+
* `createBasicRule()`
|
|
408
|
+
* `createBasicPageLayout()`
|
|
409
|
+
|
|
410
|
+
### Relations
|
|
411
|
+
* `assignProductDownload()`
|
|
412
|
+
* `assignProductMedia()`
|
|
413
|
+
* `assignProductManufacturer()`
|
|
414
|
+
* `assignProductCategory()`
|
|
415
|
+
* `assignProductTag()`
|
|
416
|
+
* `assignManufacturerMedia()`
|
|
417
|
+
* `assignPaymentMethodMedia()`
|
|
418
|
+
* `assignShippingMethodMedia()`
|
|
419
|
+
|
|
420
|
+
### Retrieving Basic Data
|
|
421
|
+
* `getCurrency()`
|
|
422
|
+
* `getRule()`
|
|
423
|
+
* `getShippingMethod()`
|
|
424
|
+
* `getPaymentMethod()`
|
|
425
|
+
* `getAllDeliveryTimeResources()`
|
|
426
|
+
* `getCustomerAddress()`
|
|
427
|
+
* `getSalutation()`
|
|
428
|
+
* `getOrderStateMachine()`
|
|
429
|
+
* `getDeliveryStateMachine()`
|
|
430
|
+
* `getTransactionStateMachine()`
|
|
431
|
+
* `getTransactionStateMachine()`
|
|
432
|
+
* `getStateMachine()`
|
|
433
|
+
* `getStateMachineState()`
|
|
434
|
+
* `getPropertyGroupOptions()`
|
|
435
|
+
|
|
377
436
|
## Code Contribution
|
|
378
437
|
You can contribute to this project via its [official repository](https://github.com/shopware/acceptance-test-suite/) on GitHub.
|
|
379
438
|
|
|
@@ -406,3 +465,22 @@ The most important part is [test isolation](https://playwright.dev/docs/best-pra
|
|
|
406
465
|
- do not expect the shop to have the defaults en_GB and EUR
|
|
407
466
|
- do not change global settings (sales channel is ok, because it's created by us)
|
|
408
467
|
- basically everything in Settings that is not specific to a sales channel (tax, search, etc.)
|
|
468
|
+
|
|
469
|
+
## Running Tests in the Test Suite
|
|
470
|
+
If you want to work on the test suite and try to execute tests from within this repository, you have to run a corresponding docker image for a specific Shopware version.
|
|
471
|
+
|
|
472
|
+
Shopware 6.6
|
|
473
|
+
```
|
|
474
|
+
docker compose up -d shopware
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
Shopware 6.5
|
|
478
|
+
```
|
|
479
|
+
docker compose up -d shopware-65
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
When the docker container is running you can execute the normal playwright commands.
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
npx playwright test
|
|
486
|
+
```
|
package/dist/index.d.mts
CHANGED
|
@@ -171,9 +171,27 @@ declare class IdProvider {
|
|
|
171
171
|
type SalesChannel = components['schemas']['SalesChannel'] & {
|
|
172
172
|
id: string;
|
|
173
173
|
};
|
|
174
|
-
type Customer = components['schemas']['Customer'] & {
|
|
174
|
+
type Customer = Omit<components['schemas']['Customer'], 'defaultShippingAddress' | 'defaultBillingAddress'> & {
|
|
175
175
|
id: string;
|
|
176
176
|
password: string;
|
|
177
|
+
defaultShippingAddress: {
|
|
178
|
+
firstName: string;
|
|
179
|
+
lastName: string;
|
|
180
|
+
city: string;
|
|
181
|
+
street: string;
|
|
182
|
+
zipcode: string;
|
|
183
|
+
countryId: string;
|
|
184
|
+
salutationId: string;
|
|
185
|
+
};
|
|
186
|
+
defaultBillingAddress: {
|
|
187
|
+
firstName: string;
|
|
188
|
+
lastName: string;
|
|
189
|
+
city: string;
|
|
190
|
+
street: string;
|
|
191
|
+
zipcode: string;
|
|
192
|
+
countryId: string;
|
|
193
|
+
salutationId: string;
|
|
194
|
+
};
|
|
177
195
|
};
|
|
178
196
|
type CustomerAddress = components['schemas']['CustomerAddress'] & {
|
|
179
197
|
id: string;
|
|
@@ -235,6 +253,9 @@ type Rule = components['schemas']['Rule'] & {
|
|
|
235
253
|
type Currency$1 = components['schemas']['Currency'] & {
|
|
236
254
|
id: string;
|
|
237
255
|
};
|
|
256
|
+
type Country = components['schemas']['Country'] & {
|
|
257
|
+
id: string;
|
|
258
|
+
};
|
|
238
259
|
interface CalculatedTaxes {
|
|
239
260
|
tax: number;
|
|
240
261
|
taxRate: number;
|
|
@@ -398,6 +419,14 @@ declare class TestDataService {
|
|
|
398
419
|
* @param currencyId - The uuid of the currency to use for the product pricing.
|
|
399
420
|
*/
|
|
400
421
|
createProductWithPriceRange(overrides?: Partial<Product>, taxId?: string, currencyId?: string): Promise<Product>;
|
|
422
|
+
/**
|
|
423
|
+
* Creates basic variant products based on property group.
|
|
424
|
+
*
|
|
425
|
+
* @param parentProduct Parent product of the variants
|
|
426
|
+
* @param propertyGroups Property group collection which contain options
|
|
427
|
+
* @param overrides - Specific data overrides that will be applied to the variant data struct.
|
|
428
|
+
*/
|
|
429
|
+
createVariantProducts(parentProduct: Product, propertyGroups: PropertyGroup[], overrides?: Partial<Product>): Promise<Product[]>;
|
|
401
430
|
/**
|
|
402
431
|
* Creates a basic manufacturer without images or other special configuration.
|
|
403
432
|
*
|
|
@@ -483,19 +512,6 @@ declare class TestDataService {
|
|
|
483
512
|
* @param overrides - Specific data overrides that will be applied to the payment method data struct.
|
|
484
513
|
*/
|
|
485
514
|
createBasicPaymentMethod(overrides?: Partial<PaymentMethod>): Promise<PaymentMethod>;
|
|
486
|
-
/**
|
|
487
|
-
* Creates a new basic rule with the condition cart amount >= 1.
|
|
488
|
-
*
|
|
489
|
-
* @param overrides - Specific data overrides that will be applied to the payment method data struct.
|
|
490
|
-
*/
|
|
491
|
-
createBasicRule(overrides?: Partial<Rule>, conditionType?: string, operator?: string, amount?: number): Promise<Rule>;
|
|
492
|
-
/**
|
|
493
|
-
* Creates a new basic page layout.
|
|
494
|
-
*
|
|
495
|
-
* @param cmsPageType - The type of the cms page layout (page/landingpage/product_detail/product_list).
|
|
496
|
-
* @param overrides - Specific data overrides that will be applied to the cms page layout data struct.
|
|
497
|
-
*/
|
|
498
|
-
createBasicPageLayout(cmsPageType: string, overrides?: Partial<CmsPage>): Promise<CmsPage>;
|
|
499
515
|
/**
|
|
500
516
|
* Creates a payment method with one randomly generated image.
|
|
501
517
|
*
|
|
@@ -503,13 +519,11 @@ declare class TestDataService {
|
|
|
503
519
|
*/
|
|
504
520
|
createPaymentMethodWithImage(overrides?: Partial<PaymentMethod>): Promise<PaymentMethod>;
|
|
505
521
|
/**
|
|
506
|
-
* Creates basic
|
|
522
|
+
* Creates a new basic shipping method with random delivery time.
|
|
507
523
|
*
|
|
508
|
-
* @param
|
|
509
|
-
* @param propertyGroups Property group collection which contain options
|
|
510
|
-
* @param overrides - Specific data overrides that will be applied to the variant data struct.
|
|
524
|
+
* @param overrides - Specific data overrides that will be applied to the shipping method data struct.
|
|
511
525
|
*/
|
|
512
|
-
|
|
526
|
+
createBasicShippingMethod(overrides?: Partial<ShippingMethod>): Promise<ShippingMethod>;
|
|
513
527
|
/**
|
|
514
528
|
* Creates a shipping method with one randomly generated image.
|
|
515
529
|
*
|
|
@@ -517,24 +531,31 @@ declare class TestDataService {
|
|
|
517
531
|
*/
|
|
518
532
|
createShippingMethodWithImage(overrides?: Partial<ShippingMethod>): Promise<ShippingMethod>;
|
|
519
533
|
/**
|
|
520
|
-
* Creates a new basic
|
|
534
|
+
* Creates a new basic rule with the condition cart amount >= 1.
|
|
521
535
|
*
|
|
522
|
-
* @param overrides - Specific data overrides that will be applied to the
|
|
536
|
+
* @param overrides - Specific data overrides that will be applied to the payment method data struct.
|
|
523
537
|
*/
|
|
524
|
-
|
|
538
|
+
createBasicRule(overrides?: Partial<Rule>, conditionType?: string, operator?: string, amount?: number): Promise<Rule>;
|
|
525
539
|
/**
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
* @param
|
|
540
|
+
* Creates a new basic page layout.
|
|
541
|
+
*
|
|
542
|
+
* @param cmsPageType - The type of the cms page layout (page/landingpage/product_detail/product_list).
|
|
543
|
+
* @param overrides - Specific data overrides that will be applied to the cms page layout data struct.
|
|
529
544
|
*/
|
|
530
|
-
|
|
545
|
+
createBasicPageLayout(cmsPageType: string, overrides?: Partial<CmsPage>): Promise<CmsPage>;
|
|
531
546
|
/**
|
|
532
|
-
*
|
|
547
|
+
* Creates a random country
|
|
533
548
|
*
|
|
534
|
-
* @param
|
|
535
|
-
* @param mediaId - The uuid of the media resource.
|
|
549
|
+
* @param overrides - Specific data overrides that will be applied to the country data struct.
|
|
536
550
|
*/
|
|
537
|
-
|
|
551
|
+
createCountry(overrides?: Partial<Country>): Promise<Country>;
|
|
552
|
+
/**
|
|
553
|
+
* Creates a random currency with default rounding of 2 decimals
|
|
554
|
+
*
|
|
555
|
+
* @param roundingDecimals - Decimals of the rounding shown in Storefront, default value 2
|
|
556
|
+
* @param overrides - Specific data overrides that will be applied to the currency data struct.
|
|
557
|
+
*/
|
|
558
|
+
createCurrency(overrides?: Partial<Currency$1>, roundingDecimals?: number): Promise<Currency$1>;
|
|
538
559
|
/**
|
|
539
560
|
* Assigns a media resource as the download of a digital product.
|
|
540
561
|
*
|
|
@@ -550,19 +571,20 @@ declare class TestDataService {
|
|
|
550
571
|
*/
|
|
551
572
|
assignProductMedia(productId: string, mediaId: string): Promise<any>;
|
|
552
573
|
/**
|
|
553
|
-
* Assigns a
|
|
574
|
+
* Assigns a manufacturer to a product.
|
|
554
575
|
*
|
|
576
|
+
* @param productId - The uuid of the product.
|
|
555
577
|
* @param manufacturerId - The uuid of the manufacturer.
|
|
556
|
-
* @param mediaId - The uuid of the media resource.
|
|
557
578
|
*/
|
|
558
|
-
|
|
579
|
+
assignProductManufacturer(productId: string, manufacturerId: string): Promise<void>;
|
|
559
580
|
/**
|
|
560
|
-
* Assigns a
|
|
581
|
+
* Assigns a country to a currency with default roundings of 2.
|
|
561
582
|
*
|
|
562
|
-
* @param
|
|
563
|
-
* @param
|
|
583
|
+
* @param currencyId - The uuid of currency.
|
|
584
|
+
* @param countryId - The uuid of country.
|
|
585
|
+
* @param roundingDecimals - The roundings of item and total values in storefront, default 2 decimals
|
|
564
586
|
*/
|
|
565
|
-
|
|
587
|
+
assignCurrencyCountryRounding(currencyId: string, countryId: string, roundingDecimals?: number): Promise<any>;
|
|
566
588
|
/**
|
|
567
589
|
* Assigns a product to a category.
|
|
568
590
|
*
|
|
@@ -577,6 +599,50 @@ declare class TestDataService {
|
|
|
577
599
|
* @param tagId - The uuid of the tag.
|
|
578
600
|
*/
|
|
579
601
|
assignProductTag(productId: string, tagId: string): Promise<playwright_core.APIResponse>;
|
|
602
|
+
/**
|
|
603
|
+
* Assigns a media resource to a manufacturer as a logo.
|
|
604
|
+
*
|
|
605
|
+
* @param manufacturerId - The uuid of the manufacturer.
|
|
606
|
+
* @param mediaId - The uuid of the media resource.
|
|
607
|
+
*/
|
|
608
|
+
assignManufacturerMedia(manufacturerId: string, mediaId: string): Promise<any>;
|
|
609
|
+
/**
|
|
610
|
+
* Assigns a manufacturer to a product.
|
|
611
|
+
*
|
|
612
|
+
* @deprecated - Use `assignProductManufacturer` instead.
|
|
613
|
+
*
|
|
614
|
+
* @param manufacturerId - The uuid of the manufacturer.
|
|
615
|
+
* @param productId - The uuid of the product.
|
|
616
|
+
*/
|
|
617
|
+
assignManufacturerProduct(manufacturerId: string, productId: string): Promise<void>;
|
|
618
|
+
/**
|
|
619
|
+
* Assigns a currency to a sales channel.
|
|
620
|
+
*
|
|
621
|
+
* @param salesChannelId - The uuid of the sales channel.
|
|
622
|
+
* @param currencyId - The uuid of the currency.
|
|
623
|
+
*/
|
|
624
|
+
assignSalesChannelCurrency(salesChannelId: string, currencyId: string): Promise<any>;
|
|
625
|
+
/**
|
|
626
|
+
* Assigns a country to a sales channel.
|
|
627
|
+
*
|
|
628
|
+
* @param salesChannelId - The uuid of the sales channel.
|
|
629
|
+
* @param countryId - The uuid of the country.
|
|
630
|
+
*/
|
|
631
|
+
assignSalesChannelCountry(salesChannelId: string, countryId: string): Promise<any>;
|
|
632
|
+
/**
|
|
633
|
+
* Assigns a media resource to a payment method as a logo.
|
|
634
|
+
*
|
|
635
|
+
* @param paymentMethodId - The uuid of the payment method.
|
|
636
|
+
* @param mediaId - The uuid of the media resource.
|
|
637
|
+
*/
|
|
638
|
+
assignPaymentMethodMedia(paymentMethodId: string, mediaId: string): Promise<any>;
|
|
639
|
+
/**
|
|
640
|
+
* Assigns a media resource to a shipping method as a logo.
|
|
641
|
+
*
|
|
642
|
+
* @param shippingMethodId - The uuid of the shipping method.
|
|
643
|
+
* @param mediaId - The uuid of the media resource.
|
|
644
|
+
*/
|
|
645
|
+
assignShippingMethodMedia(shippingMethodId: string, mediaId: string): Promise<any>;
|
|
580
646
|
/**
|
|
581
647
|
* Retrieves a currency based on its ISO code.
|
|
582
648
|
*
|
|
@@ -595,13 +661,6 @@ declare class TestDataService {
|
|
|
595
661
|
* @param name - The name of the shipping method. Default is "Standard".
|
|
596
662
|
*/
|
|
597
663
|
getShippingMethod(name?: string): Promise<ShippingMethod>;
|
|
598
|
-
/**
|
|
599
|
-
* Assigns a media resource to a shipping method as a logo.
|
|
600
|
-
*
|
|
601
|
-
* @param shippingMethodId - The uuid of the shipping method.
|
|
602
|
-
* @param mediaId - The uuid of the media resource.
|
|
603
|
-
*/
|
|
604
|
-
assignShippingMethodMedia(shippingMethodId: string, mediaId: string): Promise<any>;
|
|
605
664
|
/**
|
|
606
665
|
* Retrieves all delivery time resources.
|
|
607
666
|
*/
|
|
@@ -674,12 +733,28 @@ declare class TestDataService {
|
|
|
674
733
|
* Will delete all entities created by the data service via sync API.
|
|
675
734
|
*/
|
|
676
735
|
cleanUp(): Promise<playwright_core.APIResponse | null>;
|
|
736
|
+
isProduct(item: Product | Promotion): item is Product;
|
|
737
|
+
isPromotion(item: Product | Promotion): item is Promotion;
|
|
677
738
|
/**
|
|
678
739
|
* Convert a JS date object into a date-time compatible string.
|
|
679
740
|
*
|
|
680
741
|
* @param date - The JS date object from which the date-time should be retrieved.
|
|
681
742
|
*/
|
|
682
743
|
convertDateTime(date: Date): string;
|
|
744
|
+
/**
|
|
745
|
+
* Function that generates combinations from n number of arrays
|
|
746
|
+
* with m number of elements in them.
|
|
747
|
+
* @param array
|
|
748
|
+
*/
|
|
749
|
+
combineAll: (array: Record<string, string>[][]) => Record<string, string>[][];
|
|
750
|
+
/**
|
|
751
|
+
* Retrieves a country Id based on its iso2 code.
|
|
752
|
+
*
|
|
753
|
+
* @param iso2 - The iso2 code of the country, for example "DE".
|
|
754
|
+
*/
|
|
755
|
+
getCountryId(iso2: string): Promise<Country>;
|
|
756
|
+
getCountryStruct(overrides?: Partial<Country>): Partial<Country>;
|
|
757
|
+
getCurrencyStruct(overrides: Partial<Currency$1> | undefined, roundingDecimals: number): Partial<Currency$1>;
|
|
683
758
|
getBasicProductStruct(taxId?: string, currencyId?: string, overrides?: Partial<Product>): Partial<Product>;
|
|
684
759
|
getBasicRuleStruct(overrides: Partial<Rule> | undefined, conditionType: string, operator: string, amount: number): Partial<Rule>;
|
|
685
760
|
getProductPriceRangeStruct(currencyId: string, ruleId: string): Partial<Product>;
|
|
@@ -709,8 +784,6 @@ declare class TestDataService {
|
|
|
709
784
|
deliveryTimeId: string;
|
|
710
785
|
active: boolean;
|
|
711
786
|
} & Partial<ShippingMethod>;
|
|
712
|
-
isProduct(item: Product | Promotion): item is Product;
|
|
713
|
-
isPromotion(item: Product | Promotion): item is Promotion;
|
|
714
787
|
getBasicOrderStruct(lineItems: SimpleLineItem[], languageId: string, currency: Currency$1, paymentMethod: PaymentMethod, shippingMethod: ShippingMethod, orderState: StateMachineState, deliveryState: StateMachineState, transactionState: StateMachineState, customer: Customer, customerAddress: CustomerAddress, salesChannelId?: string, overrides?: Partial<Order>): Partial<Order>;
|
|
715
788
|
getBasicProductLineItemStruct(lineItem: SimpleLineItem): {
|
|
716
789
|
productId: string;
|
|
@@ -838,7 +911,10 @@ declare class Home implements PageObject {
|
|
|
838
911
|
readonly page: Page;
|
|
839
912
|
readonly productImages: Locator;
|
|
840
913
|
readonly productListItems: Locator;
|
|
914
|
+
readonly languagesDropdown: Locator;
|
|
915
|
+
readonly currenciesDropdown: Locator;
|
|
841
916
|
constructor(page: Page);
|
|
917
|
+
getListingItemByProductId(productId: string): Promise<Record<string, Locator>>;
|
|
842
918
|
url(): string;
|
|
843
919
|
}
|
|
844
920
|
|
|
@@ -907,6 +983,7 @@ declare class CheckoutConfirm implements PageObject {
|
|
|
907
983
|
readonly termsAndConditionsCheckbox: Locator;
|
|
908
984
|
readonly immediateAccessToDigitalProductCheckbox: Locator;
|
|
909
985
|
readonly grandTotalPrice: Locator;
|
|
986
|
+
readonly taxPrice: Locator;
|
|
910
987
|
readonly submitOrderButton: Locator;
|
|
911
988
|
/**
|
|
912
989
|
* Payment options
|
|
@@ -932,6 +1009,7 @@ declare class CheckoutFinish implements PageObject {
|
|
|
932
1009
|
readonly headline: Locator;
|
|
933
1010
|
readonly orderNumberText: Locator;
|
|
934
1011
|
readonly grandTotalPrice: Locator;
|
|
1012
|
+
readonly taxPrice: Locator;
|
|
935
1013
|
readonly cartLineItemImages: Locator;
|
|
936
1014
|
private readonly orderNumberRegex;
|
|
937
1015
|
constructor(page: Page);
|
|
@@ -1102,6 +1180,7 @@ declare class ProductDetail implements PageObject {
|
|
|
1102
1180
|
* Tabs
|
|
1103
1181
|
*/
|
|
1104
1182
|
readonly variantsTabLink: Locator;
|
|
1183
|
+
readonly specificationsTabLink: Locator;
|
|
1105
1184
|
/**
|
|
1106
1185
|
* Variants Generation
|
|
1107
1186
|
*/
|
|
@@ -1122,7 +1201,12 @@ declare class ProductDetail implements PageObject {
|
|
|
1122
1201
|
readonly propertyOptionSizeSmall: Locator;
|
|
1123
1202
|
readonly propertyOptionSizeMedium: Locator;
|
|
1124
1203
|
readonly propertyOptionSizeLarge: Locator;
|
|
1204
|
+
/**
|
|
1205
|
+
* Cards
|
|
1206
|
+
*/
|
|
1207
|
+
readonly customFieldCard: Locator;
|
|
1125
1208
|
constructor(page: Page);
|
|
1209
|
+
getCustomFieldSetCardContentByName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
1126
1210
|
url(productId: string): string;
|
|
1127
1211
|
}
|
|
1128
1212
|
|
|
@@ -1140,7 +1224,11 @@ declare class CustomerDetail implements PageObject {
|
|
|
1140
1224
|
readonly editButton: Locator;
|
|
1141
1225
|
readonly generalTab: Locator;
|
|
1142
1226
|
readonly accountCard: Locator;
|
|
1227
|
+
readonly customFieldCard: Locator;
|
|
1228
|
+
readonly customFieldSetTabs: Locator;
|
|
1229
|
+
readonly customFieldSetTabCustomContent: Locator;
|
|
1143
1230
|
constructor(page: Page);
|
|
1231
|
+
getCustomFieldSetCardContentByName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
1144
1232
|
url(customerId: string): string;
|
|
1145
1233
|
}
|
|
1146
1234
|
|
|
@@ -1346,6 +1434,7 @@ declare class Categories implements PageObject {
|
|
|
1346
1434
|
readonly categoryTypeSelectionList: Locator;
|
|
1347
1435
|
readonly filtersResultPopoverItemList: Locator;
|
|
1348
1436
|
readonly saveButton: Locator;
|
|
1437
|
+
readonly loadingSpinner: Locator;
|
|
1349
1438
|
/**
|
|
1350
1439
|
* Customisable link
|
|
1351
1440
|
*/
|
|
@@ -1356,7 +1445,10 @@ declare class Categories implements PageObject {
|
|
|
1356
1445
|
readonly landingPageSelectionList: Locator;
|
|
1357
1446
|
readonly filterResultPopoverTreeCheckboxItemList: Locator;
|
|
1358
1447
|
readonly openInNewTabCheckbox: Locator;
|
|
1448
|
+
readonly popoverCategoryTree: Locator;
|
|
1359
1449
|
constructor(page: Page);
|
|
1450
|
+
getLandingPageByName(landingPageName: string): Promise<Locator>;
|
|
1451
|
+
getPopOverCategoryByName(categoryName: string): Promise<Locator>;
|
|
1360
1452
|
url(): string;
|
|
1361
1453
|
}
|
|
1362
1454
|
|
|
@@ -1364,10 +1456,84 @@ declare class RuleDetail implements PageObject {
|
|
|
1364
1456
|
readonly page: Page;
|
|
1365
1457
|
readonly nameInput: Locator;
|
|
1366
1458
|
readonly priorityInput: Locator;
|
|
1459
|
+
readonly conditionTypeSelectionInput: Locator;
|
|
1460
|
+
readonly conditionValueSelectionInput: Locator;
|
|
1461
|
+
readonly filtersResultPopoverSelectionList: Locator;
|
|
1367
1462
|
constructor(page: Page);
|
|
1368
1463
|
url(ruleId: string, tabName?: string): string;
|
|
1369
1464
|
}
|
|
1370
1465
|
|
|
1466
|
+
declare class CustomFieldListing implements PageObject {
|
|
1467
|
+
readonly page: Page;
|
|
1468
|
+
readonly addNewSetButton: Locator;
|
|
1469
|
+
readonly customFieldRows: Locator;
|
|
1470
|
+
constructor(page: Page);
|
|
1471
|
+
getLineItemByCustomFieldSetName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
1472
|
+
url(): string;
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
declare class CustomFieldCreate implements PageObject {
|
|
1476
|
+
readonly page: Page;
|
|
1477
|
+
readonly saveButton: Locator;
|
|
1478
|
+
readonly cancelButton: Locator;
|
|
1479
|
+
readonly technicalNameInput: Locator;
|
|
1480
|
+
readonly positionInput: Locator;
|
|
1481
|
+
readonly labelEnglishGBInput: Locator;
|
|
1482
|
+
readonly assignToSelectionList: Locator;
|
|
1483
|
+
readonly resultAssignToPopoverItemList: Locator;
|
|
1484
|
+
constructor(page: Page);
|
|
1485
|
+
url(): string;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
declare class CustomFieldDetail extends CustomFieldCreate {
|
|
1489
|
+
readonly page: Page;
|
|
1490
|
+
readonly newCustomFieldButton: Locator;
|
|
1491
|
+
readonly customFieldEditDialog: Locator;
|
|
1492
|
+
readonly newCustomFieldDialog: Locator;
|
|
1493
|
+
readonly customFieldTechnicalNameInput: Locator;
|
|
1494
|
+
readonly customFieldPositionInput: Locator;
|
|
1495
|
+
readonly customFieldTypeSelectionList: Locator;
|
|
1496
|
+
readonly customFieldModifyByStoreApiCheckbox: Locator;
|
|
1497
|
+
readonly customFieldCancelButton: Locator;
|
|
1498
|
+
readonly customFieldAddButton: Locator;
|
|
1499
|
+
readonly customFieldEditApplyButton: Locator;
|
|
1500
|
+
readonly customFieldLabelEnglishGBInput: Locator;
|
|
1501
|
+
readonly customFieldPlaceholderEnglishGBInput: Locator;
|
|
1502
|
+
readonly customFieldHelpTextEnglishGBInput: Locator;
|
|
1503
|
+
readonly customFieldDeleteListButton: Locator;
|
|
1504
|
+
readonly customFieldDeleteDialog: Locator;
|
|
1505
|
+
readonly customFieldDeleteCancelButton: Locator;
|
|
1506
|
+
readonly customFieldDeleteButton: Locator;
|
|
1507
|
+
constructor(page: Page);
|
|
1508
|
+
getLineItemByCustomFieldName(customFieldName: string): Promise<Record<string, Locator>>;
|
|
1509
|
+
url(customFieldUuid?: string): string;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
declare class CategoryDetail implements PageObject {
|
|
1513
|
+
readonly page: Page;
|
|
1514
|
+
readonly saveButton: Locator;
|
|
1515
|
+
readonly cancelButton: Locator;
|
|
1516
|
+
readonly customFieldCard: Locator;
|
|
1517
|
+
readonly customFieldSetTabs: Locator;
|
|
1518
|
+
readonly customFieldSetTabCustomContent: Locator;
|
|
1519
|
+
constructor(page: Page);
|
|
1520
|
+
getCustomFieldSetCardContentByName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
1521
|
+
url(categoryUuid: string): string;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
declare class RuleCreate implements PageObject {
|
|
1525
|
+
readonly page: Page;
|
|
1526
|
+
readonly nameInput: Locator;
|
|
1527
|
+
readonly priorityInput: Locator;
|
|
1528
|
+
readonly conditionTypeSelectionInput: Locator;
|
|
1529
|
+
readonly conditionValueSelectionInput: Locator;
|
|
1530
|
+
readonly filtersResultPopoverSelectionList: Locator;
|
|
1531
|
+
readonly saveButton: Locator;
|
|
1532
|
+
readonly cancelButton: Locator;
|
|
1533
|
+
constructor(page: Page);
|
|
1534
|
+
url(): string;
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1371
1537
|
interface AdministrationPageTypes {
|
|
1372
1538
|
AdminProductDetail: ProductDetail;
|
|
1373
1539
|
AdminOrderDetail: OrderDetail;
|
|
@@ -1380,9 +1546,14 @@ interface AdministrationPageTypes {
|
|
|
1380
1546
|
AdminDashboard: Dashboard;
|
|
1381
1547
|
AdminShippingListing: ShippingListing;
|
|
1382
1548
|
AdminCategories: Categories;
|
|
1549
|
+
AdminCategoryDetail: CategoryDetail;
|
|
1383
1550
|
AdminLandingPageCreate: LandingPageCreate;
|
|
1384
1551
|
AdminLandingPageDetail: LandingPageDetail;
|
|
1385
1552
|
AdminRuleDetail: RuleDetail;
|
|
1553
|
+
AdminRuleCreate: RuleCreate;
|
|
1554
|
+
AdminCustomFieldListing: CustomFieldListing;
|
|
1555
|
+
AdminCustomFieldCreate: CustomFieldCreate;
|
|
1556
|
+
AdminCustomFieldDetail: CustomFieldDetail;
|
|
1386
1557
|
}
|
|
1387
1558
|
declare const AdminPageObjects: {
|
|
1388
1559
|
ProductDetail: typeof ProductDetail;
|
|
@@ -1396,9 +1567,14 @@ declare const AdminPageObjects: {
|
|
|
1396
1567
|
DataSharing: typeof DataSharing;
|
|
1397
1568
|
ShippingListing: typeof ShippingListing;
|
|
1398
1569
|
Categories: typeof Categories;
|
|
1570
|
+
CategoryDetail: typeof CategoryDetail;
|
|
1399
1571
|
LandingPageCreate: typeof LandingPageCreate;
|
|
1400
1572
|
LandingPageDetail: typeof LandingPageDetail;
|
|
1401
1573
|
RuleDetail: typeof RuleDetail;
|
|
1574
|
+
RuleCreate: typeof RuleCreate;
|
|
1575
|
+
CustomFieldListing: typeof CustomFieldListing;
|
|
1576
|
+
CustomFieldCreate: typeof CustomFieldCreate;
|
|
1577
|
+
CustomFieldDetail: typeof CustomFieldDetail;
|
|
1402
1578
|
};
|
|
1403
1579
|
|
|
1404
1580
|
interface DataFixtureTypes {
|
|
@@ -1493,6 +1669,10 @@ declare const test: _playwright_test.TestType<_playwright_test.PlaywrightTestArg
|
|
|
1493
1669
|
Logout: Task;
|
|
1494
1670
|
} & {
|
|
1495
1671
|
Register: Task;
|
|
1672
|
+
} & {
|
|
1673
|
+
RegisterGuest: Task;
|
|
1674
|
+
} & {
|
|
1675
|
+
ChangeStorefrontCurrency: Task;
|
|
1496
1676
|
} & {
|
|
1497
1677
|
AddProductToCart: Task;
|
|
1498
1678
|
} & {
|
|
@@ -1523,4 +1703,4 @@ declare const test: _playwright_test.TestType<_playwright_test.PlaywrightTestArg
|
|
|
1523
1703
|
ValidateAccessibility: (pageName: string, assertViolations?: number | boolean | undefined, createReport?: boolean | undefined, ruleTags?: string[] | undefined, outputDir?: string | undefined) => () => Promise<axe_core.Result[]>;
|
|
1524
1704
|
}, _playwright_test.PlaywrightWorkerArgs & _playwright_test.PlaywrightWorkerOptions & FixtureTypes>;
|
|
1525
1705
|
|
|
1526
|
-
export { AdminPageObjects, type CalculatedTaxes, type Category$1 as Category, type CmsPage, type CreatedRecord, type Currency$1 as Currency, type Customer, type CustomerAddress, type DataServiceOptions, type DeliveryTime, type FixtureTypes, type Manufacturer, type Media, type Order, type OrderDelivery, type OrderLineItem, type OrderStatus, type PageObject, type PaymentMethod, type Price, type Product, type ProductPrice, type Promotion, type PromotionDiscount, type PropertyGroup, type PropertyGroupOption, type Rule, type SalesChannel, type Salutation, type ShippingMethod, type SimpleLineItem, type StateMachine, type StateMachineState, StorefrontPageObjects, type SyncApiOperation, type Tag, type Task, type TaxRules, TestDataService, createRandomImage, extractIdFromUrl, getCountryId, getCurrency, getDefaultShippingMethodId, getFlowId, getLanguageData, getMediaId, getOrderTransactionId, getPaymentMethodId, getPromotionWithDiscount, getSalutationId, getSnippetSetId, getStateMachineId, getStateMachineStateId, getTaxId, getThemeId, isSaaSInstance, isThemeCompiled, setOrderStatus, test };
|
|
1706
|
+
export { AdminPageObjects, type CalculatedTaxes, type Category$1 as Category, type CmsPage, type Country, type CreatedRecord, type Currency$1 as Currency, type Customer, type CustomerAddress, type DataServiceOptions, type DeliveryTime, type FixtureTypes, type Manufacturer, type Media, type Order, type OrderDelivery, type OrderLineItem, type OrderStatus, type PageObject, type PaymentMethod, type Price, type Product, type ProductPrice, type Promotion, type PromotionDiscount, type PropertyGroup, type PropertyGroupOption, type Rule, type SalesChannel, type Salutation, type ShippingMethod, type SimpleLineItem, type StateMachine, type StateMachineState, StorefrontPageObjects, type SyncApiOperation, type Tag, type Task, type TaxRules, TestDataService, createRandomImage, extractIdFromUrl, getCountryId, getCurrency, getDefaultShippingMethodId, getFlowId, getLanguageData, getMediaId, getOrderTransactionId, getPaymentMethodId, getPromotionWithDiscount, getSalutationId, getSnippetSetId, getStateMachineId, getStateMachineStateId, getTaxId, getThemeId, isSaaSInstance, isThemeCompiled, setOrderStatus, test };
|