@shopware-ag/acceptance-test-suite 11.4.3 → 11.6.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/dist/index.mjs CHANGED
@@ -386,16 +386,16 @@ const test$c = test$e.extend({
386
386
  ]
387
387
  });
388
388
 
389
- var __defProp$V = Object.defineProperty;
390
- var __defNormalProp$V = (obj, key, value) => key in obj ? __defProp$V(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
391
- var __publicField$V = (obj, key, value) => {
392
- __defNormalProp$V(obj, typeof key !== "symbol" ? key + "" : key, value);
389
+ var __defProp$X = Object.defineProperty;
390
+ var __defNormalProp$X = (obj, key, value) => key in obj ? __defProp$X(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
391
+ var __publicField$X = (obj, key, value) => {
392
+ __defNormalProp$X(obj, typeof key !== "symbol" ? key + "" : key, value);
393
393
  return value;
394
394
  };
395
395
  const _AdminApiContext = class _AdminApiContext {
396
396
  constructor(context, options) {
397
- __publicField$V(this, "context");
398
- __publicField$V(this, "options");
397
+ __publicField$X(this, "context");
398
+ __publicField$X(this, "options");
399
399
  this.context = context;
400
400
  this.options = options;
401
401
  }
@@ -508,7 +508,7 @@ const _AdminApiContext = class _AdminApiContext {
508
508
  return response;
509
509
  }
510
510
  };
511
- __publicField$V(_AdminApiContext, "defaultOptions", {
511
+ __publicField$X(_AdminApiContext, "defaultOptions", {
512
512
  app_url: process.env["APP_URL"],
513
513
  client_id: process.env["SHOPWARE_ACCESS_KEY_ID"],
514
514
  client_secret: process.env["SHOPWARE_SECRET_ACCESS_KEY"],
@@ -518,16 +518,16 @@ __publicField$V(_AdminApiContext, "defaultOptions", {
518
518
  });
519
519
  let AdminApiContext = _AdminApiContext;
520
520
 
521
- var __defProp$U = Object.defineProperty;
522
- var __defNormalProp$U = (obj, key, value) => key in obj ? __defProp$U(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
523
- var __publicField$U = (obj, key, value) => {
524
- __defNormalProp$U(obj, typeof key !== "symbol" ? key + "" : key, value);
521
+ var __defProp$W = Object.defineProperty;
522
+ var __defNormalProp$W = (obj, key, value) => key in obj ? __defProp$W(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
523
+ var __publicField$W = (obj, key, value) => {
524
+ __defNormalProp$W(obj, typeof key !== "symbol" ? key + "" : key, value);
525
525
  return value;
526
526
  };
527
527
  const _StoreApiContext = class _StoreApiContext {
528
528
  constructor(context, options) {
529
- __publicField$U(this, "context");
530
- __publicField$U(this, "options");
529
+ __publicField$W(this, "context");
530
+ __publicField$W(this, "options");
531
531
  this.context = context;
532
532
  this.options = options;
533
533
  }
@@ -586,21 +586,21 @@ const _StoreApiContext = class _StoreApiContext {
586
586
  return this.context.head(url, options);
587
587
  }
588
588
  };
589
- __publicField$U(_StoreApiContext, "defaultOptions", {
589
+ __publicField$W(_StoreApiContext, "defaultOptions", {
590
590
  app_url: process.env["APP_URL"],
591
591
  ignoreHTTPSErrors: true
592
592
  });
593
593
  let StoreApiContext = _StoreApiContext;
594
594
 
595
- var __defProp$T = Object.defineProperty;
596
- var __defNormalProp$T = (obj, key, value) => key in obj ? __defProp$T(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
597
- var __publicField$T = (obj, key, value) => {
598
- __defNormalProp$T(obj, typeof key !== "symbol" ? key + "" : key, value);
595
+ var __defProp$V = Object.defineProperty;
596
+ var __defNormalProp$V = (obj, key, value) => key in obj ? __defProp$V(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
597
+ var __publicField$V = (obj, key, value) => {
598
+ __defNormalProp$V(obj, typeof key !== "symbol" ? key + "" : key, value);
599
599
  return value;
600
600
  };
601
601
  class MailpitApiContext {
602
602
  constructor(context) {
603
- __publicField$T(this, "context");
603
+ __publicField$V(this, "context");
604
604
  this.context = context;
605
605
  }
606
606
  /**
@@ -897,17 +897,17 @@ const test$a = test$e.extend({
897
897
  }
898
898
  });
899
899
 
900
- var __defProp$S = Object.defineProperty;
901
- var __defNormalProp$S = (obj, key, value) => key in obj ? __defProp$S(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
902
- var __publicField$S = (obj, key, value) => {
903
- __defNormalProp$S(obj, typeof key !== "symbol" ? key + "" : key, value);
900
+ var __defProp$U = Object.defineProperty;
901
+ var __defNormalProp$U = (obj, key, value) => key in obj ? __defProp$U(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
902
+ var __publicField$U = (obj, key, value) => {
903
+ __defNormalProp$U(obj, typeof key !== "symbol" ? key + "" : key, value);
904
904
  return value;
905
905
  };
906
906
  class Actor {
907
907
  constructor(name, page) {
908
- __publicField$S(this, "page");
909
- __publicField$S(this, "name");
910
- __publicField$S(this, "expects", expect);
908
+ __publicField$U(this, "page");
909
+ __publicField$U(this, "name");
910
+ __publicField$U(this, "expects", expect);
911
911
  this.name = name;
912
912
  this.page = page;
913
913
  }
@@ -956,31 +956,31 @@ function createRandomImage(width = 800, height = 600) {
956
956
  return new Image(width, height, buffer);
957
957
  }
958
958
 
959
- var __defProp$R = Object.defineProperty;
960
- var __defNormalProp$R = (obj, key, value) => key in obj ? __defProp$R(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
961
- var __publicField$R = (obj, key, value) => {
962
- __defNormalProp$R(obj, typeof key !== "symbol" ? key + "" : key, value);
959
+ var __defProp$T = Object.defineProperty;
960
+ var __defNormalProp$T = (obj, key, value) => key in obj ? __defProp$T(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
961
+ var __publicField$T = (obj, key, value) => {
962
+ __defNormalProp$T(obj, typeof key !== "symbol" ? key + "" : key, value);
963
963
  return value;
964
964
  };
965
965
  class TestDataService {
966
966
  constructor(AdminApiClient, IdProvider, options) {
967
- __publicField$R(this, "AdminApiClient");
968
- __publicField$R(this, "IdProvider");
969
- __publicField$R(this, "namePrefix", "Test-");
970
- __publicField$R(this, "nameSuffix", "");
971
- __publicField$R(this, "defaultSalesChannel");
972
- __publicField$R(this, "defaultTaxId");
973
- __publicField$R(this, "defaultCurrencyId");
974
- __publicField$R(this, "defaultCategoryId");
975
- __publicField$R(this, "defaultLanguageId");
976
- __publicField$R(this, "defaultCountryId");
977
- __publicField$R(this, "defaultCustomerGroupId");
967
+ __publicField$T(this, "AdminApiClient");
968
+ __publicField$T(this, "IdProvider");
969
+ __publicField$T(this, "namePrefix", "Test-");
970
+ __publicField$T(this, "nameSuffix", "");
971
+ __publicField$T(this, "defaultSalesChannel");
972
+ __publicField$T(this, "defaultTaxId");
973
+ __publicField$T(this, "defaultCurrencyId");
974
+ __publicField$T(this, "defaultCategoryId");
975
+ __publicField$T(this, "defaultLanguageId");
976
+ __publicField$T(this, "defaultCountryId");
977
+ __publicField$T(this, "defaultCustomerGroupId");
978
978
  /**
979
979
  * Configures if an automated cleanup of the data should be executed.
980
980
  *
981
981
  * @private
982
982
  */
983
- __publicField$R(this, "shouldCleanUp", true);
983
+ __publicField$T(this, "shouldCleanUp", true);
984
984
  /**
985
985
  * Configuration of higher priority entities for the cleanup operation.
986
986
  * These entities will be deleted before others.
@@ -988,26 +988,26 @@ class TestDataService {
988
988
  *
989
989
  * @private
990
990
  */
991
- __publicField$R(this, "highPriorityEntities", ["order", "product", "landing_page", "shipping_method", "sales_channel_domain", "sales_channel_currency", "sales_channel_country", "customer"]);
991
+ __publicField$T(this, "highPriorityEntities", ["order", "product", "product_cross_selling", "landing_page", "shipping_method", "sales_channel_domain", "sales_channel_currency", "sales_channel_country", "sales_channel_payment_method", "customer"]);
992
992
  /**
993
993
  * A registry of all created records.
994
994
  *
995
995
  * @private
996
996
  */
997
- __publicField$R(this, "createdRecords", []);
998
- __publicField$R(this, "restoreSystemConfig", {});
997
+ __publicField$T(this, "createdRecords", []);
998
+ __publicField$T(this, "restoreSystemConfig", {});
999
999
  /**
1000
1000
  * A registry of all created sales channel records.
1001
1001
  *
1002
1002
  * @private
1003
1003
  */
1004
- __publicField$R(this, "createdSalesChannelRecords", []);
1004
+ __publicField$T(this, "createdSalesChannelRecords", []);
1005
1005
  /**
1006
1006
  * Function that generates combinations from n number of arrays
1007
1007
  * with m number of elements in them.
1008
1008
  * @param array
1009
1009
  */
1010
- __publicField$R(this, "combineAll", (array) => {
1010
+ __publicField$T(this, "combineAll", (array) => {
1011
1011
  const result = [];
1012
1012
  const max = array.length - 1;
1013
1013
  const helper = (tmpArray, i) => {
@@ -1063,6 +1063,22 @@ class TestDataService {
1063
1063
  this.addCreatedRecord("product", product.id);
1064
1064
  return product;
1065
1065
  }
1066
+ /**
1067
+ * Creates a basic product cross-selling entity without products.
1068
+ *
1069
+ * @param productId - The uuid of the product to which the pproduct cross-selling should be assigned.
1070
+ * @param overrides - Specific data overrides that will be applied to the property group data struct.
1071
+ */
1072
+ async createProductCrossSelling(productId, overrides = {}) {
1073
+ const crossSellingStruct = this.getBasicCrossSellingStruct(productId, overrides);
1074
+ const response = await this.AdminApiClient.post("product-cross-selling?_response=detail", {
1075
+ data: crossSellingStruct
1076
+ });
1077
+ expect(response.ok()).toBeTruthy();
1078
+ const { data: productCrossSelling } = await response.json();
1079
+ this.addCreatedRecord("product_cross_selling", productCrossSelling.id);
1080
+ return productCrossSelling;
1081
+ }
1066
1082
  /**
1067
1083
  * Creates a basic product with one randomly generated image.
1068
1084
  * The product will be added to the default sales channel category if configured.
@@ -1917,6 +1933,35 @@ class TestDataService {
1917
1933
  });
1918
1934
  return salesChannel;
1919
1935
  }
1936
+ /**
1937
+ * Assigns a payment method to a sales channel.
1938
+ *
1939
+ * @param salesChannelId - The uuid of the sales channel.
1940
+ * @param paymentMethodId - The uuid of the currency.
1941
+ */
1942
+ async assignSalesChannelPaymentMethod(salesChannelId, paymentMethodId) {
1943
+ const syncSalesChannelResponse = await this.AdminApiClient.post("./_action/sync", {
1944
+ data: {
1945
+ "write-sales-channel-payment-method": {
1946
+ entity: "sales_channel_payment_method",
1947
+ action: "upsert",
1948
+ payload: [
1949
+ {
1950
+ salesChannelId,
1951
+ paymentMethodId
1952
+ }
1953
+ ]
1954
+ }
1955
+ }
1956
+ });
1957
+ expect(syncSalesChannelResponse.ok()).toBeTruthy();
1958
+ const { data: salesChannel } = await syncSalesChannelResponse.json();
1959
+ this.addCreatedRecord("sales_channel_payment_method", {
1960
+ salesChannelId,
1961
+ paymentMethodId
1962
+ });
1963
+ return salesChannel;
1964
+ }
1920
1965
  /**
1921
1966
  * Assigns a media resource to a payment method as a logo.
1922
1967
  *
@@ -3028,6 +3073,23 @@ class TestDataService {
3028
3073
  };
3029
3074
  return Object.assign({}, basicTaxStruct, overrides);
3030
3075
  }
3076
+ getBasicCrossSellingStruct(productId, overrides = {}) {
3077
+ const { id: productCrossSellingId, uuid: productCrossSellingUuid } = this.IdProvider.getIdPair();
3078
+ const productCrossSellingName = `${this.namePrefix}ProductCrossSelling-${productCrossSellingId}${this.nameSuffix}`;
3079
+ const defaultCrossSelling = {
3080
+ id: productCrossSellingUuid,
3081
+ productId,
3082
+ name: productCrossSellingName,
3083
+ type: "product_list",
3084
+ position: 1,
3085
+ active: true,
3086
+ productStreamId: null,
3087
+ sortingType: "name",
3088
+ limit: 10,
3089
+ sortBy: "name"
3090
+ };
3091
+ return Object.assign({}, defaultCrossSelling, overrides);
3092
+ }
3031
3093
  }
3032
3094
 
3033
3095
  const test$8 = test$e.extend({
@@ -3046,16 +3108,16 @@ const test$8 = test$e.extend({
3046
3108
  }
3047
3109
  });
3048
3110
 
3049
- var __defProp$Q = Object.defineProperty;
3050
- var __defNormalProp$Q = (obj, key, value) => key in obj ? __defProp$Q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3051
- var __publicField$Q = (obj, key, value) => {
3052
- __defNormalProp$Q(obj, typeof key !== "symbol" ? key + "" : key, value);
3111
+ var __defProp$S = Object.defineProperty;
3112
+ var __defNormalProp$S = (obj, key, value) => key in obj ? __defProp$S(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3113
+ var __publicField$S = (obj, key, value) => {
3114
+ __defNormalProp$S(obj, typeof key !== "symbol" ? key + "" : key, value);
3053
3115
  return value;
3054
3116
  };
3055
3117
  class IdProvider {
3056
3118
  constructor(workerIndex, seed) {
3057
- __publicField$Q(this, "workerIndex");
3058
- __publicField$Q(this, "seed");
3119
+ __publicField$S(this, "workerIndex");
3120
+ __publicField$S(this, "seed");
3059
3121
  this.workerIndex = workerIndex;
3060
3122
  this.seed = seed;
3061
3123
  }
@@ -3139,40 +3201,42 @@ const test$7 = test$e.extend({
3139
3201
  ]
3140
3202
  });
3141
3203
 
3142
- var __defProp$P = Object.defineProperty;
3143
- var __defNormalProp$P = (obj, key, value) => key in obj ? __defProp$P(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3144
- var __publicField$P = (obj, key, value) => {
3145
- __defNormalProp$P(obj, typeof key !== "symbol" ? key + "" : key, value);
3204
+ var __defProp$R = Object.defineProperty;
3205
+ var __defNormalProp$R = (obj, key, value) => key in obj ? __defProp$R(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3206
+ var __publicField$R = (obj, key, value) => {
3207
+ __defNormalProp$R(obj, typeof key !== "symbol" ? key + "" : key, value);
3146
3208
  return value;
3147
3209
  };
3148
3210
  class Home {
3149
3211
  constructor(page) {
3150
3212
  this.page = page;
3151
- __publicField$P(this, "accountMenuButton");
3152
- __publicField$P(this, "closeGuestSessionButton");
3153
- __publicField$P(this, "productImages");
3154
- __publicField$P(this, "productListItems");
3155
- __publicField$P(this, "languagesDropdown");
3156
- __publicField$P(this, "languagesMenuOptions");
3157
- __publicField$P(this, "currenciesDropdown");
3158
- __publicField$P(this, "currenciesMenuOptions");
3159
- __publicField$P(this, "consentOnlyTechnicallyRequiredButton");
3160
- __publicField$P(this, "consentConfigureButton");
3161
- __publicField$P(this, "consentAcceptAllCookiesButton");
3162
- __publicField$P(this, "consentCookiePreferences");
3163
- __publicField$P(this, "consentCookiePermissionContent");
3164
- __publicField$P(this, "consentDialog");
3165
- __publicField$P(this, "consentDialogTechnicallyRequiredCheckbox");
3166
- __publicField$P(this, "consentDialogStatisticsCheckbox");
3213
+ __publicField$R(this, "accountMenuButton");
3214
+ __publicField$R(this, "closeGuestSessionButton");
3215
+ __publicField$R(this, "productImages");
3216
+ __publicField$R(this, "productListItems");
3217
+ __publicField$R(this, "languagesDropdown");
3218
+ __publicField$R(this, "languagesMenuOptions");
3219
+ __publicField$R(this, "currenciesDropdown");
3220
+ __publicField$R(this, "currenciesMenuOptions");
3221
+ __publicField$R(this, "consentOnlyTechnicallyRequiredButton");
3222
+ __publicField$R(this, "consentConfigureButton");
3223
+ __publicField$R(this, "consentAcceptAllCookiesButton");
3224
+ __publicField$R(this, "consentCookiePreferences");
3225
+ __publicField$R(this, "consentCookiePermissionContent");
3226
+ __publicField$R(this, "consentDialog");
3227
+ __publicField$R(this, "consentDialogTechnicallyRequiredCheckbox");
3228
+ __publicField$R(this, "consentDialogStatisticsCheckbox");
3167
3229
  /**
3168
3230
  * @deprecated Use 'consentDialogMarketingCheckbox' instead
3169
3231
  */
3170
- __publicField$P(this, "consentDialogMarketingdCheckbox");
3171
- __publicField$P(this, "consentDialogMarketingCheckbox");
3172
- __publicField$P(this, "consentDialogAcceptAllCookiesButton");
3173
- __publicField$P(this, "consentDialogSaveButton");
3174
- __publicField$P(this, "consentCookieBannerContainer");
3175
- __publicField$P(this, "offcanvasBackdrop");
3232
+ __publicField$R(this, "consentDialogMarketingdCheckbox");
3233
+ __publicField$R(this, "consentDialogMarketingCheckbox");
3234
+ __publicField$R(this, "consentDialogAcceptAllCookiesButton");
3235
+ __publicField$R(this, "consentDialogSaveButton");
3236
+ __publicField$R(this, "consentCookieBannerContainer");
3237
+ __publicField$R(this, "offcanvasBackdrop");
3238
+ __publicField$R(this, "mainNavigationLink");
3239
+ __publicField$R(this, "contactFormLink");
3176
3240
  this.accountMenuButton = page.getByLabel("Your account");
3177
3241
  this.closeGuestSessionButton = page.locator(".account-aside-btn");
3178
3242
  this.productImages = page.locator(".product-image-wrapper");
@@ -3207,6 +3271,8 @@ class Home {
3207
3271
  exact: true
3208
3272
  });
3209
3273
  this.offcanvasBackdrop = page.locator(".offcanvas-backdrop");
3274
+ this.mainNavigationLink = page.locator(".main-navigation-link-text");
3275
+ this.contactFormLink = this.page.getByRole("listitem").getByTitle("Contact form", { exact: true });
3210
3276
  }
3211
3277
  async getMenuItemByCategoryName(categoryName) {
3212
3278
  const menuNavigationItem = this.page.locator(".nav-main").getByText(categoryName, { exact: true });
@@ -3235,6 +3301,9 @@ class Home {
3235
3301
  const productAddToShoppingCart = listingItem.getByRole("button", {
3236
3302
  name: "Add to shopping cart"
3237
3303
  });
3304
+ const productListingPrice = listingItem.locator(".list-price-price");
3305
+ const productListingPricePercentage = listingItem.locator(".list-price-percentage");
3306
+ const productListingPriceBadge = listingItem.locator(".badge-discount");
3238
3307
  return {
3239
3308
  productImage,
3240
3309
  productRating,
@@ -3244,7 +3313,10 @@ class Home {
3244
3313
  productCheapestPrice,
3245
3314
  productPrice,
3246
3315
  productName,
3247
- productAddToShoppingCart
3316
+ productAddToShoppingCart,
3317
+ productListingPrice,
3318
+ productListingPricePercentage,
3319
+ productListingPriceBadge
3248
3320
  };
3249
3321
  }
3250
3322
  url() {
@@ -3252,31 +3324,37 @@ class Home {
3252
3324
  }
3253
3325
  }
3254
3326
 
3255
- var __defProp$O = Object.defineProperty;
3256
- var __defNormalProp$O = (obj, key, value) => key in obj ? __defProp$O(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3257
- var __publicField$O = (obj, key, value) => {
3258
- __defNormalProp$O(obj, typeof key !== "symbol" ? key + "" : key, value);
3327
+ var __defProp$Q = Object.defineProperty;
3328
+ var __defNormalProp$Q = (obj, key, value) => key in obj ? __defProp$Q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3329
+ var __publicField$Q = (obj, key, value) => {
3330
+ __defNormalProp$Q(obj, typeof key !== "symbol" ? key + "" : key, value);
3259
3331
  return value;
3260
3332
  };
3261
3333
  let ProductDetail$1 = class ProductDetail {
3262
3334
  constructor(page) {
3263
3335
  this.page = page;
3264
- __publicField$O(this, "addToCartButton");
3265
- __publicField$O(this, "quantitySelect");
3266
- __publicField$O(this, "productSingleImage");
3267
- __publicField$O(this, "productSinglePrice");
3268
- __publicField$O(this, "productPriceRangesRow");
3269
- __publicField$O(this, "offCanvasCartTitle");
3270
- __publicField$O(this, "offCanvasCart");
3271
- __publicField$O(this, "offCanvasCartGoToCheckoutButton");
3272
- __publicField$O(this, "offCanvasLineItemImages");
3273
- __publicField$O(this, "offCanvasSummaryTotalPrice");
3274
- __publicField$O(this, "offCanvas");
3336
+ __publicField$Q(this, "addToCartButton");
3337
+ __publicField$Q(this, "quantitySelect");
3338
+ __publicField$Q(this, "productSingleImage");
3339
+ __publicField$Q(this, "productSinglePrice");
3340
+ __publicField$Q(this, "productPriceRangesRow");
3341
+ __publicField$Q(this, "productListingPriceBadge");
3342
+ __publicField$Q(this, "productListingPrice");
3343
+ __publicField$Q(this, "productListingPricePercentage");
3344
+ __publicField$Q(this, "offCanvasCartTitle");
3345
+ __publicField$Q(this, "offCanvasCart");
3346
+ __publicField$Q(this, "offCanvasCartGoToCheckoutButton");
3347
+ __publicField$Q(this, "offCanvasLineItemImages");
3348
+ __publicField$Q(this, "offCanvasSummaryTotalPrice");
3349
+ __publicField$Q(this, "offCanvas");
3275
3350
  this.addToCartButton = page.getByRole("button", { name: "Add to shopping cart" });
3276
3351
  this.quantitySelect = page.getByLabel("Quantity", { exact: true });
3277
3352
  this.productSingleImage = page.locator(".gallery-slider-single-image");
3278
3353
  this.productSinglePrice = page.locator(".product-detail-price");
3279
3354
  this.productPriceRangesRow = page.locator(".product-block-prices-row");
3355
+ this.productListingPriceBadge = page.locator(".list-price-badge");
3356
+ this.productListingPrice = page.locator(".list-price-price");
3357
+ this.productListingPricePercentage = page.locator(".list-price-percentage");
3280
3358
  this.offCanvas = page.locator("offcanvas-body");
3281
3359
  this.offCanvasCartTitle = page.getByText("Shopping cart", { exact: true });
3282
3360
  this.offCanvasCart = page.getByRole("dialog");
@@ -3293,18 +3371,18 @@ let ProductDetail$1 = class ProductDetail {
3293
3371
  }
3294
3372
  };
3295
3373
 
3296
- var __defProp$N = Object.defineProperty;
3297
- var __defNormalProp$N = (obj, key, value) => key in obj ? __defProp$N(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3298
- var __publicField$N = (obj, key, value) => {
3299
- __defNormalProp$N(obj, typeof key !== "symbol" ? key + "" : key, value);
3374
+ var __defProp$P = Object.defineProperty;
3375
+ var __defNormalProp$P = (obj, key, value) => key in obj ? __defProp$P(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3376
+ var __publicField$P = (obj, key, value) => {
3377
+ __defNormalProp$P(obj, typeof key !== "symbol" ? key + "" : key, value);
3300
3378
  return value;
3301
3379
  };
3302
3380
  class Category {
3303
3381
  constructor(page) {
3304
3382
  this.page = page;
3305
- __publicField$N(this, "sortingSelect");
3306
- __publicField$N(this, "firstProductBuyButton");
3307
- __publicField$N(this, "noProductsFoundAlert");
3383
+ __publicField$P(this, "sortingSelect");
3384
+ __publicField$P(this, "firstProductBuyButton");
3385
+ __publicField$P(this, "noProductsFoundAlert");
3308
3386
  this.sortingSelect = page.getByLabel("Sorting");
3309
3387
  this.firstProductBuyButton = page.getByRole("button", { name: "Add to shopping cart" }).first();
3310
3388
  this.noProductsFoundAlert = page.getByText("No products found.");
@@ -3314,24 +3392,24 @@ class Category {
3314
3392
  }
3315
3393
  }
3316
3394
 
3317
- var __defProp$M = Object.defineProperty;
3318
- var __defNormalProp$M = (obj, key, value) => key in obj ? __defProp$M(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3319
- var __publicField$M = (obj, key, value) => {
3320
- __defNormalProp$M(obj, typeof key !== "symbol" ? key + "" : key, value);
3395
+ var __defProp$O = Object.defineProperty;
3396
+ var __defNormalProp$O = (obj, key, value) => key in obj ? __defProp$O(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3397
+ var __publicField$O = (obj, key, value) => {
3398
+ __defNormalProp$O(obj, typeof key !== "symbol" ? key + "" : key, value);
3321
3399
  return value;
3322
3400
  };
3323
3401
  class CheckoutCart {
3324
3402
  constructor(page) {
3325
3403
  this.page = page;
3326
- __publicField$M(this, "headline");
3327
- __publicField$M(this, "goToCheckoutButton");
3328
- __publicField$M(this, "enterPromoInput");
3329
- __publicField$M(this, "grandTotalPrice");
3330
- __publicField$M(this, "emptyCartAlert");
3331
- __publicField$M(this, "stockReachedAlert");
3332
- __publicField$M(this, "cartLineItemImages");
3333
- __publicField$M(this, "unitPriceInfo");
3334
- __publicField$M(this, "cartQuantityNumber");
3404
+ __publicField$O(this, "headline");
3405
+ __publicField$O(this, "goToCheckoutButton");
3406
+ __publicField$O(this, "enterPromoInput");
3407
+ __publicField$O(this, "grandTotalPrice");
3408
+ __publicField$O(this, "emptyCartAlert");
3409
+ __publicField$O(this, "stockReachedAlert");
3410
+ __publicField$O(this, "cartLineItemImages");
3411
+ __publicField$O(this, "unitPriceInfo");
3412
+ __publicField$O(this, "cartQuantityNumber");
3335
3413
  this.headline = page.getByRole("heading", { name: "Shopping cart" });
3336
3414
  this.goToCheckoutButton = page.getByRole("link", { name: "Go to checkout" });
3337
3415
  this.enterPromoInput = page.getByLabel("Promo code");
@@ -3372,25 +3450,25 @@ class CheckoutCart {
3372
3450
  }
3373
3451
  }
3374
3452
 
3375
- var __defProp$L = Object.defineProperty;
3376
- var __defNormalProp$L = (obj, key, value) => key in obj ? __defProp$L(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3377
- var __publicField$L = (obj, key, value) => {
3378
- __defNormalProp$L(obj, typeof key !== "symbol" ? key + "" : key, value);
3453
+ var __defProp$N = Object.defineProperty;
3454
+ var __defNormalProp$N = (obj, key, value) => key in obj ? __defProp$N(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3455
+ var __publicField$N = (obj, key, value) => {
3456
+ __defNormalProp$N(obj, typeof key !== "symbol" ? key + "" : key, value);
3379
3457
  return value;
3380
3458
  };
3381
3459
  class OffCanvasCart {
3382
3460
  constructor(page) {
3383
3461
  this.page = page;
3384
- __publicField$L(this, "headline");
3385
- __publicField$L(this, "itemCount");
3386
- __publicField$L(this, "goToCheckoutButton");
3387
- __publicField$L(this, "goToCartButton");
3388
- __publicField$L(this, "continueShoppingButton");
3389
- __publicField$L(this, "enterPromoInput");
3390
- __publicField$L(this, "submitDiscountButton");
3391
- __publicField$L(this, "subTotalPrice");
3392
- __publicField$L(this, "shippingCosts");
3393
- __publicField$L(this, "cartQuantityNumber");
3462
+ __publicField$N(this, "headline");
3463
+ __publicField$N(this, "itemCount");
3464
+ __publicField$N(this, "goToCheckoutButton");
3465
+ __publicField$N(this, "goToCartButton");
3466
+ __publicField$N(this, "continueShoppingButton");
3467
+ __publicField$N(this, "enterPromoInput");
3468
+ __publicField$N(this, "submitDiscountButton");
3469
+ __publicField$N(this, "subTotalPrice");
3470
+ __publicField$N(this, "shippingCosts");
3471
+ __publicField$N(this, "cartQuantityNumber");
3394
3472
  this.headline = page.getByRole("heading", { name: "Shopping cart" });
3395
3473
  this.itemCount = page.locator(".offcanvas-cart-header-count");
3396
3474
  this.goToCheckoutButton = page.getByRole("link", { name: "Go to checkout" });
@@ -3432,36 +3510,36 @@ class OffCanvasCart {
3432
3510
  }
3433
3511
  }
3434
3512
 
3435
- var __defProp$K = Object.defineProperty;
3436
- var __defNormalProp$K = (obj, key, value) => key in obj ? __defProp$K(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3437
- var __publicField$K = (obj, key, value) => {
3438
- __defNormalProp$K(obj, typeof key !== "symbol" ? key + "" : key, value);
3513
+ var __defProp$M = Object.defineProperty;
3514
+ var __defNormalProp$M = (obj, key, value) => key in obj ? __defProp$M(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3515
+ var __publicField$M = (obj, key, value) => {
3516
+ __defNormalProp$M(obj, typeof key !== "symbol" ? key + "" : key, value);
3439
3517
  return value;
3440
3518
  };
3441
3519
  class CheckoutConfirm {
3442
3520
  constructor(page) {
3443
3521
  this.page = page;
3444
- __publicField$K(this, "headline");
3445
- __publicField$K(this, "termsAndConditionsCheckbox");
3446
- __publicField$K(this, "immediateAccessToDigitalProductCheckbox");
3447
- __publicField$K(this, "grandTotalPrice");
3448
- __publicField$K(this, "taxPrice");
3449
- __publicField$K(this, "submitOrderButton");
3522
+ __publicField$M(this, "headline");
3523
+ __publicField$M(this, "termsAndConditionsCheckbox");
3524
+ __publicField$M(this, "immediateAccessToDigitalProductCheckbox");
3525
+ __publicField$M(this, "grandTotalPrice");
3526
+ __publicField$M(this, "taxPrice");
3527
+ __publicField$M(this, "submitOrderButton");
3450
3528
  /**
3451
3529
  * Payment options
3452
3530
  */
3453
- __publicField$K(this, "paymentCashOnDelivery");
3454
- __publicField$K(this, "paymentPaidInAdvance");
3455
- __publicField$K(this, "paymentInvoice");
3531
+ __publicField$M(this, "paymentCashOnDelivery");
3532
+ __publicField$M(this, "paymentPaidInAdvance");
3533
+ __publicField$M(this, "paymentInvoice");
3456
3534
  /**
3457
3535
  * Shipping options
3458
3536
  */
3459
- __publicField$K(this, "shippingStandard");
3460
- __publicField$K(this, "shippingExpress");
3537
+ __publicField$M(this, "shippingStandard");
3538
+ __publicField$M(this, "shippingExpress");
3461
3539
  /**
3462
3540
  * Product details
3463
3541
  */
3464
- __publicField$K(this, "cartLineItemImages");
3542
+ __publicField$M(this, "cartLineItemImages");
3465
3543
  this.headline = page.getByRole("heading", { name: "Complete order" });
3466
3544
  this.termsAndConditionsCheckbox = page.getByLabel("I have read and accepted the general terms and conditions.");
3467
3545
  this.immediateAccessToDigitalProductCheckbox = page.getByLabel("I want immediate access to the digital content and I acknowledge that thereby I waive my right to cancel.");
@@ -3480,21 +3558,21 @@ class CheckoutConfirm {
3480
3558
  }
3481
3559
  }
3482
3560
 
3483
- var __defProp$J = Object.defineProperty;
3484
- var __defNormalProp$J = (obj, key, value) => key in obj ? __defProp$J(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3485
- var __publicField$J = (obj, key, value) => {
3486
- __defNormalProp$J(obj, typeof key !== "symbol" ? key + "" : key, value);
3561
+ var __defProp$L = Object.defineProperty;
3562
+ var __defNormalProp$L = (obj, key, value) => key in obj ? __defProp$L(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3563
+ var __publicField$L = (obj, key, value) => {
3564
+ __defNormalProp$L(obj, typeof key !== "symbol" ? key + "" : key, value);
3487
3565
  return value;
3488
3566
  };
3489
3567
  class CheckoutFinish {
3490
3568
  constructor(page) {
3491
3569
  this.page = page;
3492
- __publicField$J(this, "headline");
3493
- __publicField$J(this, "orderNumberText");
3494
- __publicField$J(this, "grandTotalPrice");
3495
- __publicField$J(this, "taxPrice");
3496
- __publicField$J(this, "cartLineItemImages");
3497
- __publicField$J(this, "orderNumberRegex", /Your order number: #(\d+)/);
3570
+ __publicField$L(this, "headline");
3571
+ __publicField$L(this, "orderNumberText");
3572
+ __publicField$L(this, "grandTotalPrice");
3573
+ __publicField$L(this, "taxPrice");
3574
+ __publicField$L(this, "cartLineItemImages");
3575
+ __publicField$L(this, "orderNumberRegex", /Your order number: #(\d+)/);
3498
3576
  this.headline = page.getByRole("heading", { name: "Thank you for your order" });
3499
3577
  this.orderNumberText = page.getByText(this.orderNumberRegex);
3500
3578
  this.grandTotalPrice = page.locator('dt:has-text("Grand total") + dd');
@@ -3523,16 +3601,16 @@ class CheckoutFinish {
3523
3601
  }
3524
3602
  }
3525
3603
 
3526
- var __defProp$I = Object.defineProperty;
3527
- var __defNormalProp$I = (obj, key, value) => key in obj ? __defProp$I(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3528
- var __publicField$I = (obj, key, value) => {
3529
- __defNormalProp$I(obj, typeof key !== "symbol" ? key + "" : key, value);
3604
+ var __defProp$K = Object.defineProperty;
3605
+ var __defNormalProp$K = (obj, key, value) => key in obj ? __defProp$K(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3606
+ var __publicField$K = (obj, key, value) => {
3607
+ __defNormalProp$K(obj, typeof key !== "symbol" ? key + "" : key, value);
3530
3608
  return value;
3531
3609
  };
3532
3610
  class CheckoutRegister {
3533
3611
  constructor(page) {
3534
3612
  this.page = page;
3535
- __publicField$I(this, "cartLineItemImages");
3613
+ __publicField$K(this, "cartLineItemImages");
3536
3614
  this.cartLineItemImages = page.locator(".line-item-img-link");
3537
3615
  }
3538
3616
  url() {
@@ -3540,24 +3618,24 @@ class CheckoutRegister {
3540
3618
  }
3541
3619
  }
3542
3620
 
3543
- var __defProp$H = Object.defineProperty;
3544
- var __defNormalProp$H = (obj, key, value) => key in obj ? __defProp$H(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3545
- var __publicField$H = (obj, key, value) => {
3546
- __defNormalProp$H(obj, typeof key !== "symbol" ? key + "" : key, value);
3621
+ var __defProp$J = Object.defineProperty;
3622
+ var __defNormalProp$J = (obj, key, value) => key in obj ? __defProp$J(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3623
+ var __publicField$J = (obj, key, value) => {
3624
+ __defNormalProp$J(obj, typeof key !== "symbol" ? key + "" : key, value);
3547
3625
  return value;
3548
3626
  };
3549
3627
  class Account {
3550
3628
  constructor(page, instanceMeta) {
3551
3629
  this.page = page;
3552
3630
  this.instanceMeta = instanceMeta;
3553
- __publicField$H(this, "headline");
3554
- __publicField$H(this, "personalDataCardTitle");
3555
- __publicField$H(this, "paymentMethodCardTitle");
3556
- __publicField$H(this, "billingAddressCardTitle");
3557
- __publicField$H(this, "shippingAddressCardTitle");
3558
- __publicField$H(this, "newsletterCheckbox");
3559
- __publicField$H(this, "newsletterRegistrationSuccessMessage");
3560
- __publicField$H(this, "customerGroupRequestMessage");
3631
+ __publicField$J(this, "headline");
3632
+ __publicField$J(this, "personalDataCardTitle");
3633
+ __publicField$J(this, "paymentMethodCardTitle");
3634
+ __publicField$J(this, "billingAddressCardTitle");
3635
+ __publicField$J(this, "shippingAddressCardTitle");
3636
+ __publicField$J(this, "newsletterCheckbox");
3637
+ __publicField$J(this, "newsletterRegistrationSuccessMessage");
3638
+ __publicField$J(this, "customerGroupRequestMessage");
3561
3639
  this.headline = page.getByRole("heading", { name: "Overview" });
3562
3640
  this.personalDataCardTitle = page.getByRole("heading", { name: "Personal data" });
3563
3641
  this.paymentMethodCardTitle = page.getByRole("heading", { name: "Default payment method" });
@@ -3579,40 +3657,46 @@ class Account {
3579
3657
  }
3580
3658
  }
3581
3659
 
3582
- var __defProp$G = Object.defineProperty;
3583
- var __defNormalProp$G = (obj, key, value) => key in obj ? __defProp$G(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3584
- var __publicField$G = (obj, key, value) => {
3585
- __defNormalProp$G(obj, typeof key !== "symbol" ? key + "" : key, value);
3660
+ var __defProp$I = Object.defineProperty;
3661
+ var __defNormalProp$I = (obj, key, value) => key in obj ? __defProp$I(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3662
+ var __publicField$I = (obj, key, value) => {
3663
+ __defNormalProp$I(obj, typeof key !== "symbol" ? key + "" : key, value);
3586
3664
  return value;
3587
3665
  };
3588
3666
  class AccountLogin {
3589
3667
  constructor(page) {
3590
3668
  this.page = page;
3591
- __publicField$G(this, "emailInput");
3592
- __publicField$G(this, "passwordInput");
3593
- __publicField$G(this, "forgotPasswordLink");
3594
- __publicField$G(this, "loginButton");
3595
- __publicField$G(this, "logoutLink");
3596
- __publicField$G(this, "successAlert");
3597
- __publicField$G(this, "invalidCredentialsAlert");
3598
- __publicField$G(this, "passwordUpdatedAlert");
3669
+ __publicField$I(this, "emailInput");
3670
+ __publicField$I(this, "passwordInput");
3671
+ __publicField$I(this, "forgotPasswordLink");
3672
+ __publicField$I(this, "loginButton");
3673
+ __publicField$I(this, "logoutLink");
3674
+ __publicField$I(this, "successAlert");
3675
+ __publicField$I(this, "invalidCredentialsAlert");
3676
+ __publicField$I(this, "passwordUpdatedAlert");
3599
3677
  // Inputs for registration
3600
- __publicField$G(this, "personalFormArea");
3601
- __publicField$G(this, "billingAddressFormArea");
3602
- __publicField$G(this, "accountTypeSelect");
3603
- __publicField$G(this, "salutationSelect");
3604
- __publicField$G(this, "firstNameInput");
3605
- __publicField$G(this, "lastNameInput");
3606
- __publicField$G(this, "companyInput");
3607
- __publicField$G(this, "departmentInput");
3608
- __publicField$G(this, "vatRegNoInput");
3609
- __publicField$G(this, "registerEmailInput");
3610
- __publicField$G(this, "registerPasswordInput");
3611
- __publicField$G(this, "streetAddressInput");
3612
- __publicField$G(this, "cityInput");
3613
- __publicField$G(this, "countryInput");
3614
- __publicField$G(this, "postalCodeInput");
3615
- __publicField$G(this, "registerButton");
3678
+ __publicField$I(this, "personalFormArea");
3679
+ __publicField$I(this, "billingAddressFormArea");
3680
+ __publicField$I(this, "accountTypeSelect");
3681
+ __publicField$I(this, "salutationSelect");
3682
+ __publicField$I(this, "firstNameInput");
3683
+ __publicField$I(this, "lastNameInput");
3684
+ __publicField$I(this, "companyInput");
3685
+ __publicField$I(this, "departmentInput");
3686
+ __publicField$I(this, "vatRegNoInput");
3687
+ __publicField$I(this, "registerEmailInput");
3688
+ __publicField$I(this, "registerPasswordInput");
3689
+ __publicField$I(this, "streetAddressInput");
3690
+ __publicField$I(this, "cityInput");
3691
+ __publicField$I(this, "countryInput");
3692
+ __publicField$I(this, "postalCodeInput");
3693
+ __publicField$I(this, "registerButton");
3694
+ // Inputs for reCaptcha
3695
+ __publicField$I(this, "greCaptchaV2Container");
3696
+ __publicField$I(this, "greCaptchaV2Input");
3697
+ __publicField$I(this, "greCaptchaV3Input");
3698
+ __publicField$I(this, "greCaptchaProtectionInformation");
3699
+ __publicField$I(this, "greCaptchaBadge");
3616
3700
  this.emailInput = page.getByLabel("Your email address");
3617
3701
  this.passwordInput = page.getByLabel("Your password");
3618
3702
  this.loginButton = page.getByRole("button", { name: "Log in" });
@@ -3638,32 +3722,37 @@ class AccountLogin {
3638
3722
  this.logoutLink = page.getByRole("link", { name: "Log out" });
3639
3723
  this.successAlert = page.getByText("Successfully logged out.");
3640
3724
  this.passwordUpdatedAlert = page.getByText("Your password has been updated.");
3725
+ this.greCaptchaV2Container = this.page.locator(".grecaptcha-v2-container");
3726
+ this.greCaptchaV2Input = this.page.locator(".grecaptcha-v2-input");
3727
+ this.greCaptchaV3Input = this.page.locator(".grecaptcha_v3-input");
3728
+ this.greCaptchaProtectionInformation = this.page.locator(".grecaptcha-protection-information");
3729
+ this.greCaptchaBadge = this.page.locator(".grecaptcha-badge");
3641
3730
  }
3642
3731
  url() {
3643
3732
  return "account/login";
3644
3733
  }
3645
3734
  }
3646
3735
 
3647
- var __defProp$F = Object.defineProperty;
3648
- var __defNormalProp$F = (obj, key, value) => key in obj ? __defProp$F(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3649
- var __publicField$F = (obj, key, value) => {
3650
- __defNormalProp$F(obj, typeof key !== "symbol" ? key + "" : key, value);
3736
+ var __defProp$H = Object.defineProperty;
3737
+ var __defNormalProp$H = (obj, key, value) => key in obj ? __defProp$H(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3738
+ var __publicField$H = (obj, key, value) => {
3739
+ __defNormalProp$H(obj, typeof key !== "symbol" ? key + "" : key, value);
3651
3740
  return value;
3652
3741
  };
3653
3742
  class AccountRecover {
3654
3743
  constructor(page) {
3655
3744
  this.page = page;
3656
- __publicField$F(this, "passwordRecoveryForm");
3657
- __publicField$F(this, "title");
3658
- __publicField$F(this, "subtitle");
3659
- __publicField$F(this, "emailInput");
3660
- __publicField$F(this, "requestEmailButton");
3661
- __publicField$F(this, "backButton");
3662
- __publicField$F(this, "passwordResetEmailSentMessage");
3663
- __publicField$F(this, "newPasswordInput");
3664
- __publicField$F(this, "newPasswordConfirmInput");
3665
- __publicField$F(this, "changePasswordButton");
3666
- __publicField$F(this, "invalidLinkMessage");
3745
+ __publicField$H(this, "passwordRecoveryForm");
3746
+ __publicField$H(this, "title");
3747
+ __publicField$H(this, "subtitle");
3748
+ __publicField$H(this, "emailInput");
3749
+ __publicField$H(this, "requestEmailButton");
3750
+ __publicField$H(this, "backButton");
3751
+ __publicField$H(this, "passwordResetEmailSentMessage");
3752
+ __publicField$H(this, "newPasswordInput");
3753
+ __publicField$H(this, "newPasswordConfirmInput");
3754
+ __publicField$H(this, "changePasswordButton");
3755
+ __publicField$H(this, "invalidLinkMessage");
3667
3756
  this.passwordRecoveryForm = page.locator(".account-recover-password-form");
3668
3757
  const cardTitle = this.passwordRecoveryForm.locator(".card-title");
3669
3758
  this.title = cardTitle.getByText("Password recovery");
@@ -3685,36 +3774,36 @@ class AccountRecover {
3685
3774
  }
3686
3775
  }
3687
3776
 
3688
- var __defProp$E = Object.defineProperty;
3689
- var __defNormalProp$E = (obj, key, value) => key in obj ? __defProp$E(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3690
- var __publicField$E = (obj, key, value) => {
3691
- __defNormalProp$E(obj, typeof key !== "symbol" ? key + "" : key, value);
3777
+ var __defProp$G = Object.defineProperty;
3778
+ var __defNormalProp$G = (obj, key, value) => key in obj ? __defProp$G(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3779
+ var __publicField$G = (obj, key, value) => {
3780
+ __defNormalProp$G(obj, typeof key !== "symbol" ? key + "" : key, value);
3692
3781
  return value;
3693
3782
  };
3694
3783
  class AccountProfile {
3695
3784
  constructor(page, instanceMeta) {
3696
3785
  this.page = page;
3697
3786
  this.instanceMeta = instanceMeta;
3698
- __publicField$E(this, "salutationSelect");
3699
- __publicField$E(this, "firstNameInput");
3700
- __publicField$E(this, "lastNameInput");
3701
- __publicField$E(this, "saveProfileButton");
3702
- __publicField$E(this, "changeEmailButton");
3703
- __publicField$E(this, "emailAddressInput");
3704
- __publicField$E(this, "emailAddressConfirmInput");
3705
- __publicField$E(this, "emailConfirmPasswordInput");
3706
- __publicField$E(this, "saveEmailAddressButton");
3707
- __publicField$E(this, "changePasswordButton");
3708
- __publicField$E(this, "newPasswordInput");
3709
- __publicField$E(this, "newPasswordConfirmInput");
3710
- __publicField$E(this, "currentPasswordInput");
3711
- __publicField$E(this, "saveNewPasswordButton");
3712
- __publicField$E(this, "loginDataEmailAddress");
3713
- __publicField$E(this, "emailUpdateMessage");
3714
- __publicField$E(this, "passwordUpdateMessage");
3715
- __publicField$E(this, "emailValidationAlert");
3716
- __publicField$E(this, "emailUpdateFailureAlert");
3717
- __publicField$E(this, "passwordUpdateFailureAlert");
3787
+ __publicField$G(this, "salutationSelect");
3788
+ __publicField$G(this, "firstNameInput");
3789
+ __publicField$G(this, "lastNameInput");
3790
+ __publicField$G(this, "saveProfileButton");
3791
+ __publicField$G(this, "changeEmailButton");
3792
+ __publicField$G(this, "emailAddressInput");
3793
+ __publicField$G(this, "emailAddressConfirmInput");
3794
+ __publicField$G(this, "emailConfirmPasswordInput");
3795
+ __publicField$G(this, "saveEmailAddressButton");
3796
+ __publicField$G(this, "changePasswordButton");
3797
+ __publicField$G(this, "newPasswordInput");
3798
+ __publicField$G(this, "newPasswordConfirmInput");
3799
+ __publicField$G(this, "currentPasswordInput");
3800
+ __publicField$G(this, "saveNewPasswordButton");
3801
+ __publicField$G(this, "loginDataEmailAddress");
3802
+ __publicField$G(this, "emailUpdateMessage");
3803
+ __publicField$G(this, "passwordUpdateMessage");
3804
+ __publicField$G(this, "emailValidationAlert");
3805
+ __publicField$G(this, "emailUpdateFailureAlert");
3806
+ __publicField$G(this, "passwordUpdateFailureAlert");
3718
3807
  this.salutationSelect = page.getByLabel("Salutation");
3719
3808
  this.firstNameInput = page.getByLabel("First name");
3720
3809
  this.lastNameInput = page.getByLabel("Last name");
@@ -3754,25 +3843,21 @@ class AccountProfile {
3754
3843
  }
3755
3844
  }
3756
3845
 
3757
- var __defProp$D = Object.defineProperty;
3758
- var __defNormalProp$D = (obj, key, value) => key in obj ? __defProp$D(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3759
- var __publicField$D = (obj, key, value) => {
3760
- __defNormalProp$D(obj, typeof key !== "symbol" ? key + "" : key, value);
3846
+ var __defProp$F = Object.defineProperty;
3847
+ var __defNormalProp$F = (obj, key, value) => key in obj ? __defProp$F(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3848
+ var __publicField$F = (obj, key, value) => {
3849
+ __defNormalProp$F(obj, typeof key !== "symbol" ? key + "" : key, value);
3761
3850
  return value;
3762
3851
  };
3763
3852
  class AccountOrder {
3764
3853
  constructor(page) {
3765
3854
  this.page = page;
3766
- __publicField$D(this, "cartLineItemImages");
3767
- __publicField$D(this, "orderExpandButton");
3768
- __publicField$D(this, "digitalProductDownloadButton");
3769
- __publicField$D(this, "dialogOrderCancel");
3770
- __publicField$D(this, "dialogOrderCancelButton");
3771
- __publicField$D(this, "dialogBackButton");
3772
- __publicField$D(this, "getViewSubscriptionLink", (orderNumber) => {
3773
- const orderContainer = this.page.locator(".order-item-header", { hasText: `Order Number: ${orderNumber}` });
3774
- return orderContainer.getByText("View Subscription");
3775
- });
3855
+ __publicField$F(this, "cartLineItemImages");
3856
+ __publicField$F(this, "orderExpandButton");
3857
+ __publicField$F(this, "digitalProductDownloadButton");
3858
+ __publicField$F(this, "dialogOrderCancel");
3859
+ __publicField$F(this, "dialogOrderCancelButton");
3860
+ __publicField$F(this, "dialogBackButton");
3776
3861
  this.orderExpandButton = page.getByRole("button", { name: /Expand|Show details/ }).first();
3777
3862
  this.cartLineItemImages = page.locator(".line-item-img-link");
3778
3863
  this.digitalProductDownloadButton = page.getByRole("link", { name: "Download" }).first();
@@ -3820,20 +3905,20 @@ class AccountOrder {
3820
3905
  }
3821
3906
  }
3822
3907
 
3823
- var __defProp$C = Object.defineProperty;
3824
- var __defNormalProp$C = (obj, key, value) => key in obj ? __defProp$C(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3825
- var __publicField$C = (obj, key, value) => {
3826
- __defNormalProp$C(obj, typeof key !== "symbol" ? key + "" : key, value);
3908
+ var __defProp$E = Object.defineProperty;
3909
+ var __defNormalProp$E = (obj, key, value) => key in obj ? __defProp$E(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3910
+ var __publicField$E = (obj, key, value) => {
3911
+ __defNormalProp$E(obj, typeof key !== "symbol" ? key + "" : key, value);
3827
3912
  return value;
3828
3913
  };
3829
3914
  class AccountAddresses {
3830
3915
  constructor(page) {
3831
3916
  this.page = page;
3832
- __publicField$C(this, "addNewAddressButton");
3833
- __publicField$C(this, "editBillingAddressButton");
3834
- __publicField$C(this, "editShippingAddressButton");
3835
- __publicField$C(this, "useDefaultBillingAddressButton");
3836
- __publicField$C(this, "useDefaultShippingAddressButton");
3917
+ __publicField$E(this, "addNewAddressButton");
3918
+ __publicField$E(this, "editBillingAddressButton");
3919
+ __publicField$E(this, "editShippingAddressButton");
3920
+ __publicField$E(this, "useDefaultBillingAddressButton");
3921
+ __publicField$E(this, "useDefaultShippingAddressButton");
3837
3922
  this.addNewAddressButton = page.getByRole("link", { name: /Add (new )?address/ });
3838
3923
  this.editBillingAddressButton = page.getByRole("link", { name: "Edit address" }).first();
3839
3924
  this.editShippingAddressButton = page.getByRole("link", { name: "Edit address" }).nth(1);
@@ -3845,19 +3930,19 @@ class AccountAddresses {
3845
3930
  }
3846
3931
  }
3847
3932
 
3848
- var __defProp$B = Object.defineProperty;
3849
- var __defNormalProp$B = (obj, key, value) => key in obj ? __defProp$B(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3850
- var __publicField$B = (obj, key, value) => {
3851
- __defNormalProp$B(obj, typeof key !== "symbol" ? key + "" : key, value);
3933
+ var __defProp$D = Object.defineProperty;
3934
+ var __defNormalProp$D = (obj, key, value) => key in obj ? __defProp$D(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3935
+ var __publicField$D = (obj, key, value) => {
3936
+ __defNormalProp$D(obj, typeof key !== "symbol" ? key + "" : key, value);
3852
3937
  return value;
3853
3938
  };
3854
3939
  class AccountPayment {
3855
3940
  constructor(page) {
3856
3941
  this.page = page;
3857
- __publicField$B(this, "cashOnDeliveryOption");
3858
- __publicField$B(this, "paidInAdvanceOption");
3859
- __publicField$B(this, "invoiceOption");
3860
- __publicField$B(this, "changeDefaultPaymentButton");
3942
+ __publicField$D(this, "cashOnDeliveryOption");
3943
+ __publicField$D(this, "paidInAdvanceOption");
3944
+ __publicField$D(this, "invoiceOption");
3945
+ __publicField$D(this, "changeDefaultPaymentButton");
3861
3946
  this.cashOnDeliveryOption = page.getByLabel("Cash on delivery");
3862
3947
  this.paidInAdvanceOption = page.getByLabel("Paid in advance");
3863
3948
  this.invoiceOption = page.getByLabel("Invoice");
@@ -3868,17 +3953,17 @@ class AccountPayment {
3868
3953
  }
3869
3954
  }
3870
3955
 
3871
- var __defProp$A = Object.defineProperty;
3872
- var __defNormalProp$A = (obj, key, value) => key in obj ? __defProp$A(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3873
- var __publicField$A = (obj, key, value) => {
3874
- __defNormalProp$A(obj, typeof key !== "symbol" ? key + "" : key, value);
3956
+ var __defProp$C = Object.defineProperty;
3957
+ var __defNormalProp$C = (obj, key, value) => key in obj ? __defProp$C(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3958
+ var __publicField$C = (obj, key, value) => {
3959
+ __defNormalProp$C(obj, typeof key !== "symbol" ? key + "" : key, value);
3875
3960
  return value;
3876
3961
  };
3877
3962
  class Search {
3878
3963
  constructor(page) {
3879
3964
  this.page = page;
3880
- __publicField$A(this, "headline");
3881
- __publicField$A(this, "productImages");
3965
+ __publicField$C(this, "headline");
3966
+ __publicField$C(this, "productImages");
3882
3967
  this.headline = page.locator("h1.search-headline");
3883
3968
  this.productImages = page.locator(".product-image-wrapper");
3884
3969
  }
@@ -3887,25 +3972,25 @@ class Search {
3887
3972
  }
3888
3973
  }
3889
3974
 
3890
- var __defProp$z = Object.defineProperty;
3891
- var __defNormalProp$z = (obj, key, value) => key in obj ? __defProp$z(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3892
- var __publicField$z = (obj, key, value) => {
3893
- __defNormalProp$z(obj, typeof key !== "symbol" ? key + "" : key, value);
3975
+ var __defProp$B = Object.defineProperty;
3976
+ var __defNormalProp$B = (obj, key, value) => key in obj ? __defProp$B(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3977
+ var __publicField$B = (obj, key, value) => {
3978
+ __defNormalProp$B(obj, typeof key !== "symbol" ? key + "" : key, value);
3894
3979
  return value;
3895
3980
  };
3896
3981
  class SearchSuggest extends Home {
3897
3982
  constructor(page) {
3898
3983
  super(page);
3899
3984
  this.page = page;
3900
- __publicField$z(this, "searchSuggestLineItemImages");
3901
- __publicField$z(this, "searchInput");
3902
- __publicField$z(this, "searchIcon");
3903
- __publicField$z(this, "searchSuggestNoResult");
3904
- __publicField$z(this, "searchSuggestLineItemName");
3905
- __publicField$z(this, "searchSuggestLineItemPrice");
3906
- __publicField$z(this, "searchSuggestTotalLink");
3907
- __publicField$z(this, "searchResultTotal");
3908
- __publicField$z(this, "searchHeadline");
3985
+ __publicField$B(this, "searchSuggestLineItemImages");
3986
+ __publicField$B(this, "searchInput");
3987
+ __publicField$B(this, "searchIcon");
3988
+ __publicField$B(this, "searchSuggestNoResult");
3989
+ __publicField$B(this, "searchSuggestLineItemName");
3990
+ __publicField$B(this, "searchSuggestLineItemPrice");
3991
+ __publicField$B(this, "searchSuggestTotalLink");
3992
+ __publicField$B(this, "searchResultTotal");
3993
+ __publicField$B(this, "searchHeadline");
3909
3994
  this.searchSuggestLineItemImages = page.locator(".search-suggest-product-image-container");
3910
3995
  this.searchInput = page.locator(".header-search-input");
3911
3996
  this.searchIcon = page.locator(".header-search-icon");
@@ -3935,31 +4020,31 @@ class CustomRegister extends AccountLogin {
3935
4020
  }
3936
4021
  }
3937
4022
 
3938
- var __defProp$y = Object.defineProperty;
3939
- var __defNormalProp$y = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3940
- var __publicField$y = (obj, key, value) => {
3941
- __defNormalProp$y(obj, typeof key !== "symbol" ? key + "" : key, value);
4023
+ var __defProp$A = Object.defineProperty;
4024
+ var __defNormalProp$A = (obj, key, value) => key in obj ? __defProp$A(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4025
+ var __publicField$A = (obj, key, value) => {
4026
+ __defNormalProp$A(obj, typeof key !== "symbol" ? key + "" : key, value);
3942
4027
  return value;
3943
4028
  };
3944
4029
  class CheckoutOrderEdit {
3945
4030
  constructor(page) {
3946
4031
  this.page = page;
3947
- __publicField$y(this, "completePaymentButton");
3948
- __publicField$y(this, "orderCancelButton");
3949
- __publicField$y(this, "dialogOrderCancel");
3950
- __publicField$y(this, "dialogOrderCancelButton");
3951
- __publicField$y(this, "dialogBackButton");
4032
+ __publicField$A(this, "completePaymentButton");
4033
+ __publicField$A(this, "orderCancelButton");
4034
+ __publicField$A(this, "dialogOrderCancel");
4035
+ __publicField$A(this, "dialogOrderCancelButton");
4036
+ __publicField$A(this, "dialogBackButton");
3952
4037
  /**
3953
4038
  * Payment options
3954
4039
  */
3955
- __publicField$y(this, "paymentCashOnDelivery");
3956
- __publicField$y(this, "paymentPaidInAdvance");
3957
- __publicField$y(this, "paymentInvoice");
4040
+ __publicField$A(this, "paymentCashOnDelivery");
4041
+ __publicField$A(this, "paymentPaidInAdvance");
4042
+ __publicField$A(this, "paymentInvoice");
3958
4043
  /**
3959
4044
  * Shipping options
3960
4045
  */
3961
- __publicField$y(this, "shippingStandard");
3962
- __publicField$y(this, "shippingExpress");
4046
+ __publicField$A(this, "shippingStandard");
4047
+ __publicField$A(this, "shippingExpress");
3963
4048
  this.completePaymentButton = page.getByRole("button", { name: "Complete payment" });
3964
4049
  this.orderCancelButton = page.getByRole("button", { name: "Cancel order" });
3965
4050
  this.dialogOrderCancel = page.getByRole("dialog", { name: "Cancel order" });
@@ -3974,27 +4059,35 @@ class CheckoutOrderEdit {
3974
4059
  url(orderUuid) {
3975
4060
  return `account/order/edit/${orderUuid}`;
3976
4061
  }
4062
+ /**
4063
+ * Returns the radio button element for a specified payment method.
4064
+ *
4065
+ * @param paymentMethodName - Name of the payment method on the page.
4066
+ */
4067
+ getPaymentMethodButton(paymentMethodName) {
4068
+ return this.page.getByLabel(paymentMethodName);
4069
+ }
3977
4070
  }
3978
4071
 
3979
- var __defProp$x = Object.defineProperty;
3980
- var __defNormalProp$x = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3981
- var __publicField$x = (obj, key, value) => {
3982
- __defNormalProp$x(obj, typeof key !== "symbol" ? key + "" : key, value);
4072
+ var __defProp$z = Object.defineProperty;
4073
+ var __defNormalProp$z = (obj, key, value) => key in obj ? __defProp$z(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4074
+ var __publicField$z = (obj, key, value) => {
4075
+ __defNormalProp$z(obj, typeof key !== "symbol" ? key + "" : key, value);
3983
4076
  return value;
3984
4077
  };
3985
4078
  class AccountAddressCreate {
3986
4079
  constructor(page) {
3987
4080
  this.page = page;
3988
- __publicField$x(this, "salutationDropdown");
3989
- __publicField$x(this, "firstNameInput");
3990
- __publicField$x(this, "lastNameInput");
3991
- __publicField$x(this, "companyInput");
3992
- __publicField$x(this, "departmentInput");
3993
- __publicField$x(this, "streetInput");
3994
- __publicField$x(this, "zipcodeInput");
3995
- __publicField$x(this, "cityInput");
3996
- __publicField$x(this, "countryDropdown");
3997
- __publicField$x(this, "saveAddressButton");
4081
+ __publicField$z(this, "salutationDropdown");
4082
+ __publicField$z(this, "firstNameInput");
4083
+ __publicField$z(this, "lastNameInput");
4084
+ __publicField$z(this, "companyInput");
4085
+ __publicField$z(this, "departmentInput");
4086
+ __publicField$z(this, "streetInput");
4087
+ __publicField$z(this, "zipcodeInput");
4088
+ __publicField$z(this, "cityInput");
4089
+ __publicField$z(this, "countryDropdown");
4090
+ __publicField$z(this, "saveAddressButton");
3998
4091
  this.salutationDropdown = page.locator("#addresspersonalSalutation");
3999
4092
  this.firstNameInput = page.locator("#addresspersonalFirstName");
4000
4093
  this.lastNameInput = page.locator("#addresspersonalLastName");
@@ -4011,6 +4104,88 @@ class AccountAddressCreate {
4011
4104
  }
4012
4105
  }
4013
4106
 
4107
+ var __defProp$y = Object.defineProperty;
4108
+ var __defNormalProp$y = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4109
+ var __publicField$y = (obj, key, value) => {
4110
+ __defNormalProp$y(obj, typeof key !== "symbol" ? key + "" : key, value);
4111
+ return value;
4112
+ };
4113
+ class PageNotFound {
4114
+ constructor(page) {
4115
+ this.page = page;
4116
+ __publicField$y(this, "pageNotFoundImage");
4117
+ __publicField$y(this, "headline");
4118
+ __publicField$y(this, "pageNotFoundMessage");
4119
+ __publicField$y(this, "backToShopButton");
4120
+ this.pageNotFoundImage = page.getByAltText("Page not found");
4121
+ this.headline = page.getByRole("heading", { name: "Page not found" });
4122
+ this.pageNotFoundMessage = page.getByText(`We are sorry, the page you're looking for could not be found. It may no longer exist or may have been moved.`);
4123
+ this.backToShopButton = page.getByRole("link", { name: "Back to shop" });
4124
+ }
4125
+ url() {
4126
+ return "non-existing-page";
4127
+ }
4128
+ }
4129
+
4130
+ var __defProp$x = Object.defineProperty;
4131
+ var __defNormalProp$x = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4132
+ var __publicField$x = (obj, key, value) => {
4133
+ __defNormalProp$x(obj, typeof key !== "symbol" ? key + "" : key, value);
4134
+ return value;
4135
+ };
4136
+ class ContactForm extends Home {
4137
+ constructor(page) {
4138
+ super(page);
4139
+ this.page = page;
4140
+ __publicField$x(this, "contactModal");
4141
+ __publicField$x(this, "contactSuccessModal");
4142
+ __publicField$x(this, "salutationSelect");
4143
+ __publicField$x(this, "firstNameInput");
4144
+ __publicField$x(this, "lastNameInput");
4145
+ __publicField$x(this, "emailInput");
4146
+ __publicField$x(this, "phoneInput");
4147
+ __publicField$x(this, "subjectInput");
4148
+ __publicField$x(this, "commentInput");
4149
+ __publicField$x(this, "privacyPolicyCheckbox");
4150
+ __publicField$x(this, "submitButton");
4151
+ __publicField$x(this, "contactSuccessMessage");
4152
+ __publicField$x(this, "cardTitle");
4153
+ /**
4154
+ * Captcha locators
4155
+ */
4156
+ __publicField$x(this, "basicCaptcha");
4157
+ __publicField$x(this, "basicCaptchaImage");
4158
+ __publicField$x(this, "basicCaptchaRefreshButton");
4159
+ __publicField$x(this, "basicCaptchaInput");
4160
+ __publicField$x(this, "greCaptchaV2Container");
4161
+ __publicField$x(this, "greCaptchaV2Input");
4162
+ __publicField$x(this, "greCaptchaProtectionInformation");
4163
+ this.contactModal = this.page.getByRole("dialog").filter({ has: this.page.getByLabel("Contact", { exact: true }) });
4164
+ this.salutationSelect = this.contactModal.getByLabel("Salutation*");
4165
+ this.firstNameInput = this.contactModal.getByLabel("First name*");
4166
+ this.lastNameInput = this.contactModal.getByLabel("Last name*");
4167
+ this.emailInput = this.contactModal.getByLabel("Your email address*");
4168
+ this.phoneInput = this.contactModal.getByLabel("Phone*");
4169
+ this.subjectInput = this.contactModal.getByLabel("Subject*");
4170
+ this.commentInput = this.contactModal.getByLabel("Comment*");
4171
+ this.privacyPolicyCheckbox = this.contactModal.getByRole("checkbox", { name: "By selecting continue you confirm that you have read and agree to our" });
4172
+ this.submitButton = this.contactModal.getByRole("button", { name: "Submit" });
4173
+ this.contactSuccessModal = this.page.getByRole("dialog").filter({ has: this.page.locator(".confirm-message") });
4174
+ this.contactSuccessMessage = this.contactSuccessModal.locator(".confirm-message");
4175
+ this.cardTitle = this.contactModal.locator(".card-title");
4176
+ this.basicCaptcha = this.contactModal.locator(".basic-captcha");
4177
+ this.basicCaptchaImage = this.basicCaptcha.locator("img");
4178
+ this.basicCaptchaRefreshButton = this.basicCaptcha.locator(".basic-captcha-content-refresh-icon");
4179
+ this.basicCaptchaInput = this.basicCaptcha.locator('input[name="shopware_basic_captcha_confirm"]');
4180
+ this.greCaptchaV2Container = this.contactModal.locator(".grecaptcha-v2-container");
4181
+ this.greCaptchaV2Input = this.contactModal.locator(".grecaptcha-v2-input");
4182
+ this.greCaptchaProtectionInformation = this.contactModal.locator(".grecaptcha-protection-information");
4183
+ }
4184
+ url() {
4185
+ return new Error("Function not implemented, because it is a modal page object").message;
4186
+ }
4187
+ }
4188
+
4014
4189
  const StorefrontPageObjects = {
4015
4190
  Home,
4016
4191
  ProductDetail: ProductDetail$1,
@@ -4031,7 +4206,9 @@ const StorefrontPageObjects = {
4031
4206
  Search,
4032
4207
  SearchSuggest,
4033
4208
  CustomRegister,
4034
- CheckoutOrderEdit
4209
+ CheckoutOrderEdit,
4210
+ PageNotFound,
4211
+ ContactForm
4035
4212
  };
4036
4213
  const test$6 = test$e.extend({
4037
4214
  StorefrontHome: async ({ StorefrontPage }, use) => {
@@ -4093,6 +4270,12 @@ const test$6 = test$e.extend({
4093
4270
  },
4094
4271
  StorefrontCheckoutOrderEdit: async ({ StorefrontPage }, use) => {
4095
4272
  await use(new CheckoutOrderEdit(StorefrontPage));
4273
+ },
4274
+ StorefrontPageNotFound: async ({ StorefrontPage }, use) => {
4275
+ await use(new PageNotFound(StorefrontPage));
4276
+ },
4277
+ StorefrontContactForm: async ({ StorefrontPage }, use) => {
4278
+ await use(new ContactForm(StorefrontPage));
4096
4279
  }
4097
4280
  });
4098
4281