@shopware-ag/acceptance-test-suite 11.32.0 → 11.33.1

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/dist/index.d.mts CHANGED
@@ -151,7 +151,7 @@ type PropertyGroup = components['schemas']['PropertyGroup'] & {
151
151
  type Category$1 = components['schemas']['Category'] & {
152
152
  id: string;
153
153
  };
154
- type Media = components['schemas']['Media'] & {
154
+ type Media$1 = components['schemas']['Media'] & {
155
155
  id: string;
156
156
  };
157
157
  type Tag = components['schemas']['Tag'] & {
@@ -583,18 +583,18 @@ declare class TestDataService {
583
583
  * @param width - The width of the image in pixel. Default is 800.
584
584
  * @param height - The height of the image in pixel. Default is 600.
585
585
  */
586
- createMediaPNG(width?: number, height?: number): Promise<Media>;
586
+ createMediaPNG(width?: number, height?: number): Promise<Media$1>;
587
587
  /**
588
588
  * Creates a new media resource containing a text file.
589
589
  *
590
590
  * @param content - The content of the text file.
591
591
  */
592
- createMediaTXT(content?: string): Promise<Media>;
592
+ createMediaTXT(content?: string): Promise<Media$1>;
593
593
  /**
594
594
  * Creates a new empty media resource.
595
595
  * This method is mostly used to combine it with a certain file upload.
596
596
  */
597
- createMediaResource(): Promise<Media>;
597
+ createMediaResource(): Promise<Media$1>;
598
598
  /**
599
599
  * Creates a new property group with color type options.
600
600
  *
@@ -1783,6 +1783,13 @@ declare const BUNDLED_RESOURCES: {
1783
1783
  cannotDeliverToCountry: string;
1784
1784
  shippingNotPossible: string;
1785
1785
  };
1786
+ navigation: {
1787
+ overview: string;
1788
+ yourProfile: string;
1789
+ addresses: string;
1790
+ orders: string;
1791
+ logout: string;
1792
+ };
1786
1793
  recovery: {
1787
1794
  title: string;
1788
1795
  subtitle: string;
@@ -2657,6 +2664,13 @@ declare const BUNDLED_RESOURCES: {
2657
2664
  defaultBillingAddress: string;
2658
2665
  defaultShippingAddress: string;
2659
2666
  };
2667
+ navigation: {
2668
+ overview: string;
2669
+ yourProfile: string;
2670
+ addresses: string;
2671
+ orders: string;
2672
+ logout: string;
2673
+ };
2660
2674
  recovery: {
2661
2675
  title: string;
2662
2676
  subtitle: string;
@@ -3539,6 +3553,13 @@ declare const baseNamespaces: {
3539
3553
  cannotDeliverToCountry: string;
3540
3554
  shippingNotPossible: string;
3541
3555
  };
3556
+ navigation: {
3557
+ overview: string;
3558
+ yourProfile: string;
3559
+ addresses: string;
3560
+ orders: string;
3561
+ logout: string;
3562
+ };
3542
3563
  recovery: {
3543
3564
  title: string;
3544
3565
  subtitle: string;
@@ -4935,6 +4956,44 @@ declare class PromotionDetail extends PromotionCreate {
4935
4956
  url(promotionId?: string, tab?: 'general' | 'conditions' | 'discounts'): string;
4936
4957
  }
4937
4958
 
4959
+ declare class Media implements PageObject {
4960
+ readonly page: Page;
4961
+ readonly uploadFileButton: Locator;
4962
+ readonly addNewFolderButton: Locator;
4963
+ readonly mediaGridItems: Locator;
4964
+ readonly mediaItemCheckbox: Locator;
4965
+ readonly mediaItemPreview: Locator;
4966
+ readonly mediaItemName: Locator;
4967
+ readonly mediaItemContextMenu: Locator;
4968
+ readonly searchInput: Locator;
4969
+ constructor(page: Page);
4970
+ url(): string;
4971
+ /**
4972
+ * Gets the title/name of a media item by its image alt text
4973
+ * @param alt The alt text of the image
4974
+ * @returns Promise that resolves to the title text
4975
+ */
4976
+ getMediaNameByAlt(alt: string): Promise<string>;
4977
+ /**
4978
+ * Gets a specific media item container by its name/title
4979
+ * @param mediaName The name/title of the media item
4980
+ * @returns Locator for the specific media item container
4981
+ */
4982
+ getMediaItemByName(mediaName: string): Locator;
4983
+ /**
4984
+ * Gets the context menu button for a specific media item by media name
4985
+ * @param mediaName The name/title of the media item
4986
+ * @returns Locator for the context menu button
4987
+ */
4988
+ getContextMenuButtonByName(mediaName: string): Locator;
4989
+ /**
4990
+ * Gets a specific context menu item by its text
4991
+ * @param itemText The text of the context menu item (e.g., 'Rename', 'Delete', etc.)
4992
+ * @returns Locator for the specific context menu item
4993
+ */
4994
+ getContextMenuItem(itemText: string): Locator;
4995
+ }
4996
+
4938
4997
  declare class YourProfile implements PageObject {
4939
4998
  readonly contentView: Locator;
4940
4999
  readonly page: Page;
@@ -5064,6 +5123,7 @@ interface AdministrationPageTypes {
5064
5123
  AdminPromotionCreate: PromotionCreate;
5065
5124
  AdminPromotionDetail: PromotionDetail;
5066
5125
  AdminShopwareServices: ShopwareServices;
5126
+ AdminMedia: Media;
5067
5127
  AdminYourProfile: YourProfile;
5068
5128
  AdminThemesListing: ThemesListing;
5069
5129
  AdminThemesDetail: ThemesDetail;
@@ -5113,6 +5173,7 @@ declare const AdminPageObjects: {
5113
5173
  PromotionsListing: typeof PromotionsListing;
5114
5174
  PromotionCreate: typeof PromotionCreate;
5115
5175
  PromotionDetail: typeof PromotionDetail;
5176
+ Media: typeof Media;
5116
5177
  YourProfile: typeof YourProfile;
5117
5178
  ThemesListing: typeof ThemesListing;
5118
5179
  ThemesDetail: typeof ThemesDetail;
@@ -5387,7 +5448,24 @@ declare class CheckoutRegister implements PageObject {
5387
5448
  url(): string;
5388
5449
  }
5389
5450
 
5390
- declare class Account implements PageObject {
5451
+ declare class AccountNavigation {
5452
+ private readonly page;
5453
+ readonly overviewLink: Locator;
5454
+ readonly yourProfileLink: Locator;
5455
+ readonly addressesLink: Locator;
5456
+ readonly ordersLink: Locator;
5457
+ readonly logoutLink: Locator;
5458
+ constructor(page: Page);
5459
+ }
5460
+
5461
+ declare abstract class BaseAccount implements PageObject {
5462
+ readonly page: Page;
5463
+ readonly navigation: AccountNavigation;
5464
+ protected constructor(page: Page);
5465
+ abstract url(): string;
5466
+ }
5467
+
5468
+ declare class Account extends BaseAccount {
5391
5469
  readonly headline: Locator;
5392
5470
  readonly personalDataCardTitle: Locator;
5393
5471
  readonly paymentMethodCardTitle: Locator;
@@ -5398,7 +5476,6 @@ declare class Account implements PageObject {
5398
5476
  readonly customerGroupRequestMessage: Locator;
5399
5477
  readonly cannotDeliverToCountryAlert: Locator;
5400
5478
  readonly shippingToAddressNotPossibleAlert: Locator;
5401
- readonly page: Page;
5402
5479
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5403
5480
  constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
5404
5481
  getCustomerGroupAlert(customerGroup: string): Promise<Locator>;
@@ -5468,7 +5545,7 @@ declare class AccountRecover implements PageObject {
5468
5545
  url(recoverLink?: string): string;
5469
5546
  }
5470
5547
 
5471
- declare class AccountProfile implements PageObject {
5548
+ declare class AccountProfile extends BaseAccount {
5472
5549
  readonly page: Page;
5473
5550
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5474
5551
  readonly salutationSelect: Locator;
@@ -5495,7 +5572,7 @@ declare class AccountProfile implements PageObject {
5495
5572
  url(): string;
5496
5573
  }
5497
5574
 
5498
- declare class AccountOrder implements PageObject {
5575
+ declare class AccountOrder extends BaseAccount {
5499
5576
  readonly cartLineItemImages: Locator;
5500
5577
  readonly orderExpandButton: Locator;
5501
5578
  readonly digitalProductDownloadButton: Locator;
@@ -5505,13 +5582,13 @@ declare class AccountOrder implements PageObject {
5505
5582
  readonly orderDetails: Locator;
5506
5583
  readonly invoiceHTML: Locator;
5507
5584
  readonly creditItem: Locator;
5508
- readonly page: Page;
5585
+ readonly noOrdersAlert: Locator;
5509
5586
  constructor(page: Page);
5510
5587
  getOrderByOrderNumber(orderNumber: string): Promise<Record<string, Locator>>;
5511
5588
  url(): string;
5512
5589
  }
5513
5590
 
5514
- declare class AccountAddresses implements PageObject {
5591
+ declare class AccountAddresses extends BaseAccount {
5515
5592
  readonly addNewAddressButton: Locator;
5516
5593
  readonly editBillingAddressButton: Locator;
5517
5594
  readonly editShippingAddressButton: Locator;
@@ -5523,7 +5600,6 @@ declare class AccountAddresses implements PageObject {
5523
5600
  readonly addressDropdownButtons: Locator | undefined;
5524
5601
  readonly availableAddressesUseAsBillingAddress: Locator | undefined;
5525
5602
  readonly availableAddressesUseAsShippingAddress: Locator | undefined;
5526
- readonly page: Page;
5527
5603
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5528
5604
  constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
5529
5605
  url(): string;
@@ -5597,7 +5673,7 @@ declare class CheckoutOrderEdit implements PageObject {
5597
5673
  getPaymentMethodButton(paymentMethodName: string): Locator;
5598
5674
  }
5599
5675
 
5600
- declare class AccountAddressCreate implements PageObject {
5676
+ declare class AccountAddressCreate extends BaseAccount {
5601
5677
  readonly salutationDropdown: Locator;
5602
5678
  readonly firstNameInput: Locator;
5603
5679
  readonly lastNameInput: Locator;
@@ -5609,7 +5685,6 @@ declare class AccountAddressCreate implements PageObject {
5609
5685
  readonly countryDropdown: Locator;
5610
5686
  readonly saveAddressButton: Locator;
5611
5687
  readonly stateDropdown: Locator;
5612
- readonly page: Page;
5613
5688
  constructor(page: Page);
5614
5689
  url(): string;
5615
5690
  }
@@ -5828,4 +5903,4 @@ declare const test: playwright_test.TestType<playwright_test.PlaywrightTestArgs
5828
5903
  }, playwright_test.PlaywrightWorkerArgs & playwright_test.PlaywrightWorkerOptions & FixtureTypes>;
5829
5904
 
5830
5905
  export { AdminPageObjects, BUNDLED_RESOURCES, IdProvider, LanguageHelper, RuleType, StorefrontPageObjects, TestDataService, assertScreenshot, baseNamespaces, compareFlowTemplateWithFlow, createRandomImage, encodeImage, extractIdFromUrl, getCountryId, getCurrency, getCurrentContext, getDefaultShippingMethodId, getFlow, getFlowId, getFlowTemplate, getLanguageData, getMediaId, getOrderTransactionId, getPaymentMethodId, getPromotionWithDiscount, getSalutationId, getShippingMethodId, getSnippetSetId, getStateMachineId, getStateMachineStateId, getTaxId, getThemeId, hideElements, isSaaSInstance, isThemeCompiled, replaceElements, replaceElementsIndividually, setCurrentContext, setOrderStatus, setViewport, test, translate, updateAdminUser };
5831
- export type { AccountData, AclRole, Address, CalculatedTaxes, Category$1 as Category, CategoryCustomizableLinkData, CategoryData, CmsPage, Country$1 as Country, CreatedRecord, Currency$2 as Currency, CustomField, CustomFieldData, CustomFieldSet, Customer, CustomerAddress, CustomerGroup, DataServiceOptions, DeliveryTime, FixtureTypes, Flow, FlowConfig, FlowTemplate, Language$2 as Language, Manufacturer, Media, Options, Order, OrderDelivery, OrderLineItem, OrderStatus, PageObject, PaymentMethod$1 as PaymentMethod, Price, Product, ProductCrossSelling, ProductPrice, ProductReview, Promotion, PromotionDiscount, PropertyGroup, PropertyGroupOption, RegistrationData, ReplaceTarget, Rule, RuleAssignmentEntity, SalesChannel, SalesChannelAnalytics, SalesChannelDomain, SalesChannelRecord, Salutation, ShippingMethod$1 as ShippingMethod, SimpleLineItem, StateMachine, StateMachineState, SyncApiOperation, SystemConfig, Tag, TagData, Task, Tax$1 as Tax, TaxRules, TranslateFn, TranslationKey, User, VariantListingConfig };
5906
+ export type { AccountData, AclRole, Address, CalculatedTaxes, Category$1 as Category, CategoryCustomizableLinkData, CategoryData, CmsPage, Country$1 as Country, CreatedRecord, Currency$2 as Currency, CustomField, CustomFieldData, CustomFieldSet, Customer, CustomerAddress, CustomerGroup, DataServiceOptions, DeliveryTime, FixtureTypes, Flow, FlowConfig, FlowTemplate, Language$2 as Language, Manufacturer, Media$1 as Media, Options, Order, OrderDelivery, OrderLineItem, OrderStatus, PageObject, PaymentMethod$1 as PaymentMethod, Price, Product, ProductCrossSelling, ProductPrice, ProductReview, Promotion, PromotionDiscount, PropertyGroup, PropertyGroupOption, RegistrationData, ReplaceTarget, Rule, RuleAssignmentEntity, SalesChannel, SalesChannelAnalytics, SalesChannelDomain, SalesChannelRecord, Salutation, ShippingMethod$1 as ShippingMethod, SimpleLineItem, StateMachine, StateMachineState, SyncApiOperation, SystemConfig, Tag, TagData, Task, Tax$1 as Tax, TaxRules, TranslateFn, TranslationKey, User, VariantListingConfig };
package/dist/index.d.ts CHANGED
@@ -151,7 +151,7 @@ type PropertyGroup = components['schemas']['PropertyGroup'] & {
151
151
  type Category$1 = components['schemas']['Category'] & {
152
152
  id: string;
153
153
  };
154
- type Media = components['schemas']['Media'] & {
154
+ type Media$1 = components['schemas']['Media'] & {
155
155
  id: string;
156
156
  };
157
157
  type Tag = components['schemas']['Tag'] & {
@@ -583,18 +583,18 @@ declare class TestDataService {
583
583
  * @param width - The width of the image in pixel. Default is 800.
584
584
  * @param height - The height of the image in pixel. Default is 600.
585
585
  */
586
- createMediaPNG(width?: number, height?: number): Promise<Media>;
586
+ createMediaPNG(width?: number, height?: number): Promise<Media$1>;
587
587
  /**
588
588
  * Creates a new media resource containing a text file.
589
589
  *
590
590
  * @param content - The content of the text file.
591
591
  */
592
- createMediaTXT(content?: string): Promise<Media>;
592
+ createMediaTXT(content?: string): Promise<Media$1>;
593
593
  /**
594
594
  * Creates a new empty media resource.
595
595
  * This method is mostly used to combine it with a certain file upload.
596
596
  */
597
- createMediaResource(): Promise<Media>;
597
+ createMediaResource(): Promise<Media$1>;
598
598
  /**
599
599
  * Creates a new property group with color type options.
600
600
  *
@@ -1783,6 +1783,13 @@ declare const BUNDLED_RESOURCES: {
1783
1783
  cannotDeliverToCountry: string;
1784
1784
  shippingNotPossible: string;
1785
1785
  };
1786
+ navigation: {
1787
+ overview: string;
1788
+ yourProfile: string;
1789
+ addresses: string;
1790
+ orders: string;
1791
+ logout: string;
1792
+ };
1786
1793
  recovery: {
1787
1794
  title: string;
1788
1795
  subtitle: string;
@@ -2657,6 +2664,13 @@ declare const BUNDLED_RESOURCES: {
2657
2664
  defaultBillingAddress: string;
2658
2665
  defaultShippingAddress: string;
2659
2666
  };
2667
+ navigation: {
2668
+ overview: string;
2669
+ yourProfile: string;
2670
+ addresses: string;
2671
+ orders: string;
2672
+ logout: string;
2673
+ };
2660
2674
  recovery: {
2661
2675
  title: string;
2662
2676
  subtitle: string;
@@ -3539,6 +3553,13 @@ declare const baseNamespaces: {
3539
3553
  cannotDeliverToCountry: string;
3540
3554
  shippingNotPossible: string;
3541
3555
  };
3556
+ navigation: {
3557
+ overview: string;
3558
+ yourProfile: string;
3559
+ addresses: string;
3560
+ orders: string;
3561
+ logout: string;
3562
+ };
3542
3563
  recovery: {
3543
3564
  title: string;
3544
3565
  subtitle: string;
@@ -4935,6 +4956,44 @@ declare class PromotionDetail extends PromotionCreate {
4935
4956
  url(promotionId?: string, tab?: 'general' | 'conditions' | 'discounts'): string;
4936
4957
  }
4937
4958
 
4959
+ declare class Media implements PageObject {
4960
+ readonly page: Page;
4961
+ readonly uploadFileButton: Locator;
4962
+ readonly addNewFolderButton: Locator;
4963
+ readonly mediaGridItems: Locator;
4964
+ readonly mediaItemCheckbox: Locator;
4965
+ readonly mediaItemPreview: Locator;
4966
+ readonly mediaItemName: Locator;
4967
+ readonly mediaItemContextMenu: Locator;
4968
+ readonly searchInput: Locator;
4969
+ constructor(page: Page);
4970
+ url(): string;
4971
+ /**
4972
+ * Gets the title/name of a media item by its image alt text
4973
+ * @param alt The alt text of the image
4974
+ * @returns Promise that resolves to the title text
4975
+ */
4976
+ getMediaNameByAlt(alt: string): Promise<string>;
4977
+ /**
4978
+ * Gets a specific media item container by its name/title
4979
+ * @param mediaName The name/title of the media item
4980
+ * @returns Locator for the specific media item container
4981
+ */
4982
+ getMediaItemByName(mediaName: string): Locator;
4983
+ /**
4984
+ * Gets the context menu button for a specific media item by media name
4985
+ * @param mediaName The name/title of the media item
4986
+ * @returns Locator for the context menu button
4987
+ */
4988
+ getContextMenuButtonByName(mediaName: string): Locator;
4989
+ /**
4990
+ * Gets a specific context menu item by its text
4991
+ * @param itemText The text of the context menu item (e.g., 'Rename', 'Delete', etc.)
4992
+ * @returns Locator for the specific context menu item
4993
+ */
4994
+ getContextMenuItem(itemText: string): Locator;
4995
+ }
4996
+
4938
4997
  declare class YourProfile implements PageObject {
4939
4998
  readonly contentView: Locator;
4940
4999
  readonly page: Page;
@@ -5064,6 +5123,7 @@ interface AdministrationPageTypes {
5064
5123
  AdminPromotionCreate: PromotionCreate;
5065
5124
  AdminPromotionDetail: PromotionDetail;
5066
5125
  AdminShopwareServices: ShopwareServices;
5126
+ AdminMedia: Media;
5067
5127
  AdminYourProfile: YourProfile;
5068
5128
  AdminThemesListing: ThemesListing;
5069
5129
  AdminThemesDetail: ThemesDetail;
@@ -5113,6 +5173,7 @@ declare const AdminPageObjects: {
5113
5173
  PromotionsListing: typeof PromotionsListing;
5114
5174
  PromotionCreate: typeof PromotionCreate;
5115
5175
  PromotionDetail: typeof PromotionDetail;
5176
+ Media: typeof Media;
5116
5177
  YourProfile: typeof YourProfile;
5117
5178
  ThemesListing: typeof ThemesListing;
5118
5179
  ThemesDetail: typeof ThemesDetail;
@@ -5387,7 +5448,24 @@ declare class CheckoutRegister implements PageObject {
5387
5448
  url(): string;
5388
5449
  }
5389
5450
 
5390
- declare class Account implements PageObject {
5451
+ declare class AccountNavigation {
5452
+ private readonly page;
5453
+ readonly overviewLink: Locator;
5454
+ readonly yourProfileLink: Locator;
5455
+ readonly addressesLink: Locator;
5456
+ readonly ordersLink: Locator;
5457
+ readonly logoutLink: Locator;
5458
+ constructor(page: Page);
5459
+ }
5460
+
5461
+ declare abstract class BaseAccount implements PageObject {
5462
+ readonly page: Page;
5463
+ readonly navigation: AccountNavigation;
5464
+ protected constructor(page: Page);
5465
+ abstract url(): string;
5466
+ }
5467
+
5468
+ declare class Account extends BaseAccount {
5391
5469
  readonly headline: Locator;
5392
5470
  readonly personalDataCardTitle: Locator;
5393
5471
  readonly paymentMethodCardTitle: Locator;
@@ -5398,7 +5476,6 @@ declare class Account implements PageObject {
5398
5476
  readonly customerGroupRequestMessage: Locator;
5399
5477
  readonly cannotDeliverToCountryAlert: Locator;
5400
5478
  readonly shippingToAddressNotPossibleAlert: Locator;
5401
- readonly page: Page;
5402
5479
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5403
5480
  constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
5404
5481
  getCustomerGroupAlert(customerGroup: string): Promise<Locator>;
@@ -5468,7 +5545,7 @@ declare class AccountRecover implements PageObject {
5468
5545
  url(recoverLink?: string): string;
5469
5546
  }
5470
5547
 
5471
- declare class AccountProfile implements PageObject {
5548
+ declare class AccountProfile extends BaseAccount {
5472
5549
  readonly page: Page;
5473
5550
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5474
5551
  readonly salutationSelect: Locator;
@@ -5495,7 +5572,7 @@ declare class AccountProfile implements PageObject {
5495
5572
  url(): string;
5496
5573
  }
5497
5574
 
5498
- declare class AccountOrder implements PageObject {
5575
+ declare class AccountOrder extends BaseAccount {
5499
5576
  readonly cartLineItemImages: Locator;
5500
5577
  readonly orderExpandButton: Locator;
5501
5578
  readonly digitalProductDownloadButton: Locator;
@@ -5505,13 +5582,13 @@ declare class AccountOrder implements PageObject {
5505
5582
  readonly orderDetails: Locator;
5506
5583
  readonly invoiceHTML: Locator;
5507
5584
  readonly creditItem: Locator;
5508
- readonly page: Page;
5585
+ readonly noOrdersAlert: Locator;
5509
5586
  constructor(page: Page);
5510
5587
  getOrderByOrderNumber(orderNumber: string): Promise<Record<string, Locator>>;
5511
5588
  url(): string;
5512
5589
  }
5513
5590
 
5514
- declare class AccountAddresses implements PageObject {
5591
+ declare class AccountAddresses extends BaseAccount {
5515
5592
  readonly addNewAddressButton: Locator;
5516
5593
  readonly editBillingAddressButton: Locator;
5517
5594
  readonly editShippingAddressButton: Locator;
@@ -5523,7 +5600,6 @@ declare class AccountAddresses implements PageObject {
5523
5600
  readonly addressDropdownButtons: Locator | undefined;
5524
5601
  readonly availableAddressesUseAsBillingAddress: Locator | undefined;
5525
5602
  readonly availableAddressesUseAsShippingAddress: Locator | undefined;
5526
- readonly page: Page;
5527
5603
  readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
5528
5604
  constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
5529
5605
  url(): string;
@@ -5597,7 +5673,7 @@ declare class CheckoutOrderEdit implements PageObject {
5597
5673
  getPaymentMethodButton(paymentMethodName: string): Locator;
5598
5674
  }
5599
5675
 
5600
- declare class AccountAddressCreate implements PageObject {
5676
+ declare class AccountAddressCreate extends BaseAccount {
5601
5677
  readonly salutationDropdown: Locator;
5602
5678
  readonly firstNameInput: Locator;
5603
5679
  readonly lastNameInput: Locator;
@@ -5609,7 +5685,6 @@ declare class AccountAddressCreate implements PageObject {
5609
5685
  readonly countryDropdown: Locator;
5610
5686
  readonly saveAddressButton: Locator;
5611
5687
  readonly stateDropdown: Locator;
5612
- readonly page: Page;
5613
5688
  constructor(page: Page);
5614
5689
  url(): string;
5615
5690
  }
@@ -5828,4 +5903,4 @@ declare const test: playwright_test.TestType<playwright_test.PlaywrightTestArgs
5828
5903
  }, playwright_test.PlaywrightWorkerArgs & playwright_test.PlaywrightWorkerOptions & FixtureTypes>;
5829
5904
 
5830
5905
  export { AdminPageObjects, BUNDLED_RESOURCES, IdProvider, LanguageHelper, RuleType, StorefrontPageObjects, TestDataService, assertScreenshot, baseNamespaces, compareFlowTemplateWithFlow, createRandomImage, encodeImage, extractIdFromUrl, getCountryId, getCurrency, getCurrentContext, getDefaultShippingMethodId, getFlow, getFlowId, getFlowTemplate, getLanguageData, getMediaId, getOrderTransactionId, getPaymentMethodId, getPromotionWithDiscount, getSalutationId, getShippingMethodId, getSnippetSetId, getStateMachineId, getStateMachineStateId, getTaxId, getThemeId, hideElements, isSaaSInstance, isThemeCompiled, replaceElements, replaceElementsIndividually, setCurrentContext, setOrderStatus, setViewport, test, translate, updateAdminUser };
5831
- export type { AccountData, AclRole, Address, CalculatedTaxes, Category$1 as Category, CategoryCustomizableLinkData, CategoryData, CmsPage, Country$1 as Country, CreatedRecord, Currency$2 as Currency, CustomField, CustomFieldData, CustomFieldSet, Customer, CustomerAddress, CustomerGroup, DataServiceOptions, DeliveryTime, FixtureTypes, Flow, FlowConfig, FlowTemplate, Language$2 as Language, Manufacturer, Media, Options, Order, OrderDelivery, OrderLineItem, OrderStatus, PageObject, PaymentMethod$1 as PaymentMethod, Price, Product, ProductCrossSelling, ProductPrice, ProductReview, Promotion, PromotionDiscount, PropertyGroup, PropertyGroupOption, RegistrationData, ReplaceTarget, Rule, RuleAssignmentEntity, SalesChannel, SalesChannelAnalytics, SalesChannelDomain, SalesChannelRecord, Salutation, ShippingMethod$1 as ShippingMethod, SimpleLineItem, StateMachine, StateMachineState, SyncApiOperation, SystemConfig, Tag, TagData, Task, Tax$1 as Tax, TaxRules, TranslateFn, TranslationKey, User, VariantListingConfig };
5906
+ export type { AccountData, AclRole, Address, CalculatedTaxes, Category$1 as Category, CategoryCustomizableLinkData, CategoryData, CmsPage, Country$1 as Country, CreatedRecord, Currency$2 as Currency, CustomField, CustomFieldData, CustomFieldSet, Customer, CustomerAddress, CustomerGroup, DataServiceOptions, DeliveryTime, FixtureTypes, Flow, FlowConfig, FlowTemplate, Language$2 as Language, Manufacturer, Media$1 as Media, Options, Order, OrderDelivery, OrderLineItem, OrderStatus, PageObject, PaymentMethod$1 as PaymentMethod, Price, Product, ProductCrossSelling, ProductPrice, ProductReview, Promotion, PromotionDiscount, PropertyGroup, PropertyGroupOption, RegistrationData, ReplaceTarget, Rule, RuleAssignmentEntity, SalesChannel, SalesChannelAnalytics, SalesChannelDomain, SalesChannelRecord, Salutation, ShippingMethod$1 as ShippingMethod, SimpleLineItem, StateMachine, StateMachineState, SyncApiOperation, SystemConfig, Tag, TagData, Task, Tax$1 as Tax, TaxRules, TranslateFn, TranslationKey, User, VariantListingConfig };
package/dist/index.mjs CHANGED
@@ -1239,6 +1239,13 @@ const general$7 = {
1239
1239
  cannotDeliverToCountry: "We can not deliver to the country that is stored in your delivery address.",
1240
1240
  shippingNotPossible: "Shipping to the selected shipping address is currently not possible."
1241
1241
  };
1242
+ const navigation$1 = {
1243
+ overview: "Overview",
1244
+ yourProfile: "Your profile",
1245
+ addresses: "Addresses",
1246
+ orders: "Orders",
1247
+ logout: "Log out"
1248
+ };
1242
1249
  const recovery$1 = {
1243
1250
  title: "Password recovery",
1244
1251
  subtitle: "We will send you a confirmation email. Click the link in that email in order to change your password.",
@@ -1259,6 +1266,7 @@ const storefrontAccount = {
1259
1266
  addresses: addresses$1,
1260
1267
  registration: registration$1,
1261
1268
  general: general$7,
1269
+ navigation: navigation$1,
1262
1270
  recovery: recovery$1,
1263
1271
  payment: payment$1
1264
1272
  };
@@ -2311,6 +2319,13 @@ const general$1 = {
2311
2319
  defaultBillingAddress: "Hinzufügen",
2312
2320
  defaultShippingAddress: "Hinzufügen"
2313
2321
  };
2322
+ const navigation = {
2323
+ overview: "Übersicht",
2324
+ yourProfile: "Persönliches Profil",
2325
+ addresses: "Adressen",
2326
+ orders: "Bestellungen",
2327
+ logout: "Abmelden"
2328
+ };
2314
2329
  const recovery = {
2315
2330
  title: "Passwort-Wiederherstellung",
2316
2331
  subtitle: "Wir senden Ihnen eine Bestätigungs-E-Mail. Klicken Sie auf den Link in dieser E-Mail, um Ihr Passwort zu ändern.",
@@ -2344,6 +2359,7 @@ const deStorefrontAccount = {
2344
2359
  addresses: addresses,
2345
2360
  registration: registration,
2346
2361
  general: general$1,
2362
+ navigation: navigation,
2347
2363
  recovery: recovery,
2348
2364
  payment: payment,
2349
2365
  tasks: tasks
@@ -6525,7 +6541,32 @@ class CheckoutRegister {
6525
6541
  }
6526
6542
  }
6527
6543
 
6528
- class Account {
6544
+ class AccountNavigation {
6545
+ constructor(page) {
6546
+ this.page = page;
6547
+ this.overviewLink = page.getByRole("link", { name: translate("storefront:account:navigation.overview") });
6548
+ this.yourProfileLink = page.getByRole("link", { name: translate("storefront:account:navigation.yourProfile") });
6549
+ this.addressesLink = page.getByRole("link", { name: translate("storefront:account:navigation.addresses") });
6550
+ this.ordersLink = page.getByRole("link", { name: translate("storefront:account:navigation.orders") });
6551
+ this.logoutLink = page.getByRole("link", { name: translate("storefront:account:navigation.logout") });
6552
+ }
6553
+ overviewLink;
6554
+ yourProfileLink;
6555
+ addressesLink;
6556
+ ordersLink;
6557
+ logoutLink;
6558
+ }
6559
+
6560
+ class BaseAccount {
6561
+ page;
6562
+ navigation;
6563
+ constructor(page) {
6564
+ this.page = page;
6565
+ this.navigation = new AccountNavigation(page);
6566
+ }
6567
+ }
6568
+
6569
+ class Account extends BaseAccount {
6529
6570
  headline;
6530
6571
  personalDataCardTitle;
6531
6572
  paymentMethodCardTitle;
@@ -6536,10 +6577,9 @@ class Account {
6536
6577
  customerGroupRequestMessage;
6537
6578
  cannotDeliverToCountryAlert;
6538
6579
  shippingToAddressNotPossibleAlert;
6539
- page;
6540
6580
  instanceMeta;
6541
6581
  constructor(page, instanceMeta) {
6542
- this.page = page;
6582
+ super(page);
6543
6583
  this.instanceMeta = instanceMeta;
6544
6584
  this.headline = page.getByRole("heading", { name: translate("storefront:account:general.overview") });
6545
6585
  this.personalDataCardTitle = page.getByRole("heading", { name: translate("storefront:account:general.personalData") });
@@ -6695,7 +6735,7 @@ class AccountRecover {
6695
6735
  }
6696
6736
  }
6697
6737
 
6698
- class AccountProfile {
6738
+ class AccountProfile extends BaseAccount {
6699
6739
  page;
6700
6740
  instanceMeta;
6701
6741
  salutationSelect;
@@ -6719,6 +6759,7 @@ class AccountProfile {
6719
6759
  emailUpdateFailureAlert;
6720
6760
  passwordUpdateFailureAlert;
6721
6761
  constructor(page, instanceMeta) {
6762
+ super(page);
6722
6763
  this.page = page;
6723
6764
  this.instanceMeta = instanceMeta;
6724
6765
  this.salutationSelect = page.getByLabel(translate("storefront:account:common.salutation"));
@@ -6760,7 +6801,7 @@ class AccountProfile {
6760
6801
  }
6761
6802
  }
6762
6803
 
6763
- class AccountOrder {
6804
+ class AccountOrder extends BaseAccount {
6764
6805
  cartLineItemImages;
6765
6806
  orderExpandButton;
6766
6807
  digitalProductDownloadButton;
@@ -6770,9 +6811,9 @@ class AccountOrder {
6770
6811
  orderDetails;
6771
6812
  invoiceHTML;
6772
6813
  creditItem;
6773
- page;
6814
+ noOrdersAlert;
6774
6815
  constructor(page) {
6775
- this.page = page;
6816
+ super(page);
6776
6817
  this.orderExpandButton = page.getByRole("button", { name: new RegExp(`${translate("storefront:account:orders.expand")}|${translate("storefront:account:orders.showDetails")}`) }).first();
6777
6818
  this.cartLineItemImages = page.locator(".line-item-img-link");
6778
6819
  this.digitalProductDownloadButton = page.getByRole("link", { name: translate("storefront:account:orders.download") }).first();
@@ -6782,6 +6823,7 @@ class AccountOrder {
6782
6823
  this.orderDetails = page.locator(".order-item-detail");
6783
6824
  this.invoiceHTML = page.getByRole("link", { name: ".html" });
6784
6825
  this.creditItem = page.locator(`.line-item:has-text("${translate("storefront:account:orders.creditItem")}")`);
6826
+ this.noOrdersAlert = page.locator(".alert-warning");
6785
6827
  }
6786
6828
  async getOrderByOrderNumber(orderNumber) {
6787
6829
  const orderItem = this.page.getByRole("listitem").getByLabel(`${translate("storefront:account:orders.orderNumber")} ${orderNumber}`);
@@ -6827,7 +6869,7 @@ class AccountOrder {
6827
6869
  }
6828
6870
  }
6829
6871
 
6830
- class AccountAddresses {
6872
+ class AccountAddresses extends BaseAccount {
6831
6873
  addNewAddressButton;
6832
6874
  editBillingAddressButton;
6833
6875
  editShippingAddressButton;
@@ -6839,10 +6881,9 @@ class AccountAddresses {
6839
6881
  addressDropdownButtons;
6840
6882
  availableAddressesUseAsBillingAddress;
6841
6883
  availableAddressesUseAsShippingAddress;
6842
- page;
6843
6884
  instanceMeta;
6844
6885
  constructor(page, instanceMeta) {
6845
- this.page = page;
6886
+ super(page);
6846
6887
  this.instanceMeta = instanceMeta;
6847
6888
  this.addNewAddressButton = page.getByRole("link", { name: /Add (new )?address/ });
6848
6889
  this.editBillingAddressButton = page.getByRole("link", { name: translate("storefront:address:actions.editAddress") }).first();
@@ -6985,7 +7026,7 @@ class CheckoutOrderEdit {
6985
7026
  }
6986
7027
  }
6987
7028
 
6988
- class AccountAddressCreate {
7029
+ class AccountAddressCreate extends BaseAccount {
6989
7030
  salutationDropdown;
6990
7031
  firstNameInput;
6991
7032
  lastNameInput;
@@ -6997,9 +7038,8 @@ class AccountAddressCreate {
6997
7038
  countryDropdown;
6998
7039
  saveAddressButton;
6999
7040
  stateDropdown;
7000
- page;
7001
7041
  constructor(page) {
7002
- this.page = page;
7042
+ super(page);
7003
7043
  this.salutationDropdown = page.getByRole("combobox", { name: translate("storefront:address:common.salutation") });
7004
7044
  this.firstNameInput = page.getByRole("textbox", { name: translate("storefront:address:common.firstName") });
7005
7045
  this.lastNameInput = page.getByRole("textbox", { name: translate("storefront:address:common.lastName") });
@@ -9376,6 +9416,68 @@ class PromotionDetail extends PromotionCreate {
9376
9416
  }
9377
9417
  }
9378
9418
 
9419
+ class Media {
9420
+ page;
9421
+ uploadFileButton;
9422
+ addNewFolderButton;
9423
+ mediaGridItems;
9424
+ mediaItemCheckbox;
9425
+ mediaItemPreview;
9426
+ mediaItemName;
9427
+ mediaItemContextMenu;
9428
+ searchInput;
9429
+ constructor(page) {
9430
+ this.page = page;
9431
+ this.uploadFileButton = page.getByRole("button", { name: "Upload file" });
9432
+ this.addNewFolderButton = page.getByRole("button", { name: "Add new folder" });
9433
+ this.searchInput = page.getByPlaceholder("Search current folder...");
9434
+ this.mediaGridItems = page.locator(".sw-media-media-item");
9435
+ this.mediaItemCheckbox = page.locator('.sw-media-base-item__selected-indicator input[type="checkbox"]');
9436
+ this.mediaItemPreview = page.locator(".sw-media-preview-v2__item");
9437
+ this.mediaItemName = page.locator(".sw-media-base-item__name");
9438
+ this.mediaItemContextMenu = page.locator(".sw-context-button");
9439
+ }
9440
+ url() {
9441
+ return `#/sw/media/index`;
9442
+ }
9443
+ /**
9444
+ * Gets the title/name of a media item by its image alt text
9445
+ * @param alt The alt text of the image
9446
+ * @returns Promise that resolves to the title text
9447
+ */
9448
+ async getMediaNameByAlt(alt) {
9449
+ const mediaItem = this.mediaGridItems.filter({ has: this.page.locator(`img[alt="${alt}"]`) });
9450
+ const titleElement = mediaItem.locator(".sw-media-base-item__name");
9451
+ return await titleElement.textContent() || "";
9452
+ }
9453
+ /**
9454
+ * Gets a specific media item container by its name/title
9455
+ * @param mediaName The name/title of the media item
9456
+ * @returns Locator for the specific media item container
9457
+ */
9458
+ getMediaItemByName(mediaName) {
9459
+ return this.mediaGridItems.filter({ hasText: mediaName });
9460
+ }
9461
+ /**
9462
+ * Gets the context menu button for a specific media item by media name
9463
+ * @param mediaName The name/title of the media item
9464
+ * @returns Locator for the context menu button
9465
+ */
9466
+ getContextMenuButtonByName(mediaName) {
9467
+ return this.getMediaItemByName(mediaName).locator(".sw-context-button");
9468
+ }
9469
+ /**
9470
+ * Gets a specific context menu item by its text
9471
+ * @param itemText The text of the context menu item (e.g., 'Rename', 'Delete', etc.)
9472
+ * @returns Locator for the specific context menu item
9473
+ */
9474
+ getContextMenuItem(itemText) {
9475
+ return this.page.locator(".sw-context-menu-item", {
9476
+ hasText: itemText
9477
+ });
9478
+ }
9479
+ }
9480
+
9379
9481
  class YourProfile {
9380
9482
  contentView;
9381
9483
  page;
@@ -9585,6 +9687,7 @@ const AdminPageObjects = {
9585
9687
  PromotionsListing,
9586
9688
  PromotionCreate,
9587
9689
  PromotionDetail,
9690
+ Media,
9588
9691
  YourProfile,
9589
9692
  ThemesListing,
9590
9693
  ThemesDetail,
@@ -9711,6 +9814,9 @@ const test$6 = test$e.extend({
9711
9814
  AdminPromotionDetail: async ({ AdminPage, InstanceMeta }, use) => {
9712
9815
  await use(new PromotionDetail(AdminPage, InstanceMeta));
9713
9816
  },
9817
+ AdminMedia: async ({ AdminPage }, use) => {
9818
+ await use(new Media(AdminPage));
9819
+ },
9714
9820
  AdminShopwareServices: async ({ AdminPage }, use) => {
9715
9821
  await use(new ShopwareServices(AdminPage));
9716
9822
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopware-ag/acceptance-test-suite",
3
- "version": "11.32.0",
3
+ "version": "11.33.1",
4
4
  "description": "Shopware Acceptance Test Suite",
5
5
  "author": "shopware AG",
6
6
  "license": "MIT",