@shopware-ag/acceptance-test-suite 11.5.0 → 11.6.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 +133 -5
- package/dist/index.d.ts +133 -5
- package/dist/index.mjs +632 -355
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -386,16 +386,16 @@ const test$c = test$e.extend({
|
|
|
386
386
|
]
|
|
387
387
|
});
|
|
388
388
|
|
|
389
|
-
var __defProp$
|
|
390
|
-
var __defNormalProp$
|
|
391
|
-
var __publicField$
|
|
392
|
-
__defNormalProp$
|
|
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$
|
|
398
|
-
__publicField$
|
|
397
|
+
__publicField$X(this, "context");
|
|
398
|
+
__publicField$X(this, "options");
|
|
399
399
|
this.context = context;
|
|
400
400
|
this.options = options;
|
|
401
401
|
}
|
|
@@ -502,13 +502,20 @@ const _AdminApiContext = class _AdminApiContext {
|
|
|
502
502
|
let response = await methodMap[method](url, options);
|
|
503
503
|
if (response.status() === 401) {
|
|
504
504
|
await this.refreshAccessToken();
|
|
505
|
-
const updatedOptions = {
|
|
505
|
+
const updatedOptions = {
|
|
506
|
+
...options,
|
|
507
|
+
data: options?.data ?? void 0,
|
|
508
|
+
headers: {
|
|
509
|
+
...options?.headers || {},
|
|
510
|
+
Authorization: `Bearer ${this.options["access_token"]}`
|
|
511
|
+
}
|
|
512
|
+
};
|
|
506
513
|
response = await methodMap[method](url, updatedOptions);
|
|
507
514
|
}
|
|
508
515
|
return response;
|
|
509
516
|
}
|
|
510
517
|
};
|
|
511
|
-
__publicField$
|
|
518
|
+
__publicField$X(_AdminApiContext, "defaultOptions", {
|
|
512
519
|
app_url: process.env["APP_URL"],
|
|
513
520
|
client_id: process.env["SHOPWARE_ACCESS_KEY_ID"],
|
|
514
521
|
client_secret: process.env["SHOPWARE_SECRET_ACCESS_KEY"],
|
|
@@ -518,16 +525,16 @@ __publicField$V(_AdminApiContext, "defaultOptions", {
|
|
|
518
525
|
});
|
|
519
526
|
let AdminApiContext = _AdminApiContext;
|
|
520
527
|
|
|
521
|
-
var __defProp$
|
|
522
|
-
var __defNormalProp$
|
|
523
|
-
var __publicField$
|
|
524
|
-
__defNormalProp$
|
|
528
|
+
var __defProp$W = Object.defineProperty;
|
|
529
|
+
var __defNormalProp$W = (obj, key, value) => key in obj ? __defProp$W(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
530
|
+
var __publicField$W = (obj, key, value) => {
|
|
531
|
+
__defNormalProp$W(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
525
532
|
return value;
|
|
526
533
|
};
|
|
527
534
|
const _StoreApiContext = class _StoreApiContext {
|
|
528
535
|
constructor(context, options) {
|
|
529
|
-
__publicField$
|
|
530
|
-
__publicField$
|
|
536
|
+
__publicField$W(this, "context");
|
|
537
|
+
__publicField$W(this, "options");
|
|
531
538
|
this.context = context;
|
|
532
539
|
this.options = options;
|
|
533
540
|
}
|
|
@@ -586,21 +593,21 @@ const _StoreApiContext = class _StoreApiContext {
|
|
|
586
593
|
return this.context.head(url, options);
|
|
587
594
|
}
|
|
588
595
|
};
|
|
589
|
-
__publicField$
|
|
596
|
+
__publicField$W(_StoreApiContext, "defaultOptions", {
|
|
590
597
|
app_url: process.env["APP_URL"],
|
|
591
598
|
ignoreHTTPSErrors: true
|
|
592
599
|
});
|
|
593
600
|
let StoreApiContext = _StoreApiContext;
|
|
594
601
|
|
|
595
|
-
var __defProp$
|
|
596
|
-
var __defNormalProp$
|
|
597
|
-
var __publicField$
|
|
598
|
-
__defNormalProp$
|
|
602
|
+
var __defProp$V = Object.defineProperty;
|
|
603
|
+
var __defNormalProp$V = (obj, key, value) => key in obj ? __defProp$V(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
604
|
+
var __publicField$V = (obj, key, value) => {
|
|
605
|
+
__defNormalProp$V(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
599
606
|
return value;
|
|
600
607
|
};
|
|
601
608
|
class MailpitApiContext {
|
|
602
609
|
constructor(context) {
|
|
603
|
-
__publicField$
|
|
610
|
+
__publicField$V(this, "context");
|
|
604
611
|
this.context = context;
|
|
605
612
|
}
|
|
606
613
|
/**
|
|
@@ -897,17 +904,17 @@ const test$a = test$e.extend({
|
|
|
897
904
|
}
|
|
898
905
|
});
|
|
899
906
|
|
|
900
|
-
var __defProp$
|
|
901
|
-
var __defNormalProp$
|
|
902
|
-
var __publicField$
|
|
903
|
-
__defNormalProp$
|
|
907
|
+
var __defProp$U = Object.defineProperty;
|
|
908
|
+
var __defNormalProp$U = (obj, key, value) => key in obj ? __defProp$U(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
909
|
+
var __publicField$U = (obj, key, value) => {
|
|
910
|
+
__defNormalProp$U(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
904
911
|
return value;
|
|
905
912
|
};
|
|
906
913
|
class Actor {
|
|
907
914
|
constructor(name, page) {
|
|
908
|
-
__publicField$
|
|
909
|
-
__publicField$
|
|
910
|
-
__publicField$
|
|
915
|
+
__publicField$U(this, "page");
|
|
916
|
+
__publicField$U(this, "name");
|
|
917
|
+
__publicField$U(this, "expects", expect);
|
|
911
918
|
this.name = name;
|
|
912
919
|
this.page = page;
|
|
913
920
|
}
|
|
@@ -956,31 +963,31 @@ function createRandomImage(width = 800, height = 600) {
|
|
|
956
963
|
return new Image(width, height, buffer);
|
|
957
964
|
}
|
|
958
965
|
|
|
959
|
-
var __defProp$
|
|
960
|
-
var __defNormalProp$
|
|
961
|
-
var __publicField$
|
|
962
|
-
__defNormalProp$
|
|
966
|
+
var __defProp$T = Object.defineProperty;
|
|
967
|
+
var __defNormalProp$T = (obj, key, value) => key in obj ? __defProp$T(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
968
|
+
var __publicField$T = (obj, key, value) => {
|
|
969
|
+
__defNormalProp$T(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
963
970
|
return value;
|
|
964
971
|
};
|
|
965
972
|
class TestDataService {
|
|
966
973
|
constructor(AdminApiClient, IdProvider, options) {
|
|
967
|
-
__publicField$
|
|
968
|
-
__publicField$
|
|
969
|
-
__publicField$
|
|
970
|
-
__publicField$
|
|
971
|
-
__publicField$
|
|
972
|
-
__publicField$
|
|
973
|
-
__publicField$
|
|
974
|
-
__publicField$
|
|
975
|
-
__publicField$
|
|
976
|
-
__publicField$
|
|
977
|
-
__publicField$
|
|
974
|
+
__publicField$T(this, "AdminApiClient");
|
|
975
|
+
__publicField$T(this, "IdProvider");
|
|
976
|
+
__publicField$T(this, "namePrefix", "Test-");
|
|
977
|
+
__publicField$T(this, "nameSuffix", "");
|
|
978
|
+
__publicField$T(this, "defaultSalesChannel");
|
|
979
|
+
__publicField$T(this, "defaultTaxId");
|
|
980
|
+
__publicField$T(this, "defaultCurrencyId");
|
|
981
|
+
__publicField$T(this, "defaultCategoryId");
|
|
982
|
+
__publicField$T(this, "defaultLanguageId");
|
|
983
|
+
__publicField$T(this, "defaultCountryId");
|
|
984
|
+
__publicField$T(this, "defaultCustomerGroupId");
|
|
978
985
|
/**
|
|
979
986
|
* Configures if an automated cleanup of the data should be executed.
|
|
980
987
|
*
|
|
981
988
|
* @private
|
|
982
989
|
*/
|
|
983
|
-
__publicField$
|
|
990
|
+
__publicField$T(this, "shouldCleanUp", true);
|
|
984
991
|
/**
|
|
985
992
|
* Configuration of higher priority entities for the cleanup operation.
|
|
986
993
|
* These entities will be deleted before others.
|
|
@@ -988,26 +995,26 @@ class TestDataService {
|
|
|
988
995
|
*
|
|
989
996
|
* @private
|
|
990
997
|
*/
|
|
991
|
-
__publicField$
|
|
998
|
+
__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
999
|
/**
|
|
993
1000
|
* A registry of all created records.
|
|
994
1001
|
*
|
|
995
1002
|
* @private
|
|
996
1003
|
*/
|
|
997
|
-
__publicField$
|
|
998
|
-
__publicField$
|
|
1004
|
+
__publicField$T(this, "createdRecords", []);
|
|
1005
|
+
__publicField$T(this, "restoreSystemConfig", {});
|
|
999
1006
|
/**
|
|
1000
1007
|
* A registry of all created sales channel records.
|
|
1001
1008
|
*
|
|
1002
1009
|
* @private
|
|
1003
1010
|
*/
|
|
1004
|
-
__publicField$
|
|
1011
|
+
__publicField$T(this, "createdSalesChannelRecords", []);
|
|
1005
1012
|
/**
|
|
1006
1013
|
* Function that generates combinations from n number of arrays
|
|
1007
1014
|
* with m number of elements in them.
|
|
1008
1015
|
* @param array
|
|
1009
1016
|
*/
|
|
1010
|
-
__publicField$
|
|
1017
|
+
__publicField$T(this, "combineAll", (array) => {
|
|
1011
1018
|
const result = [];
|
|
1012
1019
|
const max = array.length - 1;
|
|
1013
1020
|
const helper = (tmpArray, i) => {
|
|
@@ -1063,6 +1070,22 @@ class TestDataService {
|
|
|
1063
1070
|
this.addCreatedRecord("product", product.id);
|
|
1064
1071
|
return product;
|
|
1065
1072
|
}
|
|
1073
|
+
/**
|
|
1074
|
+
* Creates a basic product cross-selling entity without products.
|
|
1075
|
+
*
|
|
1076
|
+
* @param productId - The uuid of the product to which the pproduct cross-selling should be assigned.
|
|
1077
|
+
* @param overrides - Specific data overrides that will be applied to the property group data struct.
|
|
1078
|
+
*/
|
|
1079
|
+
async createProductCrossSelling(productId, overrides = {}) {
|
|
1080
|
+
const crossSellingStruct = this.getBasicCrossSellingStruct(productId, overrides);
|
|
1081
|
+
const response = await this.AdminApiClient.post("product-cross-selling?_response=detail", {
|
|
1082
|
+
data: crossSellingStruct
|
|
1083
|
+
});
|
|
1084
|
+
expect(response.ok()).toBeTruthy();
|
|
1085
|
+
const { data: productCrossSelling } = await response.json();
|
|
1086
|
+
this.addCreatedRecord("product_cross_selling", productCrossSelling.id);
|
|
1087
|
+
return productCrossSelling;
|
|
1088
|
+
}
|
|
1066
1089
|
/**
|
|
1067
1090
|
* Creates a basic product with one randomly generated image.
|
|
1068
1091
|
* The product will be added to the default sales channel category if configured.
|
|
@@ -2093,6 +2116,29 @@ class TestDataService {
|
|
|
2093
2116
|
const { data: address } = await response.json();
|
|
2094
2117
|
return address;
|
|
2095
2118
|
}
|
|
2119
|
+
/**
|
|
2120
|
+
* Retrieves a customer by its email address.
|
|
2121
|
+
*
|
|
2122
|
+
* @param email - The email address of the customer.
|
|
2123
|
+
* @returns The customer object.
|
|
2124
|
+
*/
|
|
2125
|
+
async getCustomerByEmail(email) {
|
|
2126
|
+
const response = await this.AdminApiClient.post("search/customer", {
|
|
2127
|
+
data: {
|
|
2128
|
+
limit: 1,
|
|
2129
|
+
filter: [
|
|
2130
|
+
{
|
|
2131
|
+
type: "equals",
|
|
2132
|
+
field: "email",
|
|
2133
|
+
value: email
|
|
2134
|
+
}
|
|
2135
|
+
]
|
|
2136
|
+
}
|
|
2137
|
+
});
|
|
2138
|
+
expect(response.ok()).toBeTruthy();
|
|
2139
|
+
const { data: result } = await response.json();
|
|
2140
|
+
return result[0];
|
|
2141
|
+
}
|
|
2096
2142
|
/**
|
|
2097
2143
|
* Retrieves a customer salutations by its key.
|
|
2098
2144
|
*
|
|
@@ -3057,6 +3103,23 @@ class TestDataService {
|
|
|
3057
3103
|
};
|
|
3058
3104
|
return Object.assign({}, basicTaxStruct, overrides);
|
|
3059
3105
|
}
|
|
3106
|
+
getBasicCrossSellingStruct(productId, overrides = {}) {
|
|
3107
|
+
const { id: productCrossSellingId, uuid: productCrossSellingUuid } = this.IdProvider.getIdPair();
|
|
3108
|
+
const productCrossSellingName = `${this.namePrefix}ProductCrossSelling-${productCrossSellingId}${this.nameSuffix}`;
|
|
3109
|
+
const defaultCrossSelling = {
|
|
3110
|
+
id: productCrossSellingUuid,
|
|
3111
|
+
productId,
|
|
3112
|
+
name: productCrossSellingName,
|
|
3113
|
+
type: "product_list",
|
|
3114
|
+
position: 1,
|
|
3115
|
+
active: true,
|
|
3116
|
+
productStreamId: null,
|
|
3117
|
+
sortingType: "name",
|
|
3118
|
+
limit: 10,
|
|
3119
|
+
sortBy: "name"
|
|
3120
|
+
};
|
|
3121
|
+
return Object.assign({}, defaultCrossSelling, overrides);
|
|
3122
|
+
}
|
|
3060
3123
|
}
|
|
3061
3124
|
|
|
3062
3125
|
const test$8 = test$e.extend({
|
|
@@ -3075,16 +3138,16 @@ const test$8 = test$e.extend({
|
|
|
3075
3138
|
}
|
|
3076
3139
|
});
|
|
3077
3140
|
|
|
3078
|
-
var __defProp$
|
|
3079
|
-
var __defNormalProp$
|
|
3080
|
-
var __publicField$
|
|
3081
|
-
__defNormalProp$
|
|
3141
|
+
var __defProp$S = Object.defineProperty;
|
|
3142
|
+
var __defNormalProp$S = (obj, key, value) => key in obj ? __defProp$S(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3143
|
+
var __publicField$S = (obj, key, value) => {
|
|
3144
|
+
__defNormalProp$S(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3082
3145
|
return value;
|
|
3083
3146
|
};
|
|
3084
3147
|
class IdProvider {
|
|
3085
3148
|
constructor(workerIndex, seed) {
|
|
3086
|
-
__publicField$
|
|
3087
|
-
__publicField$
|
|
3149
|
+
__publicField$S(this, "workerIndex");
|
|
3150
|
+
__publicField$S(this, "seed");
|
|
3088
3151
|
this.workerIndex = workerIndex;
|
|
3089
3152
|
this.seed = seed;
|
|
3090
3153
|
}
|
|
@@ -3168,40 +3231,42 @@ const test$7 = test$e.extend({
|
|
|
3168
3231
|
]
|
|
3169
3232
|
});
|
|
3170
3233
|
|
|
3171
|
-
var __defProp$
|
|
3172
|
-
var __defNormalProp$
|
|
3173
|
-
var __publicField$
|
|
3174
|
-
__defNormalProp$
|
|
3234
|
+
var __defProp$R = Object.defineProperty;
|
|
3235
|
+
var __defNormalProp$R = (obj, key, value) => key in obj ? __defProp$R(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3236
|
+
var __publicField$R = (obj, key, value) => {
|
|
3237
|
+
__defNormalProp$R(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3175
3238
|
return value;
|
|
3176
3239
|
};
|
|
3177
3240
|
class Home {
|
|
3178
3241
|
constructor(page) {
|
|
3179
3242
|
this.page = page;
|
|
3180
|
-
__publicField$
|
|
3181
|
-
__publicField$
|
|
3182
|
-
__publicField$
|
|
3183
|
-
__publicField$
|
|
3184
|
-
__publicField$
|
|
3185
|
-
__publicField$
|
|
3186
|
-
__publicField$
|
|
3187
|
-
__publicField$
|
|
3188
|
-
__publicField$
|
|
3189
|
-
__publicField$
|
|
3190
|
-
__publicField$
|
|
3191
|
-
__publicField$
|
|
3192
|
-
__publicField$
|
|
3193
|
-
__publicField$
|
|
3194
|
-
__publicField$
|
|
3195
|
-
__publicField$
|
|
3243
|
+
__publicField$R(this, "accountMenuButton");
|
|
3244
|
+
__publicField$R(this, "closeGuestSessionButton");
|
|
3245
|
+
__publicField$R(this, "productImages");
|
|
3246
|
+
__publicField$R(this, "productListItems");
|
|
3247
|
+
__publicField$R(this, "languagesDropdown");
|
|
3248
|
+
__publicField$R(this, "languagesMenuOptions");
|
|
3249
|
+
__publicField$R(this, "currenciesDropdown");
|
|
3250
|
+
__publicField$R(this, "currenciesMenuOptions");
|
|
3251
|
+
__publicField$R(this, "consentOnlyTechnicallyRequiredButton");
|
|
3252
|
+
__publicField$R(this, "consentConfigureButton");
|
|
3253
|
+
__publicField$R(this, "consentAcceptAllCookiesButton");
|
|
3254
|
+
__publicField$R(this, "consentCookiePreferences");
|
|
3255
|
+
__publicField$R(this, "consentCookiePermissionContent");
|
|
3256
|
+
__publicField$R(this, "consentDialog");
|
|
3257
|
+
__publicField$R(this, "consentDialogTechnicallyRequiredCheckbox");
|
|
3258
|
+
__publicField$R(this, "consentDialogStatisticsCheckbox");
|
|
3196
3259
|
/**
|
|
3197
3260
|
* @deprecated Use 'consentDialogMarketingCheckbox' instead
|
|
3198
3261
|
*/
|
|
3199
|
-
__publicField$
|
|
3200
|
-
__publicField$
|
|
3201
|
-
__publicField$
|
|
3202
|
-
__publicField$
|
|
3203
|
-
__publicField$
|
|
3204
|
-
__publicField$
|
|
3262
|
+
__publicField$R(this, "consentDialogMarketingdCheckbox");
|
|
3263
|
+
__publicField$R(this, "consentDialogMarketingCheckbox");
|
|
3264
|
+
__publicField$R(this, "consentDialogAcceptAllCookiesButton");
|
|
3265
|
+
__publicField$R(this, "consentDialogSaveButton");
|
|
3266
|
+
__publicField$R(this, "consentCookieBannerContainer");
|
|
3267
|
+
__publicField$R(this, "offcanvasBackdrop");
|
|
3268
|
+
__publicField$R(this, "mainNavigationLink");
|
|
3269
|
+
__publicField$R(this, "contactFormLink");
|
|
3205
3270
|
this.accountMenuButton = page.getByLabel("Your account");
|
|
3206
3271
|
this.closeGuestSessionButton = page.locator(".account-aside-btn");
|
|
3207
3272
|
this.productImages = page.locator(".product-image-wrapper");
|
|
@@ -3236,6 +3301,8 @@ class Home {
|
|
|
3236
3301
|
exact: true
|
|
3237
3302
|
});
|
|
3238
3303
|
this.offcanvasBackdrop = page.locator(".offcanvas-backdrop");
|
|
3304
|
+
this.mainNavigationLink = page.locator(".main-navigation-link-text");
|
|
3305
|
+
this.contactFormLink = this.page.getByRole("listitem").getByTitle("Contact form", { exact: true });
|
|
3239
3306
|
}
|
|
3240
3307
|
async getMenuItemByCategoryName(categoryName) {
|
|
3241
3308
|
const menuNavigationItem = this.page.locator(".nav-main").getByText(categoryName, { exact: true });
|
|
@@ -3251,6 +3318,9 @@ class Home {
|
|
|
3251
3318
|
flyoutCategoryLink
|
|
3252
3319
|
};
|
|
3253
3320
|
}
|
|
3321
|
+
/**
|
|
3322
|
+
* @deprecated - use getListingItemByProductName instead
|
|
3323
|
+
*/
|
|
3254
3324
|
async getListingItemByProductId(productId) {
|
|
3255
3325
|
const listingItem = this.page.getByRole("listitem").filter({ has: this.page.locator(`[value="${productId}"]`) });
|
|
3256
3326
|
const productImage = listingItem.locator(".product-image-link");
|
|
@@ -3264,6 +3334,9 @@ class Home {
|
|
|
3264
3334
|
const productAddToShoppingCart = listingItem.getByRole("button", {
|
|
3265
3335
|
name: "Add to shopping cart"
|
|
3266
3336
|
});
|
|
3337
|
+
const productListingPrice = listingItem.locator(".list-price-price");
|
|
3338
|
+
const productListingPricePercentage = listingItem.locator(".list-price-percentage");
|
|
3339
|
+
const productListingPriceBadge = listingItem.locator(".badge-discount");
|
|
3267
3340
|
return {
|
|
3268
3341
|
productImage,
|
|
3269
3342
|
productRating,
|
|
@@ -3273,7 +3346,41 @@ class Home {
|
|
|
3273
3346
|
productCheapestPrice,
|
|
3274
3347
|
productPrice,
|
|
3275
3348
|
productName,
|
|
3276
|
-
productAddToShoppingCart
|
|
3349
|
+
productAddToShoppingCart,
|
|
3350
|
+
productListingPrice,
|
|
3351
|
+
productListingPricePercentage,
|
|
3352
|
+
productListingPriceBadge
|
|
3353
|
+
};
|
|
3354
|
+
}
|
|
3355
|
+
async getListingItemByProductName(productListingName) {
|
|
3356
|
+
const listingItem = this.page.getByRole("listitem").filter({ has: this.page.getByText(productListingName) });
|
|
3357
|
+
const productImage = listingItem.locator(".product-image-link");
|
|
3358
|
+
const productRating = listingItem.locator(".product-rating");
|
|
3359
|
+
const productVariantCharacteristics = listingItem.locator(".product-variant-characteristics");
|
|
3360
|
+
const productDescription = listingItem.locator(".product-description");
|
|
3361
|
+
const productPriceUnit = listingItem.locator(".product-price-unit");
|
|
3362
|
+
const productCheapestPrice = listingItem.locator(".product-cheapest-price");
|
|
3363
|
+
const productPrice = listingItem.locator(".product-price");
|
|
3364
|
+
const productName = listingItem.locator(".product-name");
|
|
3365
|
+
const productAddToShoppingCart = listingItem.getByRole("button", {
|
|
3366
|
+
name: "Add to shopping cart"
|
|
3367
|
+
});
|
|
3368
|
+
const productListingPrice = listingItem.locator(".list-price-price");
|
|
3369
|
+
const productListingPricePercentage = listingItem.locator(".list-price-percentage");
|
|
3370
|
+
const productListingPriceBadge = listingItem.locator(".badge-discount");
|
|
3371
|
+
return {
|
|
3372
|
+
productImage,
|
|
3373
|
+
productRating,
|
|
3374
|
+
productVariantCharacteristics,
|
|
3375
|
+
productDescription,
|
|
3376
|
+
productPriceUnit,
|
|
3377
|
+
productCheapestPrice,
|
|
3378
|
+
productPrice,
|
|
3379
|
+
productName,
|
|
3380
|
+
productAddToShoppingCart,
|
|
3381
|
+
productListingPrice,
|
|
3382
|
+
productListingPricePercentage,
|
|
3383
|
+
productListingPriceBadge
|
|
3277
3384
|
};
|
|
3278
3385
|
}
|
|
3279
3386
|
url() {
|
|
@@ -3281,31 +3388,37 @@ class Home {
|
|
|
3281
3388
|
}
|
|
3282
3389
|
}
|
|
3283
3390
|
|
|
3284
|
-
var __defProp$
|
|
3285
|
-
var __defNormalProp$
|
|
3286
|
-
var __publicField$
|
|
3287
|
-
__defNormalProp$
|
|
3391
|
+
var __defProp$Q = Object.defineProperty;
|
|
3392
|
+
var __defNormalProp$Q = (obj, key, value) => key in obj ? __defProp$Q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3393
|
+
var __publicField$Q = (obj, key, value) => {
|
|
3394
|
+
__defNormalProp$Q(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3288
3395
|
return value;
|
|
3289
3396
|
};
|
|
3290
3397
|
let ProductDetail$1 = class ProductDetail {
|
|
3291
3398
|
constructor(page) {
|
|
3292
3399
|
this.page = page;
|
|
3293
|
-
__publicField$
|
|
3294
|
-
__publicField$
|
|
3295
|
-
__publicField$
|
|
3296
|
-
__publicField$
|
|
3297
|
-
__publicField$
|
|
3298
|
-
__publicField$
|
|
3299
|
-
__publicField$
|
|
3300
|
-
__publicField$
|
|
3301
|
-
__publicField$
|
|
3302
|
-
__publicField$
|
|
3303
|
-
__publicField$
|
|
3400
|
+
__publicField$Q(this, "addToCartButton");
|
|
3401
|
+
__publicField$Q(this, "quantitySelect");
|
|
3402
|
+
__publicField$Q(this, "productSingleImage");
|
|
3403
|
+
__publicField$Q(this, "productSinglePrice");
|
|
3404
|
+
__publicField$Q(this, "productPriceRangesRow");
|
|
3405
|
+
__publicField$Q(this, "productListingPriceBadge");
|
|
3406
|
+
__publicField$Q(this, "productListingPrice");
|
|
3407
|
+
__publicField$Q(this, "productListingPricePercentage");
|
|
3408
|
+
__publicField$Q(this, "offCanvasCartTitle");
|
|
3409
|
+
__publicField$Q(this, "offCanvasCart");
|
|
3410
|
+
__publicField$Q(this, "offCanvasCartGoToCheckoutButton");
|
|
3411
|
+
__publicField$Q(this, "offCanvasLineItemImages");
|
|
3412
|
+
__publicField$Q(this, "offCanvasSummaryTotalPrice");
|
|
3413
|
+
__publicField$Q(this, "offCanvas");
|
|
3304
3414
|
this.addToCartButton = page.getByRole("button", { name: "Add to shopping cart" });
|
|
3305
3415
|
this.quantitySelect = page.getByLabel("Quantity", { exact: true });
|
|
3306
3416
|
this.productSingleImage = page.locator(".gallery-slider-single-image");
|
|
3307
3417
|
this.productSinglePrice = page.locator(".product-detail-price");
|
|
3308
3418
|
this.productPriceRangesRow = page.locator(".product-block-prices-row");
|
|
3419
|
+
this.productListingPriceBadge = page.locator(".list-price-badge");
|
|
3420
|
+
this.productListingPrice = page.locator(".list-price-price");
|
|
3421
|
+
this.productListingPricePercentage = page.locator(".list-price-percentage");
|
|
3309
3422
|
this.offCanvas = page.locator("offcanvas-body");
|
|
3310
3423
|
this.offCanvasCartTitle = page.getByText("Shopping cart", { exact: true });
|
|
3311
3424
|
this.offCanvasCart = page.getByRole("dialog");
|
|
@@ -3322,18 +3435,18 @@ let ProductDetail$1 = class ProductDetail {
|
|
|
3322
3435
|
}
|
|
3323
3436
|
};
|
|
3324
3437
|
|
|
3325
|
-
var __defProp$
|
|
3326
|
-
var __defNormalProp$
|
|
3327
|
-
var __publicField$
|
|
3328
|
-
__defNormalProp$
|
|
3438
|
+
var __defProp$P = Object.defineProperty;
|
|
3439
|
+
var __defNormalProp$P = (obj, key, value) => key in obj ? __defProp$P(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3440
|
+
var __publicField$P = (obj, key, value) => {
|
|
3441
|
+
__defNormalProp$P(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3329
3442
|
return value;
|
|
3330
3443
|
};
|
|
3331
3444
|
class Category {
|
|
3332
3445
|
constructor(page) {
|
|
3333
3446
|
this.page = page;
|
|
3334
|
-
__publicField$
|
|
3335
|
-
__publicField$
|
|
3336
|
-
__publicField$
|
|
3447
|
+
__publicField$P(this, "sortingSelect");
|
|
3448
|
+
__publicField$P(this, "firstProductBuyButton");
|
|
3449
|
+
__publicField$P(this, "noProductsFoundAlert");
|
|
3337
3450
|
this.sortingSelect = page.getByLabel("Sorting");
|
|
3338
3451
|
this.firstProductBuyButton = page.getByRole("button", { name: "Add to shopping cart" }).first();
|
|
3339
3452
|
this.noProductsFoundAlert = page.getByText("No products found.");
|
|
@@ -3343,24 +3456,24 @@ class Category {
|
|
|
3343
3456
|
}
|
|
3344
3457
|
}
|
|
3345
3458
|
|
|
3346
|
-
var __defProp$
|
|
3347
|
-
var __defNormalProp$
|
|
3348
|
-
var __publicField$
|
|
3349
|
-
__defNormalProp$
|
|
3459
|
+
var __defProp$O = Object.defineProperty;
|
|
3460
|
+
var __defNormalProp$O = (obj, key, value) => key in obj ? __defProp$O(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3461
|
+
var __publicField$O = (obj, key, value) => {
|
|
3462
|
+
__defNormalProp$O(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3350
3463
|
return value;
|
|
3351
3464
|
};
|
|
3352
3465
|
class CheckoutCart {
|
|
3353
3466
|
constructor(page) {
|
|
3354
3467
|
this.page = page;
|
|
3355
|
-
__publicField$
|
|
3356
|
-
__publicField$
|
|
3357
|
-
__publicField$
|
|
3358
|
-
__publicField$
|
|
3359
|
-
__publicField$
|
|
3360
|
-
__publicField$
|
|
3361
|
-
__publicField$
|
|
3362
|
-
__publicField$
|
|
3363
|
-
__publicField$
|
|
3468
|
+
__publicField$O(this, "headline");
|
|
3469
|
+
__publicField$O(this, "goToCheckoutButton");
|
|
3470
|
+
__publicField$O(this, "enterPromoInput");
|
|
3471
|
+
__publicField$O(this, "grandTotalPrice");
|
|
3472
|
+
__publicField$O(this, "emptyCartAlert");
|
|
3473
|
+
__publicField$O(this, "stockReachedAlert");
|
|
3474
|
+
__publicField$O(this, "cartLineItemImages");
|
|
3475
|
+
__publicField$O(this, "unitPriceInfo");
|
|
3476
|
+
__publicField$O(this, "cartQuantityNumber");
|
|
3364
3477
|
this.headline = page.getByRole("heading", { name: "Shopping cart" });
|
|
3365
3478
|
this.goToCheckoutButton = page.getByRole("link", { name: "Go to checkout" });
|
|
3366
3479
|
this.enterPromoInput = page.getByLabel("Promo code");
|
|
@@ -3401,25 +3514,25 @@ class CheckoutCart {
|
|
|
3401
3514
|
}
|
|
3402
3515
|
}
|
|
3403
3516
|
|
|
3404
|
-
var __defProp$
|
|
3405
|
-
var __defNormalProp$
|
|
3406
|
-
var __publicField$
|
|
3407
|
-
__defNormalProp$
|
|
3517
|
+
var __defProp$N = Object.defineProperty;
|
|
3518
|
+
var __defNormalProp$N = (obj, key, value) => key in obj ? __defProp$N(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3519
|
+
var __publicField$N = (obj, key, value) => {
|
|
3520
|
+
__defNormalProp$N(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3408
3521
|
return value;
|
|
3409
3522
|
};
|
|
3410
3523
|
class OffCanvasCart {
|
|
3411
3524
|
constructor(page) {
|
|
3412
3525
|
this.page = page;
|
|
3413
|
-
__publicField$
|
|
3414
|
-
__publicField$
|
|
3415
|
-
__publicField$
|
|
3416
|
-
__publicField$
|
|
3417
|
-
__publicField$
|
|
3418
|
-
__publicField$
|
|
3419
|
-
__publicField$
|
|
3420
|
-
__publicField$
|
|
3421
|
-
__publicField$
|
|
3422
|
-
__publicField$
|
|
3526
|
+
__publicField$N(this, "headline");
|
|
3527
|
+
__publicField$N(this, "itemCount");
|
|
3528
|
+
__publicField$N(this, "goToCheckoutButton");
|
|
3529
|
+
__publicField$N(this, "goToCartButton");
|
|
3530
|
+
__publicField$N(this, "continueShoppingButton");
|
|
3531
|
+
__publicField$N(this, "enterPromoInput");
|
|
3532
|
+
__publicField$N(this, "submitDiscountButton");
|
|
3533
|
+
__publicField$N(this, "subTotalPrice");
|
|
3534
|
+
__publicField$N(this, "shippingCosts");
|
|
3535
|
+
__publicField$N(this, "cartQuantityNumber");
|
|
3423
3536
|
this.headline = page.getByRole("heading", { name: "Shopping cart" });
|
|
3424
3537
|
this.itemCount = page.locator(".offcanvas-cart-header-count");
|
|
3425
3538
|
this.goToCheckoutButton = page.getByRole("link", { name: "Go to checkout" });
|
|
@@ -3461,36 +3574,36 @@ class OffCanvasCart {
|
|
|
3461
3574
|
}
|
|
3462
3575
|
}
|
|
3463
3576
|
|
|
3464
|
-
var __defProp$
|
|
3465
|
-
var __defNormalProp$
|
|
3466
|
-
var __publicField$
|
|
3467
|
-
__defNormalProp$
|
|
3577
|
+
var __defProp$M = Object.defineProperty;
|
|
3578
|
+
var __defNormalProp$M = (obj, key, value) => key in obj ? __defProp$M(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3579
|
+
var __publicField$M = (obj, key, value) => {
|
|
3580
|
+
__defNormalProp$M(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3468
3581
|
return value;
|
|
3469
3582
|
};
|
|
3470
3583
|
class CheckoutConfirm {
|
|
3471
3584
|
constructor(page) {
|
|
3472
3585
|
this.page = page;
|
|
3473
|
-
__publicField$
|
|
3474
|
-
__publicField$
|
|
3475
|
-
__publicField$
|
|
3476
|
-
__publicField$
|
|
3477
|
-
__publicField$
|
|
3478
|
-
__publicField$
|
|
3586
|
+
__publicField$M(this, "headline");
|
|
3587
|
+
__publicField$M(this, "termsAndConditionsCheckbox");
|
|
3588
|
+
__publicField$M(this, "immediateAccessToDigitalProductCheckbox");
|
|
3589
|
+
__publicField$M(this, "grandTotalPrice");
|
|
3590
|
+
__publicField$M(this, "taxPrice");
|
|
3591
|
+
__publicField$M(this, "submitOrderButton");
|
|
3479
3592
|
/**
|
|
3480
3593
|
* Payment options
|
|
3481
3594
|
*/
|
|
3482
|
-
__publicField$
|
|
3483
|
-
__publicField$
|
|
3484
|
-
__publicField$
|
|
3595
|
+
__publicField$M(this, "paymentCashOnDelivery");
|
|
3596
|
+
__publicField$M(this, "paymentPaidInAdvance");
|
|
3597
|
+
__publicField$M(this, "paymentInvoice");
|
|
3485
3598
|
/**
|
|
3486
3599
|
* Shipping options
|
|
3487
3600
|
*/
|
|
3488
|
-
__publicField$
|
|
3489
|
-
__publicField$
|
|
3601
|
+
__publicField$M(this, "shippingStandard");
|
|
3602
|
+
__publicField$M(this, "shippingExpress");
|
|
3490
3603
|
/**
|
|
3491
3604
|
* Product details
|
|
3492
3605
|
*/
|
|
3493
|
-
__publicField$
|
|
3606
|
+
__publicField$M(this, "cartLineItemImages");
|
|
3494
3607
|
this.headline = page.getByRole("heading", { name: "Complete order" });
|
|
3495
3608
|
this.termsAndConditionsCheckbox = page.getByLabel("I have read and accepted the general terms and conditions.");
|
|
3496
3609
|
this.immediateAccessToDigitalProductCheckbox = page.getByLabel("I want immediate access to the digital content and I acknowledge that thereby I waive my right to cancel.");
|
|
@@ -3509,21 +3622,21 @@ class CheckoutConfirm {
|
|
|
3509
3622
|
}
|
|
3510
3623
|
}
|
|
3511
3624
|
|
|
3512
|
-
var __defProp$
|
|
3513
|
-
var __defNormalProp$
|
|
3514
|
-
var __publicField$
|
|
3515
|
-
__defNormalProp$
|
|
3625
|
+
var __defProp$L = Object.defineProperty;
|
|
3626
|
+
var __defNormalProp$L = (obj, key, value) => key in obj ? __defProp$L(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3627
|
+
var __publicField$L = (obj, key, value) => {
|
|
3628
|
+
__defNormalProp$L(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3516
3629
|
return value;
|
|
3517
3630
|
};
|
|
3518
3631
|
class CheckoutFinish {
|
|
3519
3632
|
constructor(page) {
|
|
3520
3633
|
this.page = page;
|
|
3521
|
-
__publicField$
|
|
3522
|
-
__publicField$
|
|
3523
|
-
__publicField$
|
|
3524
|
-
__publicField$
|
|
3525
|
-
__publicField$
|
|
3526
|
-
__publicField$
|
|
3634
|
+
__publicField$L(this, "headline");
|
|
3635
|
+
__publicField$L(this, "orderNumberText");
|
|
3636
|
+
__publicField$L(this, "grandTotalPrice");
|
|
3637
|
+
__publicField$L(this, "taxPrice");
|
|
3638
|
+
__publicField$L(this, "cartLineItemImages");
|
|
3639
|
+
__publicField$L(this, "orderNumberRegex", /Your order number: #(\d+)/);
|
|
3527
3640
|
this.headline = page.getByRole("heading", { name: "Thank you for your order" });
|
|
3528
3641
|
this.orderNumberText = page.getByText(this.orderNumberRegex);
|
|
3529
3642
|
this.grandTotalPrice = page.locator('dt:has-text("Grand total") + dd');
|
|
@@ -3552,16 +3665,16 @@ class CheckoutFinish {
|
|
|
3552
3665
|
}
|
|
3553
3666
|
}
|
|
3554
3667
|
|
|
3555
|
-
var __defProp$
|
|
3556
|
-
var __defNormalProp$
|
|
3557
|
-
var __publicField$
|
|
3558
|
-
__defNormalProp$
|
|
3668
|
+
var __defProp$K = Object.defineProperty;
|
|
3669
|
+
var __defNormalProp$K = (obj, key, value) => key in obj ? __defProp$K(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3670
|
+
var __publicField$K = (obj, key, value) => {
|
|
3671
|
+
__defNormalProp$K(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3559
3672
|
return value;
|
|
3560
3673
|
};
|
|
3561
3674
|
class CheckoutRegister {
|
|
3562
3675
|
constructor(page) {
|
|
3563
3676
|
this.page = page;
|
|
3564
|
-
__publicField$
|
|
3677
|
+
__publicField$K(this, "cartLineItemImages");
|
|
3565
3678
|
this.cartLineItemImages = page.locator(".line-item-img-link");
|
|
3566
3679
|
}
|
|
3567
3680
|
url() {
|
|
@@ -3569,24 +3682,26 @@ class CheckoutRegister {
|
|
|
3569
3682
|
}
|
|
3570
3683
|
}
|
|
3571
3684
|
|
|
3572
|
-
var __defProp$
|
|
3573
|
-
var __defNormalProp$
|
|
3574
|
-
var __publicField$
|
|
3575
|
-
__defNormalProp$
|
|
3685
|
+
var __defProp$J = Object.defineProperty;
|
|
3686
|
+
var __defNormalProp$J = (obj, key, value) => key in obj ? __defProp$J(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3687
|
+
var __publicField$J = (obj, key, value) => {
|
|
3688
|
+
__defNormalProp$J(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3576
3689
|
return value;
|
|
3577
3690
|
};
|
|
3578
3691
|
class Account {
|
|
3579
3692
|
constructor(page, instanceMeta) {
|
|
3580
3693
|
this.page = page;
|
|
3581
3694
|
this.instanceMeta = instanceMeta;
|
|
3582
|
-
__publicField$
|
|
3583
|
-
__publicField$
|
|
3584
|
-
__publicField$
|
|
3585
|
-
__publicField$
|
|
3586
|
-
__publicField$
|
|
3587
|
-
__publicField$
|
|
3588
|
-
__publicField$
|
|
3589
|
-
__publicField$
|
|
3695
|
+
__publicField$J(this, "headline");
|
|
3696
|
+
__publicField$J(this, "personalDataCardTitle");
|
|
3697
|
+
__publicField$J(this, "paymentMethodCardTitle");
|
|
3698
|
+
__publicField$J(this, "billingAddressCardTitle");
|
|
3699
|
+
__publicField$J(this, "shippingAddressCardTitle");
|
|
3700
|
+
__publicField$J(this, "newsletterCheckbox");
|
|
3701
|
+
__publicField$J(this, "newsletterRegistrationSuccessMessage");
|
|
3702
|
+
__publicField$J(this, "customerGroupRequestMessage");
|
|
3703
|
+
__publicField$J(this, "cannotDeliverToCountryAlert");
|
|
3704
|
+
__publicField$J(this, "shippingToAddressNotPossibleAlert");
|
|
3590
3705
|
this.headline = page.getByRole("heading", { name: "Overview" });
|
|
3591
3706
|
this.personalDataCardTitle = page.getByRole("heading", { name: "Personal data" });
|
|
3592
3707
|
this.paymentMethodCardTitle = page.getByRole("heading", { name: "Default payment method" });
|
|
@@ -3599,6 +3714,8 @@ class Account {
|
|
|
3599
3714
|
} else {
|
|
3600
3715
|
this.customerGroupRequestMessage = page.locator(".alert-content-container");
|
|
3601
3716
|
}
|
|
3717
|
+
this.cannotDeliverToCountryAlert = page.getByText("We can not deliver to the country that is stored in your delivery address.");
|
|
3718
|
+
this.shippingToAddressNotPossibleAlert = page.getByText("Shipping to the selected shipping address is currently not possible.");
|
|
3602
3719
|
}
|
|
3603
3720
|
async getCustomerGroupAlert(customerGroup) {
|
|
3604
3721
|
return this.customerGroupRequestMessage.getByText(`Access to customer group "${customerGroup}" requested.`);
|
|
@@ -3608,40 +3725,57 @@ class Account {
|
|
|
3608
3725
|
}
|
|
3609
3726
|
}
|
|
3610
3727
|
|
|
3611
|
-
var __defProp$
|
|
3612
|
-
var __defNormalProp$
|
|
3613
|
-
var __publicField$
|
|
3614
|
-
__defNormalProp$
|
|
3728
|
+
var __defProp$I = Object.defineProperty;
|
|
3729
|
+
var __defNormalProp$I = (obj, key, value) => key in obj ? __defProp$I(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3730
|
+
var __publicField$I = (obj, key, value) => {
|
|
3731
|
+
__defNormalProp$I(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3615
3732
|
return value;
|
|
3616
3733
|
};
|
|
3617
3734
|
class AccountLogin {
|
|
3618
3735
|
constructor(page) {
|
|
3619
3736
|
this.page = page;
|
|
3620
|
-
__publicField$
|
|
3621
|
-
__publicField$
|
|
3622
|
-
__publicField$
|
|
3623
|
-
__publicField$
|
|
3624
|
-
__publicField$
|
|
3625
|
-
__publicField$
|
|
3626
|
-
__publicField$
|
|
3627
|
-
__publicField$
|
|
3737
|
+
__publicField$I(this, "emailInput");
|
|
3738
|
+
__publicField$I(this, "passwordInput");
|
|
3739
|
+
__publicField$I(this, "forgotPasswordLink");
|
|
3740
|
+
__publicField$I(this, "loginButton");
|
|
3741
|
+
__publicField$I(this, "logoutLink");
|
|
3742
|
+
__publicField$I(this, "successAlert");
|
|
3743
|
+
__publicField$I(this, "invalidCredentialsAlert");
|
|
3744
|
+
__publicField$I(this, "passwordUpdatedAlert");
|
|
3628
3745
|
// Inputs for registration
|
|
3629
|
-
__publicField$
|
|
3630
|
-
__publicField$
|
|
3631
|
-
__publicField$
|
|
3632
|
-
__publicField$
|
|
3633
|
-
__publicField$
|
|
3634
|
-
__publicField$
|
|
3635
|
-
__publicField$
|
|
3636
|
-
__publicField$
|
|
3637
|
-
__publicField$
|
|
3638
|
-
__publicField$
|
|
3639
|
-
__publicField$
|
|
3640
|
-
__publicField$
|
|
3641
|
-
__publicField$
|
|
3642
|
-
__publicField$
|
|
3643
|
-
__publicField$
|
|
3644
|
-
__publicField$
|
|
3746
|
+
__publicField$I(this, "personalFormArea");
|
|
3747
|
+
__publicField$I(this, "billingAddressFormArea");
|
|
3748
|
+
__publicField$I(this, "accountTypeSelect");
|
|
3749
|
+
__publicField$I(this, "salutationSelect");
|
|
3750
|
+
__publicField$I(this, "firstNameInput");
|
|
3751
|
+
__publicField$I(this, "lastNameInput");
|
|
3752
|
+
__publicField$I(this, "companyInput");
|
|
3753
|
+
__publicField$I(this, "departmentInput");
|
|
3754
|
+
__publicField$I(this, "vatRegNoInput");
|
|
3755
|
+
__publicField$I(this, "registerEmailInput");
|
|
3756
|
+
__publicField$I(this, "registerPasswordInput");
|
|
3757
|
+
__publicField$I(this, "streetAddressInput");
|
|
3758
|
+
__publicField$I(this, "cityInput");
|
|
3759
|
+
__publicField$I(this, "countryInput");
|
|
3760
|
+
__publicField$I(this, "postalCodeInput");
|
|
3761
|
+
__publicField$I(this, "registerButton");
|
|
3762
|
+
// Inputs for reCaptcha
|
|
3763
|
+
__publicField$I(this, "greCaptchaV2Container");
|
|
3764
|
+
__publicField$I(this, "greCaptchaV2Input");
|
|
3765
|
+
__publicField$I(this, "greCaptchaV3Input");
|
|
3766
|
+
__publicField$I(this, "greCaptchaProtectionInformation");
|
|
3767
|
+
__publicField$I(this, "greCaptchaBadge");
|
|
3768
|
+
//Input for shipping address
|
|
3769
|
+
__publicField$I(this, "differentShippingAddressCheckbox");
|
|
3770
|
+
__publicField$I(this, "registerShippingAddressFormArea");
|
|
3771
|
+
__publicField$I(this, "shippingAddressSalutationSelect");
|
|
3772
|
+
__publicField$I(this, "shippingAddressFirstNameInput");
|
|
3773
|
+
__publicField$I(this, "shippingAddressLastNameInput");
|
|
3774
|
+
__publicField$I(this, "shippingAddressStreetAddressInput");
|
|
3775
|
+
__publicField$I(this, "shippingAddressCityInput");
|
|
3776
|
+
__publicField$I(this, "shippingAddressCountryInput");
|
|
3777
|
+
__publicField$I(this, "shippingAddressPostalCodeInput");
|
|
3778
|
+
__publicField$I(this, "shippingAddressStateInput");
|
|
3645
3779
|
this.emailInput = page.getByLabel("Your email address");
|
|
3646
3780
|
this.passwordInput = page.getByLabel("Your password");
|
|
3647
3781
|
this.loginButton = page.getByRole("button", { name: "Log in" });
|
|
@@ -3663,36 +3797,54 @@ class AccountLogin {
|
|
|
3663
3797
|
this.cityInput = this.billingAddressFormArea.getByLabel("City");
|
|
3664
3798
|
this.countryInput = this.billingAddressFormArea.getByLabel("Country");
|
|
3665
3799
|
this.postalCodeInput = this.billingAddressFormArea.getByLabel("Postal code");
|
|
3800
|
+
this.differentShippingAddressCheckbox = page.getByRole("checkbox", { name: "Shipping and billing address do not match." });
|
|
3801
|
+
this.registerShippingAddressFormArea = page.locator(".register-shipping");
|
|
3802
|
+
this.shippingAddressSalutationSelect = this.registerShippingAddressFormArea.locator(".form-group").filter({ has: page.getByLabel("Salutation") }).locator(".form-select");
|
|
3803
|
+
this.shippingAddressFirstNameInput = this.registerShippingAddressFormArea.getByLabel("First name");
|
|
3804
|
+
this.shippingAddressLastNameInput = this.registerShippingAddressFormArea.getByLabel("Last name");
|
|
3805
|
+
this.shippingAddressStreetAddressInput = this.registerShippingAddressFormArea.getByLabel("Street address");
|
|
3806
|
+
this.shippingAddressCityInput = this.registerShippingAddressFormArea.getByLabel("City");
|
|
3807
|
+
this.shippingAddressCountryInput = this.registerShippingAddressFormArea.getByLabel("Country");
|
|
3808
|
+
this.shippingAddressPostalCodeInput = this.registerShippingAddressFormArea.getByLabel("Postal code");
|
|
3809
|
+
this.shippingAddressStateInput = this.registerShippingAddressFormArea.getByLabel("State");
|
|
3666
3810
|
this.registerButton = page.getByRole("button", { name: "Continue" });
|
|
3667
3811
|
this.logoutLink = page.getByRole("link", { name: "Log out" });
|
|
3668
3812
|
this.successAlert = page.getByText("Successfully logged out.");
|
|
3669
3813
|
this.passwordUpdatedAlert = page.getByText("Your password has been updated.");
|
|
3814
|
+
this.greCaptchaV2Container = this.page.locator(".grecaptcha-v2-container");
|
|
3815
|
+
this.greCaptchaV2Input = this.page.locator(".grecaptcha-v2-input");
|
|
3816
|
+
this.greCaptchaV3Input = this.page.locator(".grecaptcha_v3-input");
|
|
3817
|
+
this.greCaptchaProtectionInformation = this.page.locator(".grecaptcha-protection-information");
|
|
3818
|
+
this.greCaptchaBadge = this.page.locator(".grecaptcha-badge");
|
|
3819
|
+
}
|
|
3820
|
+
async getShippingCountryLocatorByName(countryName) {
|
|
3821
|
+
return this.shippingAddressCountryInput.locator("option").filter({ hasText: countryName });
|
|
3670
3822
|
}
|
|
3671
3823
|
url() {
|
|
3672
3824
|
return "account/login";
|
|
3673
3825
|
}
|
|
3674
3826
|
}
|
|
3675
3827
|
|
|
3676
|
-
var __defProp$
|
|
3677
|
-
var __defNormalProp$
|
|
3678
|
-
var __publicField$
|
|
3679
|
-
__defNormalProp$
|
|
3828
|
+
var __defProp$H = Object.defineProperty;
|
|
3829
|
+
var __defNormalProp$H = (obj, key, value) => key in obj ? __defProp$H(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3830
|
+
var __publicField$H = (obj, key, value) => {
|
|
3831
|
+
__defNormalProp$H(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3680
3832
|
return value;
|
|
3681
3833
|
};
|
|
3682
3834
|
class AccountRecover {
|
|
3683
3835
|
constructor(page) {
|
|
3684
3836
|
this.page = page;
|
|
3685
|
-
__publicField$
|
|
3686
|
-
__publicField$
|
|
3687
|
-
__publicField$
|
|
3688
|
-
__publicField$
|
|
3689
|
-
__publicField$
|
|
3690
|
-
__publicField$
|
|
3691
|
-
__publicField$
|
|
3692
|
-
__publicField$
|
|
3693
|
-
__publicField$
|
|
3694
|
-
__publicField$
|
|
3695
|
-
__publicField$
|
|
3837
|
+
__publicField$H(this, "passwordRecoveryForm");
|
|
3838
|
+
__publicField$H(this, "title");
|
|
3839
|
+
__publicField$H(this, "subtitle");
|
|
3840
|
+
__publicField$H(this, "emailInput");
|
|
3841
|
+
__publicField$H(this, "requestEmailButton");
|
|
3842
|
+
__publicField$H(this, "backButton");
|
|
3843
|
+
__publicField$H(this, "passwordResetEmailSentMessage");
|
|
3844
|
+
__publicField$H(this, "newPasswordInput");
|
|
3845
|
+
__publicField$H(this, "newPasswordConfirmInput");
|
|
3846
|
+
__publicField$H(this, "changePasswordButton");
|
|
3847
|
+
__publicField$H(this, "invalidLinkMessage");
|
|
3696
3848
|
this.passwordRecoveryForm = page.locator(".account-recover-password-form");
|
|
3697
3849
|
const cardTitle = this.passwordRecoveryForm.locator(".card-title");
|
|
3698
3850
|
this.title = cardTitle.getByText("Password recovery");
|
|
@@ -3714,36 +3866,36 @@ class AccountRecover {
|
|
|
3714
3866
|
}
|
|
3715
3867
|
}
|
|
3716
3868
|
|
|
3717
|
-
var __defProp$
|
|
3718
|
-
var __defNormalProp$
|
|
3719
|
-
var __publicField$
|
|
3720
|
-
__defNormalProp$
|
|
3869
|
+
var __defProp$G = Object.defineProperty;
|
|
3870
|
+
var __defNormalProp$G = (obj, key, value) => key in obj ? __defProp$G(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3871
|
+
var __publicField$G = (obj, key, value) => {
|
|
3872
|
+
__defNormalProp$G(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3721
3873
|
return value;
|
|
3722
3874
|
};
|
|
3723
3875
|
class AccountProfile {
|
|
3724
3876
|
constructor(page, instanceMeta) {
|
|
3725
3877
|
this.page = page;
|
|
3726
3878
|
this.instanceMeta = instanceMeta;
|
|
3727
|
-
__publicField$
|
|
3728
|
-
__publicField$
|
|
3729
|
-
__publicField$
|
|
3730
|
-
__publicField$
|
|
3731
|
-
__publicField$
|
|
3732
|
-
__publicField$
|
|
3733
|
-
__publicField$
|
|
3734
|
-
__publicField$
|
|
3735
|
-
__publicField$
|
|
3736
|
-
__publicField$
|
|
3737
|
-
__publicField$
|
|
3738
|
-
__publicField$
|
|
3739
|
-
__publicField$
|
|
3740
|
-
__publicField$
|
|
3741
|
-
__publicField$
|
|
3742
|
-
__publicField$
|
|
3743
|
-
__publicField$
|
|
3744
|
-
__publicField$
|
|
3745
|
-
__publicField$
|
|
3746
|
-
__publicField$
|
|
3879
|
+
__publicField$G(this, "salutationSelect");
|
|
3880
|
+
__publicField$G(this, "firstNameInput");
|
|
3881
|
+
__publicField$G(this, "lastNameInput");
|
|
3882
|
+
__publicField$G(this, "saveProfileButton");
|
|
3883
|
+
__publicField$G(this, "changeEmailButton");
|
|
3884
|
+
__publicField$G(this, "emailAddressInput");
|
|
3885
|
+
__publicField$G(this, "emailAddressConfirmInput");
|
|
3886
|
+
__publicField$G(this, "emailConfirmPasswordInput");
|
|
3887
|
+
__publicField$G(this, "saveEmailAddressButton");
|
|
3888
|
+
__publicField$G(this, "changePasswordButton");
|
|
3889
|
+
__publicField$G(this, "newPasswordInput");
|
|
3890
|
+
__publicField$G(this, "newPasswordConfirmInput");
|
|
3891
|
+
__publicField$G(this, "currentPasswordInput");
|
|
3892
|
+
__publicField$G(this, "saveNewPasswordButton");
|
|
3893
|
+
__publicField$G(this, "loginDataEmailAddress");
|
|
3894
|
+
__publicField$G(this, "emailUpdateMessage");
|
|
3895
|
+
__publicField$G(this, "passwordUpdateMessage");
|
|
3896
|
+
__publicField$G(this, "emailValidationAlert");
|
|
3897
|
+
__publicField$G(this, "emailUpdateFailureAlert");
|
|
3898
|
+
__publicField$G(this, "passwordUpdateFailureAlert");
|
|
3747
3899
|
this.salutationSelect = page.getByLabel("Salutation");
|
|
3748
3900
|
this.firstNameInput = page.getByLabel("First name");
|
|
3749
3901
|
this.lastNameInput = page.getByLabel("Last name");
|
|
@@ -3783,25 +3935,21 @@ class AccountProfile {
|
|
|
3783
3935
|
}
|
|
3784
3936
|
}
|
|
3785
3937
|
|
|
3786
|
-
var __defProp$
|
|
3787
|
-
var __defNormalProp$
|
|
3788
|
-
var __publicField$
|
|
3789
|
-
__defNormalProp$
|
|
3938
|
+
var __defProp$F = Object.defineProperty;
|
|
3939
|
+
var __defNormalProp$F = (obj, key, value) => key in obj ? __defProp$F(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3940
|
+
var __publicField$F = (obj, key, value) => {
|
|
3941
|
+
__defNormalProp$F(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3790
3942
|
return value;
|
|
3791
3943
|
};
|
|
3792
3944
|
class AccountOrder {
|
|
3793
3945
|
constructor(page) {
|
|
3794
3946
|
this.page = page;
|
|
3795
|
-
__publicField$
|
|
3796
|
-
__publicField$
|
|
3797
|
-
__publicField$
|
|
3798
|
-
__publicField$
|
|
3799
|
-
__publicField$
|
|
3800
|
-
__publicField$
|
|
3801
|
-
__publicField$D(this, "getViewSubscriptionLink", (orderNumber) => {
|
|
3802
|
-
const orderContainer = this.page.locator(".order-item-header", { hasText: `Order Number: ${orderNumber}` });
|
|
3803
|
-
return orderContainer.getByText("View Subscription");
|
|
3804
|
-
});
|
|
3947
|
+
__publicField$F(this, "cartLineItemImages");
|
|
3948
|
+
__publicField$F(this, "orderExpandButton");
|
|
3949
|
+
__publicField$F(this, "digitalProductDownloadButton");
|
|
3950
|
+
__publicField$F(this, "dialogOrderCancel");
|
|
3951
|
+
__publicField$F(this, "dialogOrderCancelButton");
|
|
3952
|
+
__publicField$F(this, "dialogBackButton");
|
|
3805
3953
|
this.orderExpandButton = page.getByRole("button", { name: /Expand|Show details/ }).first();
|
|
3806
3954
|
this.cartLineItemImages = page.locator(".line-item-img-link");
|
|
3807
3955
|
this.digitalProductDownloadButton = page.getByRole("link", { name: "Download" }).first();
|
|
@@ -3849,44 +3997,59 @@ class AccountOrder {
|
|
|
3849
3997
|
}
|
|
3850
3998
|
}
|
|
3851
3999
|
|
|
3852
|
-
var __defProp$
|
|
3853
|
-
var __defNormalProp$
|
|
3854
|
-
var __publicField$
|
|
3855
|
-
__defNormalProp$
|
|
4000
|
+
var __defProp$E = Object.defineProperty;
|
|
4001
|
+
var __defNormalProp$E = (obj, key, value) => key in obj ? __defProp$E(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4002
|
+
var __publicField$E = (obj, key, value) => {
|
|
4003
|
+
__defNormalProp$E(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3856
4004
|
return value;
|
|
3857
4005
|
};
|
|
3858
4006
|
class AccountAddresses {
|
|
3859
|
-
constructor(page) {
|
|
4007
|
+
constructor(page, instanceMeta) {
|
|
3860
4008
|
this.page = page;
|
|
3861
|
-
|
|
3862
|
-
__publicField$
|
|
3863
|
-
__publicField$
|
|
3864
|
-
__publicField$
|
|
3865
|
-
__publicField$
|
|
4009
|
+
this.instanceMeta = instanceMeta;
|
|
4010
|
+
__publicField$E(this, "addNewAddressButton");
|
|
4011
|
+
__publicField$E(this, "editBillingAddressButton");
|
|
4012
|
+
__publicField$E(this, "editShippingAddressButton");
|
|
4013
|
+
__publicField$E(this, "useDefaultBillingAddressButton");
|
|
4014
|
+
__publicField$E(this, "useDefaultShippingAddressButton");
|
|
4015
|
+
__publicField$E(this, "deliveryNotPossibleAlert");
|
|
4016
|
+
__publicField$E(this, "availableAddresses");
|
|
4017
|
+
__publicField$E(this, "addressDropdownButton");
|
|
4018
|
+
__publicField$E(this, "availableAddressesUseAsBillingAddress");
|
|
4019
|
+
__publicField$E(this, "availableAddressesUseAsShippingAddress");
|
|
3866
4020
|
this.addNewAddressButton = page.getByRole("link", { name: /Add (new )?address/ });
|
|
3867
4021
|
this.editBillingAddressButton = page.getByRole("link", { name: "Edit address" }).first();
|
|
3868
4022
|
this.editShippingAddressButton = page.getByRole("link", { name: "Edit address" }).nth(1);
|
|
3869
4023
|
this.useDefaultBillingAddressButton = page.getByRole("button", { name: "Use as default billing address" });
|
|
3870
4024
|
this.useDefaultShippingAddressButton = page.getByRole("button", { name: "Use as default shipping address" });
|
|
4025
|
+
if (satisfies(instanceMeta.version, "<6.7")) {
|
|
4026
|
+
this.availableAddresses = page.locator(".other-address").locator(".address").nth(1);
|
|
4027
|
+
this.deliveryNotPossibleAlert = this.availableAddresses.getByText("A delivery to this country is not possible.");
|
|
4028
|
+
} else {
|
|
4029
|
+
this.availableAddresses = page.locator(".address-manager-list-wrapper");
|
|
4030
|
+
this.addressDropdownButton = this.availableAddresses.locator("#dropdownMenuButton");
|
|
4031
|
+
this.availableAddressesUseAsBillingAddress = this.availableAddresses.getByRole("button", { name: "Use as default billing address" });
|
|
4032
|
+
this.availableAddressesUseAsShippingAddress = this.availableAddresses.getByRole("button", { name: "Use as default shipping address" });
|
|
4033
|
+
}
|
|
3871
4034
|
}
|
|
3872
4035
|
url() {
|
|
3873
4036
|
return "account/address";
|
|
3874
4037
|
}
|
|
3875
4038
|
}
|
|
3876
4039
|
|
|
3877
|
-
var __defProp$
|
|
3878
|
-
var __defNormalProp$
|
|
3879
|
-
var __publicField$
|
|
3880
|
-
__defNormalProp$
|
|
4040
|
+
var __defProp$D = Object.defineProperty;
|
|
4041
|
+
var __defNormalProp$D = (obj, key, value) => key in obj ? __defProp$D(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4042
|
+
var __publicField$D = (obj, key, value) => {
|
|
4043
|
+
__defNormalProp$D(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3881
4044
|
return value;
|
|
3882
4045
|
};
|
|
3883
4046
|
class AccountPayment {
|
|
3884
4047
|
constructor(page) {
|
|
3885
4048
|
this.page = page;
|
|
3886
|
-
__publicField$
|
|
3887
|
-
__publicField$
|
|
3888
|
-
__publicField$
|
|
3889
|
-
__publicField$
|
|
4049
|
+
__publicField$D(this, "cashOnDeliveryOption");
|
|
4050
|
+
__publicField$D(this, "paidInAdvanceOption");
|
|
4051
|
+
__publicField$D(this, "invoiceOption");
|
|
4052
|
+
__publicField$D(this, "changeDefaultPaymentButton");
|
|
3890
4053
|
this.cashOnDeliveryOption = page.getByLabel("Cash on delivery");
|
|
3891
4054
|
this.paidInAdvanceOption = page.getByLabel("Paid in advance");
|
|
3892
4055
|
this.invoiceOption = page.getByLabel("Invoice");
|
|
@@ -3897,17 +4060,17 @@ class AccountPayment {
|
|
|
3897
4060
|
}
|
|
3898
4061
|
}
|
|
3899
4062
|
|
|
3900
|
-
var __defProp$
|
|
3901
|
-
var __defNormalProp$
|
|
3902
|
-
var __publicField$
|
|
3903
|
-
__defNormalProp$
|
|
4063
|
+
var __defProp$C = Object.defineProperty;
|
|
4064
|
+
var __defNormalProp$C = (obj, key, value) => key in obj ? __defProp$C(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4065
|
+
var __publicField$C = (obj, key, value) => {
|
|
4066
|
+
__defNormalProp$C(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3904
4067
|
return value;
|
|
3905
4068
|
};
|
|
3906
4069
|
class Search {
|
|
3907
4070
|
constructor(page) {
|
|
3908
4071
|
this.page = page;
|
|
3909
|
-
__publicField$
|
|
3910
|
-
__publicField$
|
|
4072
|
+
__publicField$C(this, "headline");
|
|
4073
|
+
__publicField$C(this, "productImages");
|
|
3911
4074
|
this.headline = page.locator("h1.search-headline");
|
|
3912
4075
|
this.productImages = page.locator(".product-image-wrapper");
|
|
3913
4076
|
}
|
|
@@ -3916,25 +4079,25 @@ class Search {
|
|
|
3916
4079
|
}
|
|
3917
4080
|
}
|
|
3918
4081
|
|
|
3919
|
-
var __defProp$
|
|
3920
|
-
var __defNormalProp$
|
|
3921
|
-
var __publicField$
|
|
3922
|
-
__defNormalProp$
|
|
4082
|
+
var __defProp$B = Object.defineProperty;
|
|
4083
|
+
var __defNormalProp$B = (obj, key, value) => key in obj ? __defProp$B(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4084
|
+
var __publicField$B = (obj, key, value) => {
|
|
4085
|
+
__defNormalProp$B(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3923
4086
|
return value;
|
|
3924
4087
|
};
|
|
3925
4088
|
class SearchSuggest extends Home {
|
|
3926
4089
|
constructor(page) {
|
|
3927
4090
|
super(page);
|
|
3928
4091
|
this.page = page;
|
|
3929
|
-
__publicField$
|
|
3930
|
-
__publicField$
|
|
3931
|
-
__publicField$
|
|
3932
|
-
__publicField$
|
|
3933
|
-
__publicField$
|
|
3934
|
-
__publicField$
|
|
3935
|
-
__publicField$
|
|
3936
|
-
__publicField$
|
|
3937
|
-
__publicField$
|
|
4092
|
+
__publicField$B(this, "searchSuggestLineItemImages");
|
|
4093
|
+
__publicField$B(this, "searchInput");
|
|
4094
|
+
__publicField$B(this, "searchIcon");
|
|
4095
|
+
__publicField$B(this, "searchSuggestNoResult");
|
|
4096
|
+
__publicField$B(this, "searchSuggestLineItemName");
|
|
4097
|
+
__publicField$B(this, "searchSuggestLineItemPrice");
|
|
4098
|
+
__publicField$B(this, "searchSuggestTotalLink");
|
|
4099
|
+
__publicField$B(this, "searchResultTotal");
|
|
4100
|
+
__publicField$B(this, "searchHeadline");
|
|
3938
4101
|
this.searchSuggestLineItemImages = page.locator(".search-suggest-product-image-container");
|
|
3939
4102
|
this.searchInput = page.locator(".header-search-input");
|
|
3940
4103
|
this.searchIcon = page.locator(".header-search-icon");
|
|
@@ -3964,31 +4127,31 @@ class CustomRegister extends AccountLogin {
|
|
|
3964
4127
|
}
|
|
3965
4128
|
}
|
|
3966
4129
|
|
|
3967
|
-
var __defProp$
|
|
3968
|
-
var __defNormalProp$
|
|
3969
|
-
var __publicField$
|
|
3970
|
-
__defNormalProp$
|
|
4130
|
+
var __defProp$A = Object.defineProperty;
|
|
4131
|
+
var __defNormalProp$A = (obj, key, value) => key in obj ? __defProp$A(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4132
|
+
var __publicField$A = (obj, key, value) => {
|
|
4133
|
+
__defNormalProp$A(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
3971
4134
|
return value;
|
|
3972
4135
|
};
|
|
3973
4136
|
class CheckoutOrderEdit {
|
|
3974
4137
|
constructor(page) {
|
|
3975
4138
|
this.page = page;
|
|
3976
|
-
__publicField$
|
|
3977
|
-
__publicField$
|
|
3978
|
-
__publicField$
|
|
3979
|
-
__publicField$
|
|
3980
|
-
__publicField$
|
|
4139
|
+
__publicField$A(this, "completePaymentButton");
|
|
4140
|
+
__publicField$A(this, "orderCancelButton");
|
|
4141
|
+
__publicField$A(this, "dialogOrderCancel");
|
|
4142
|
+
__publicField$A(this, "dialogOrderCancelButton");
|
|
4143
|
+
__publicField$A(this, "dialogBackButton");
|
|
3981
4144
|
/**
|
|
3982
4145
|
* Payment options
|
|
3983
4146
|
*/
|
|
3984
|
-
__publicField$
|
|
3985
|
-
__publicField$
|
|
3986
|
-
__publicField$
|
|
4147
|
+
__publicField$A(this, "paymentCashOnDelivery");
|
|
4148
|
+
__publicField$A(this, "paymentPaidInAdvance");
|
|
4149
|
+
__publicField$A(this, "paymentInvoice");
|
|
3987
4150
|
/**
|
|
3988
4151
|
* Shipping options
|
|
3989
4152
|
*/
|
|
3990
|
-
__publicField$
|
|
3991
|
-
__publicField$
|
|
4153
|
+
__publicField$A(this, "shippingStandard");
|
|
4154
|
+
__publicField$A(this, "shippingExpress");
|
|
3992
4155
|
this.completePaymentButton = page.getByRole("button", { name: "Complete payment" });
|
|
3993
4156
|
this.orderCancelButton = page.getByRole("button", { name: "Cancel order" });
|
|
3994
4157
|
this.dialogOrderCancel = page.getByRole("dialog", { name: "Cancel order" });
|
|
@@ -4013,34 +4176,36 @@ class CheckoutOrderEdit {
|
|
|
4013
4176
|
}
|
|
4014
4177
|
}
|
|
4015
4178
|
|
|
4016
|
-
var __defProp$
|
|
4017
|
-
var __defNormalProp$
|
|
4018
|
-
var __publicField$
|
|
4019
|
-
__defNormalProp$
|
|
4179
|
+
var __defProp$z = Object.defineProperty;
|
|
4180
|
+
var __defNormalProp$z = (obj, key, value) => key in obj ? __defProp$z(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4181
|
+
var __publicField$z = (obj, key, value) => {
|
|
4182
|
+
__defNormalProp$z(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4020
4183
|
return value;
|
|
4021
4184
|
};
|
|
4022
4185
|
class AccountAddressCreate {
|
|
4023
4186
|
constructor(page) {
|
|
4024
4187
|
this.page = page;
|
|
4025
|
-
__publicField$
|
|
4026
|
-
__publicField$
|
|
4027
|
-
__publicField$
|
|
4028
|
-
__publicField$
|
|
4029
|
-
__publicField$
|
|
4030
|
-
__publicField$
|
|
4031
|
-
__publicField$
|
|
4032
|
-
__publicField$
|
|
4033
|
-
__publicField$
|
|
4034
|
-
__publicField$
|
|
4035
|
-
this
|
|
4036
|
-
this.
|
|
4037
|
-
this.
|
|
4038
|
-
this.
|
|
4039
|
-
this.
|
|
4040
|
-
this.
|
|
4041
|
-
this.
|
|
4188
|
+
__publicField$z(this, "salutationDropdown");
|
|
4189
|
+
__publicField$z(this, "firstNameInput");
|
|
4190
|
+
__publicField$z(this, "lastNameInput");
|
|
4191
|
+
__publicField$z(this, "companyInput");
|
|
4192
|
+
__publicField$z(this, "departmentInput");
|
|
4193
|
+
__publicField$z(this, "streetInput");
|
|
4194
|
+
__publicField$z(this, "zipcodeInput");
|
|
4195
|
+
__publicField$z(this, "cityInput");
|
|
4196
|
+
__publicField$z(this, "countryDropdown");
|
|
4197
|
+
__publicField$z(this, "saveAddressButton");
|
|
4198
|
+
__publicField$z(this, "stateDropdown");
|
|
4199
|
+
this.salutationDropdown = page.getByRole("combobox", { name: "Salutation" });
|
|
4200
|
+
this.firstNameInput = page.getByRole("textbox", { name: "First name" });
|
|
4201
|
+
this.lastNameInput = page.getByRole("textbox", { name: "Last name" });
|
|
4202
|
+
this.companyInput = page.getByRole("textbox", { name: "Company" });
|
|
4203
|
+
this.departmentInput = page.getByRole("textbox", { name: "Department" });
|
|
4204
|
+
this.streetInput = page.getByRole("textbox", { name: "Street" });
|
|
4205
|
+
this.zipcodeInput = page.getByRole("textbox", { name: "Postal code" });
|
|
4042
4206
|
this.cityInput = page.locator("#addressAddressCity");
|
|
4043
4207
|
this.countryDropdown = page.locator("#addressAddressCountry");
|
|
4208
|
+
this.stateDropdown = page.locator("#addressAddressCountryState");
|
|
4044
4209
|
this.saveAddressButton = page.locator(".address-form-submit");
|
|
4045
4210
|
}
|
|
4046
4211
|
url() {
|
|
@@ -4048,6 +4213,107 @@ class AccountAddressCreate {
|
|
|
4048
4213
|
}
|
|
4049
4214
|
}
|
|
4050
4215
|
|
|
4216
|
+
var __defProp$y = Object.defineProperty;
|
|
4217
|
+
var __defNormalProp$y = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4218
|
+
var __publicField$y = (obj, key, value) => {
|
|
4219
|
+
__defNormalProp$y(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4220
|
+
return value;
|
|
4221
|
+
};
|
|
4222
|
+
class PageNotFound {
|
|
4223
|
+
constructor(page) {
|
|
4224
|
+
this.page = page;
|
|
4225
|
+
__publicField$y(this, "pageNotFoundImage");
|
|
4226
|
+
__publicField$y(this, "headline");
|
|
4227
|
+
__publicField$y(this, "pageNotFoundMessage");
|
|
4228
|
+
__publicField$y(this, "backToShopButton");
|
|
4229
|
+
this.pageNotFoundImage = page.getByAltText("Page not found");
|
|
4230
|
+
this.headline = page.getByRole("heading", { name: "Page not found" });
|
|
4231
|
+
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.`);
|
|
4232
|
+
this.backToShopButton = page.getByRole("link", { name: "Back to shop" });
|
|
4233
|
+
}
|
|
4234
|
+
url() {
|
|
4235
|
+
return "non-existing-page";
|
|
4236
|
+
}
|
|
4237
|
+
}
|
|
4238
|
+
|
|
4239
|
+
var __defProp$x = Object.defineProperty;
|
|
4240
|
+
var __defNormalProp$x = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4241
|
+
var __publicField$x = (obj, key, value) => {
|
|
4242
|
+
__defNormalProp$x(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4243
|
+
return value;
|
|
4244
|
+
};
|
|
4245
|
+
class ContactForm extends Home {
|
|
4246
|
+
constructor(page, instanceMeta) {
|
|
4247
|
+
super(page);
|
|
4248
|
+
this.page = page;
|
|
4249
|
+
this.instanceMeta = instanceMeta;
|
|
4250
|
+
/**
|
|
4251
|
+
* @deprecated Compatible until 6.6.x, will be removed in 6.8.x, use 'contactWrapper' instead
|
|
4252
|
+
*/
|
|
4253
|
+
__publicField$x(this, "contactModal");
|
|
4254
|
+
/**
|
|
4255
|
+
* @deprecated Compatible until 6.6.x, will be removed in 6.8.x, use 'contactSuccessMessage' instead
|
|
4256
|
+
*/
|
|
4257
|
+
__publicField$x(this, "contactSuccessModal");
|
|
4258
|
+
__publicField$x(this, "contactWrapper");
|
|
4259
|
+
__publicField$x(this, "salutationSelect");
|
|
4260
|
+
__publicField$x(this, "firstNameInput");
|
|
4261
|
+
__publicField$x(this, "lastNameInput");
|
|
4262
|
+
__publicField$x(this, "emailInput");
|
|
4263
|
+
__publicField$x(this, "phoneInput");
|
|
4264
|
+
__publicField$x(this, "subjectInput");
|
|
4265
|
+
__publicField$x(this, "commentInput");
|
|
4266
|
+
__publicField$x(this, "privacyPolicyCheckbox");
|
|
4267
|
+
__publicField$x(this, "submitButton");
|
|
4268
|
+
__publicField$x(this, "contactSuccessMessage");
|
|
4269
|
+
__publicField$x(this, "cardTitle");
|
|
4270
|
+
__publicField$x(this, "formFieldFeedback");
|
|
4271
|
+
__publicField$x(this, "formAlert");
|
|
4272
|
+
/**
|
|
4273
|
+
* Captcha locators
|
|
4274
|
+
*/
|
|
4275
|
+
__publicField$x(this, "basicCaptcha");
|
|
4276
|
+
__publicField$x(this, "basicCaptchaImage");
|
|
4277
|
+
__publicField$x(this, "basicCaptchaRefreshButton");
|
|
4278
|
+
__publicField$x(this, "basicCaptchaInput");
|
|
4279
|
+
__publicField$x(this, "greCaptchaV2Container");
|
|
4280
|
+
__publicField$x(this, "greCaptchaV2Input");
|
|
4281
|
+
__publicField$x(this, "greCaptchaProtectionInformation");
|
|
4282
|
+
this.contactModal = this.page.getByRole("dialog").filter({ has: this.page.getByText("Contact") });
|
|
4283
|
+
if (satisfies(instanceMeta.version, "<6.7")) {
|
|
4284
|
+
this.contactWrapper = this.page.getByRole("dialog").filter({ has: this.page.getByText("Contact") });
|
|
4285
|
+
this.contactSuccessModal = this.page.getByRole("dialog").filter({ has: this.page.locator(".confirm-message") });
|
|
4286
|
+
this.contactSuccessMessage = this.contactSuccessModal.locator(".confirm-message");
|
|
4287
|
+
} else {
|
|
4288
|
+
this.contactWrapper = this.page.locator(".card").filter({ has: this.page.getByText("Contact") });
|
|
4289
|
+
this.formFieldFeedback = this.contactWrapper.locator(".form-field-feedback");
|
|
4290
|
+
this.formAlert = this.page.getByRole("alert");
|
|
4291
|
+
this.contactSuccessMessage = this.page.locator(".confirm-message");
|
|
4292
|
+
}
|
|
4293
|
+
this.basicCaptcha = this.contactWrapper.locator(".basic-captcha");
|
|
4294
|
+
this.salutationSelect = this.contactWrapper.getByLabel("Salutation");
|
|
4295
|
+
this.firstNameInput = this.contactWrapper.getByLabel("First name");
|
|
4296
|
+
this.lastNameInput = this.contactWrapper.getByLabel("Last name");
|
|
4297
|
+
this.emailInput = this.contactWrapper.getByLabel("Your email address");
|
|
4298
|
+
this.phoneInput = this.contactWrapper.getByLabel("Phone");
|
|
4299
|
+
this.subjectInput = this.contactWrapper.getByLabel("Subject");
|
|
4300
|
+
this.commentInput = this.contactWrapper.getByLabel("Comment");
|
|
4301
|
+
this.privacyPolicyCheckbox = this.contactWrapper.getByRole("checkbox", { name: "By selecting continue you confirm that you have read and agree to our" });
|
|
4302
|
+
this.submitButton = this.contactWrapper.getByRole("button", { name: "Submit" });
|
|
4303
|
+
this.cardTitle = this.contactWrapper.locator(".card-title");
|
|
4304
|
+
this.basicCaptcha = this.contactWrapper.locator(".basic-captcha");
|
|
4305
|
+
this.greCaptchaV2Container = this.contactWrapper.locator(".grecaptcha-v2-container");
|
|
4306
|
+
this.greCaptchaV2Input = this.contactWrapper.locator(".grecaptcha-v2-input");
|
|
4307
|
+
this.greCaptchaProtectionInformation = this.contactWrapper.locator(".grecaptcha-protection-information");
|
|
4308
|
+
this.basicCaptchaImage = this.basicCaptcha.locator("img");
|
|
4309
|
+
this.basicCaptchaRefreshButton = this.basicCaptcha.locator(".basic-captcha-content-refresh-icon");
|
|
4310
|
+
this.basicCaptchaInput = this.basicCaptcha.locator('input[name="shopware_basic_captcha_confirm"]');
|
|
4311
|
+
}
|
|
4312
|
+
url() {
|
|
4313
|
+
return new Error("Function not implemented, because it is a modal page object").message;
|
|
4314
|
+
}
|
|
4315
|
+
}
|
|
4316
|
+
|
|
4051
4317
|
const StorefrontPageObjects = {
|
|
4052
4318
|
Home,
|
|
4053
4319
|
ProductDetail: ProductDetail$1,
|
|
@@ -4068,7 +4334,9 @@ const StorefrontPageObjects = {
|
|
|
4068
4334
|
Search,
|
|
4069
4335
|
SearchSuggest,
|
|
4070
4336
|
CustomRegister,
|
|
4071
|
-
CheckoutOrderEdit
|
|
4337
|
+
CheckoutOrderEdit,
|
|
4338
|
+
PageNotFound,
|
|
4339
|
+
ContactForm
|
|
4072
4340
|
};
|
|
4073
4341
|
const test$6 = test$e.extend({
|
|
4074
4342
|
StorefrontHome: async ({ StorefrontPage }, use) => {
|
|
@@ -4110,8 +4378,8 @@ const test$6 = test$e.extend({
|
|
|
4110
4378
|
StorefrontAccountOrder: async ({ StorefrontPage }, use) => {
|
|
4111
4379
|
await use(new AccountOrder(StorefrontPage));
|
|
4112
4380
|
},
|
|
4113
|
-
StorefrontAccountAddresses: async ({ StorefrontPage }, use) => {
|
|
4114
|
-
await use(new AccountAddresses(StorefrontPage));
|
|
4381
|
+
StorefrontAccountAddresses: async ({ StorefrontPage, InstanceMeta }, use) => {
|
|
4382
|
+
await use(new AccountAddresses(StorefrontPage, InstanceMeta));
|
|
4115
4383
|
},
|
|
4116
4384
|
StorefrontAccountAddressCreate: async ({ StorefrontPage }, use) => {
|
|
4117
4385
|
await use(new AccountAddressCreate(StorefrontPage));
|
|
@@ -4130,6 +4398,12 @@ const test$6 = test$e.extend({
|
|
|
4130
4398
|
},
|
|
4131
4399
|
StorefrontCheckoutOrderEdit: async ({ StorefrontPage }, use) => {
|
|
4132
4400
|
await use(new CheckoutOrderEdit(StorefrontPage));
|
|
4401
|
+
},
|
|
4402
|
+
StorefrontPageNotFound: async ({ StorefrontPage }, use) => {
|
|
4403
|
+
await use(new PageNotFound(StorefrontPage));
|
|
4404
|
+
},
|
|
4405
|
+
StorefrontContactForm: async ({ StorefrontPage, InstanceMeta }, use) => {
|
|
4406
|
+
await use(new ContactForm(StorefrontPage, InstanceMeta));
|
|
4133
4407
|
}
|
|
4134
4408
|
});
|
|
4135
4409
|
|
|
@@ -6730,7 +7004,7 @@ const Logout = test$e.extend({
|
|
|
6730
7004
|
});
|
|
6731
7005
|
|
|
6732
7006
|
const Register = test$e.extend({
|
|
6733
|
-
Register: async ({ StorefrontAccountLogin,
|
|
7007
|
+
Register: async ({ StorefrontAccountLogin, IdProvider, TestDataService }, use) => {
|
|
6734
7008
|
let registeredEmail = "";
|
|
6735
7009
|
const defaultRegistrationData = {
|
|
6736
7010
|
isCommercial: false,
|
|
@@ -6769,36 +7043,15 @@ const Register = test$e.extend({
|
|
|
6769
7043
|
await StorefrontAccountLogin.cityInput.fill(registrationData.city);
|
|
6770
7044
|
await StorefrontAccountLogin.countryInput.selectOption({ label: registrationData.country });
|
|
6771
7045
|
await StorefrontAccountLogin.registerButton.click();
|
|
7046
|
+
const customer = await TestDataService.getCustomerByEmail(registeredEmail);
|
|
7047
|
+
if (customer) {
|
|
7048
|
+
TestDataService.addCreatedRecord("customer", customer.id);
|
|
7049
|
+
}
|
|
6772
7050
|
};
|
|
6773
7051
|
};
|
|
6774
7052
|
await use(task);
|
|
6775
|
-
await deleteRegisteredUser(AdminApiContext2, registeredEmail);
|
|
6776
7053
|
}
|
|
6777
7054
|
});
|
|
6778
|
-
async function deleteRegisteredUser(adminApiContext, email) {
|
|
6779
|
-
if (!email)
|
|
6780
|
-
return;
|
|
6781
|
-
try {
|
|
6782
|
-
const response = await adminApiContext.post("search/customer", {
|
|
6783
|
-
data: {
|
|
6784
|
-
limit: 1,
|
|
6785
|
-
filter: [
|
|
6786
|
-
{
|
|
6787
|
-
type: "equals",
|
|
6788
|
-
field: "email",
|
|
6789
|
-
value: email
|
|
6790
|
-
}
|
|
6791
|
-
]
|
|
6792
|
-
}
|
|
6793
|
-
});
|
|
6794
|
-
const { data: customers } = await response.json();
|
|
6795
|
-
for (const customer of customers) {
|
|
6796
|
-
await adminApiContext.delete(`customer/${customer.id}`);
|
|
6797
|
-
}
|
|
6798
|
-
} catch (error) {
|
|
6799
|
-
console.error(`Error deleting user with email ${email}:`, error);
|
|
6800
|
-
}
|
|
6801
|
-
}
|
|
6802
7055
|
|
|
6803
7056
|
const RegisterGuest = test$e.extend({
|
|
6804
7057
|
RegisterGuest: async ({ StorefrontAccountLogin, AdminApiContext }, use) => {
|
|
@@ -6860,6 +7113,29 @@ const ChangeStorefrontCurrency = test$e.extend({
|
|
|
6860
7113
|
}
|
|
6861
7114
|
});
|
|
6862
7115
|
|
|
7116
|
+
const AddNewAddress = test$e.extend({
|
|
7117
|
+
AddNewAddress: async ({ StorefrontAccountAddresses, StorefrontAccountAddressCreate }, use) => {
|
|
7118
|
+
const task = (address) => {
|
|
7119
|
+
return async function AddNewAddress2() {
|
|
7120
|
+
await StorefrontAccountAddresses.addNewAddressButton.click();
|
|
7121
|
+
await StorefrontAccountAddressCreate.firstNameInput.fill(address.firstName);
|
|
7122
|
+
await StorefrontAccountAddressCreate.lastNameInput.fill(address.lastName);
|
|
7123
|
+
await StorefrontAccountAddressCreate.companyInput.fill(address.company);
|
|
7124
|
+
await StorefrontAccountAddressCreate.departmentInput.fill(address.department);
|
|
7125
|
+
await StorefrontAccountAddressCreate.streetInput.fill(address.street);
|
|
7126
|
+
await StorefrontAccountAddressCreate.zipcodeInput.fill(address.zipCode);
|
|
7127
|
+
await StorefrontAccountAddressCreate.cityInput.fill(address.city);
|
|
7128
|
+
await StorefrontAccountAddressCreate.countryDropdown.selectOption({ label: address.country });
|
|
7129
|
+
if (address.state) {
|
|
7130
|
+
await StorefrontAccountAddressCreate.stateDropdown.selectOption({ label: address.state });
|
|
7131
|
+
}
|
|
7132
|
+
await StorefrontAccountAddressCreate.saveAddressButton.click();
|
|
7133
|
+
};
|
|
7134
|
+
};
|
|
7135
|
+
await use(task);
|
|
7136
|
+
}
|
|
7137
|
+
});
|
|
7138
|
+
|
|
6863
7139
|
const AddProductToCart = test$e.extend({
|
|
6864
7140
|
AddProductToCart: async ({ ShopCustomer, StorefrontProductDetail }, use) => {
|
|
6865
7141
|
const task = (ProductData, quantity = "1") => {
|
|
@@ -7073,6 +7349,7 @@ const test$2 = mergeTests(
|
|
|
7073
7349
|
Register,
|
|
7074
7350
|
RegisterGuest,
|
|
7075
7351
|
ChangeStorefrontCurrency,
|
|
7352
|
+
AddNewAddress,
|
|
7076
7353
|
AddProductToCart,
|
|
7077
7354
|
ChangeProductQuantity,
|
|
7078
7355
|
ProceedFromProductToCheckout,
|