@shopware-ag/acceptance-test-suite 11.34.1 → 11.35.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.d.mts +85 -5
- package/dist/index.d.ts +85 -5
- package/dist/index.mjs +235 -80
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -20,16 +20,20 @@ interface AdminApiContextOptions {
|
|
|
20
20
|
admin_username?: string;
|
|
21
21
|
admin_password?: string;
|
|
22
22
|
ignoreHTTPSErrors?: boolean;
|
|
23
|
+
authMaxRetries?: number;
|
|
24
|
+
authBaseDelayMs?: number;
|
|
23
25
|
}
|
|
24
26
|
declare class AdminApiContext {
|
|
25
27
|
context: APIRequestContext;
|
|
26
|
-
readonly options: AdminApiContextOptions
|
|
28
|
+
readonly options: Required<AdminApiContextOptions>;
|
|
27
29
|
private static readonly defaultOptions;
|
|
28
|
-
constructor(context: APIRequestContext, options: AdminApiContextOptions);
|
|
29
|
-
static create(options?: AdminApiContextOptions): Promise<AdminApiContext>;
|
|
30
|
+
constructor(context: APIRequestContext, options: Required<AdminApiContextOptions>);
|
|
31
|
+
static create(options?: Required<AdminApiContextOptions>): Promise<AdminApiContext>;
|
|
30
32
|
private static createApiRequestContext;
|
|
31
|
-
static
|
|
32
|
-
static
|
|
33
|
+
private static authenticateWithRetry;
|
|
34
|
+
static authenticateWithClientCredentials(context: APIRequestContext, options: Required<AdminApiContextOptions>): Promise<string>;
|
|
35
|
+
static authenticateWithUserPassword(context: APIRequestContext, options: Required<AdminApiContextOptions>): Promise<string>;
|
|
36
|
+
private reauthenticate;
|
|
33
37
|
isAuthenticated(): boolean;
|
|
34
38
|
refreshAccessToken(): Promise<void>;
|
|
35
39
|
get<PAYLOAD>(url: string, options?: RequestOptions$1<PAYLOAD>): Promise<APIResponse>;
|
|
@@ -189,6 +193,7 @@ interface TaxRules {
|
|
|
189
193
|
}
|
|
190
194
|
type Order = Omit<components['schemas']['Order'], 'deliveries' | 'price'> & {
|
|
191
195
|
id: string;
|
|
196
|
+
orderNumber: string;
|
|
192
197
|
orderCustomer: {
|
|
193
198
|
firstName: string;
|
|
194
199
|
lastName: string;
|
|
@@ -1460,6 +1465,10 @@ declare const BUNDLED_RESOURCES: {
|
|
|
1460
1465
|
userMenu: {
|
|
1461
1466
|
logout: string;
|
|
1462
1467
|
};
|
|
1468
|
+
order: {
|
|
1469
|
+
orderTitle: string;
|
|
1470
|
+
orderOverview: string;
|
|
1471
|
+
};
|
|
1463
1472
|
};
|
|
1464
1473
|
readonly 'administration/manufacturer': {
|
|
1465
1474
|
listing: {
|
|
@@ -1497,6 +1506,17 @@ declare const BUNDLED_RESOURCES: {
|
|
|
1497
1506
|
details: string;
|
|
1498
1507
|
documents: string;
|
|
1499
1508
|
};
|
|
1509
|
+
listing: {
|
|
1510
|
+
addOrder: string;
|
|
1511
|
+
};
|
|
1512
|
+
actions: {
|
|
1513
|
+
view: string;
|
|
1514
|
+
delete: string;
|
|
1515
|
+
cancel: string;
|
|
1516
|
+
};
|
|
1517
|
+
dialogs: {
|
|
1518
|
+
warning: string;
|
|
1519
|
+
};
|
|
1500
1520
|
};
|
|
1501
1521
|
readonly 'administration/payment': {
|
|
1502
1522
|
common: {
|
|
@@ -2191,6 +2211,10 @@ declare const BUNDLED_RESOURCES: {
|
|
|
2191
2211
|
userMenu: {
|
|
2192
2212
|
logout: string;
|
|
2193
2213
|
};
|
|
2214
|
+
order: {
|
|
2215
|
+
orderTitle: string;
|
|
2216
|
+
orderOverview: string;
|
|
2217
|
+
};
|
|
2194
2218
|
};
|
|
2195
2219
|
readonly 'administration/dataSharing': {
|
|
2196
2220
|
buttons: {
|
|
@@ -2384,6 +2408,17 @@ declare const BUNDLED_RESOURCES: {
|
|
|
2384
2408
|
details: string;
|
|
2385
2409
|
documents: string;
|
|
2386
2410
|
};
|
|
2411
|
+
listing: {
|
|
2412
|
+
addOrder: string;
|
|
2413
|
+
};
|
|
2414
|
+
actions: {
|
|
2415
|
+
view: string;
|
|
2416
|
+
delete: string;
|
|
2417
|
+
cancel: string;
|
|
2418
|
+
};
|
|
2419
|
+
dialogs: {
|
|
2420
|
+
warning: string;
|
|
2421
|
+
};
|
|
2387
2422
|
};
|
|
2388
2423
|
readonly 'administration/payment': {
|
|
2389
2424
|
common: {
|
|
@@ -3228,6 +3263,10 @@ declare const baseNamespaces: {
|
|
|
3228
3263
|
userMenu: {
|
|
3229
3264
|
logout: string;
|
|
3230
3265
|
};
|
|
3266
|
+
order: {
|
|
3267
|
+
orderTitle: string;
|
|
3268
|
+
orderOverview: string;
|
|
3269
|
+
};
|
|
3231
3270
|
};
|
|
3232
3271
|
readonly manufacturer: {
|
|
3233
3272
|
listing: {
|
|
@@ -3265,6 +3304,17 @@ declare const baseNamespaces: {
|
|
|
3265
3304
|
details: string;
|
|
3266
3305
|
documents: string;
|
|
3267
3306
|
};
|
|
3307
|
+
listing: {
|
|
3308
|
+
addOrder: string;
|
|
3309
|
+
};
|
|
3310
|
+
actions: {
|
|
3311
|
+
view: string;
|
|
3312
|
+
delete: string;
|
|
3313
|
+
cancel: string;
|
|
3314
|
+
};
|
|
3315
|
+
dialogs: {
|
|
3316
|
+
warning: string;
|
|
3317
|
+
};
|
|
3268
3318
|
};
|
|
3269
3319
|
readonly payment: {
|
|
3270
3320
|
common: {
|
|
@@ -4193,6 +4243,7 @@ declare class CustomerDetail implements PageObject {
|
|
|
4193
4243
|
readonly tagItems: Locator;
|
|
4194
4244
|
readonly page: Page;
|
|
4195
4245
|
readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
|
|
4246
|
+
readonly customerEmail: Locator;
|
|
4196
4247
|
constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
|
|
4197
4248
|
getCustomFieldSetCardContentByName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
4198
4249
|
getCustomerGroupAlert(customerGroup: string): Promise<Locator>;
|
|
@@ -4413,6 +4464,7 @@ declare class Dashboard implements PageObject {
|
|
|
4413
4464
|
readonly adminMenuView: Locator;
|
|
4414
4465
|
readonly adminMenuCatalog: Locator;
|
|
4415
4466
|
readonly adminMenuOrder: Locator;
|
|
4467
|
+
readonly adminMenuOrderOverview: Locator;
|
|
4416
4468
|
readonly adminMenuCustomer: Locator;
|
|
4417
4469
|
readonly adminMenuContent: Locator;
|
|
4418
4470
|
readonly adminMenuMarketing: Locator;
|
|
@@ -5101,6 +5153,32 @@ declare class SalesChannelDetail implements PageObject {
|
|
|
5101
5153
|
url(salesChannelId: string): string;
|
|
5102
5154
|
}
|
|
5103
5155
|
|
|
5156
|
+
declare class OrderListing implements PageObject {
|
|
5157
|
+
readonly addOrderButton: Locator;
|
|
5158
|
+
readonly orderRows: Locator;
|
|
5159
|
+
readonly page: Page;
|
|
5160
|
+
readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
|
|
5161
|
+
constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
|
|
5162
|
+
getLineItemByOrderNumber(orderNumber: string): Promise<{
|
|
5163
|
+
orderNumberText: Locator;
|
|
5164
|
+
orderCustomerNameText: Locator;
|
|
5165
|
+
orderDeliveryAddressText: Locator;
|
|
5166
|
+
orderTotalAmountText: Locator;
|
|
5167
|
+
orderStateText: Locator;
|
|
5168
|
+
orderPaymentStateText: Locator;
|
|
5169
|
+
orderDeliveryStateText: Locator;
|
|
5170
|
+
orderDateText: Locator;
|
|
5171
|
+
orderCheckbox: Locator;
|
|
5172
|
+
orderContextButton: Locator;
|
|
5173
|
+
orderViewButton: Locator;
|
|
5174
|
+
orderDeleteButton: Locator;
|
|
5175
|
+
warningDialog: Locator;
|
|
5176
|
+
warningDialogCancelButton: Locator;
|
|
5177
|
+
warningDialogDeleteButton: Locator;
|
|
5178
|
+
}>;
|
|
5179
|
+
url(): string;
|
|
5180
|
+
}
|
|
5181
|
+
|
|
5104
5182
|
interface AdministrationPageTypes {
|
|
5105
5183
|
AdminProductDetail: ProductDetail$1;
|
|
5106
5184
|
AdminOrderDetail: OrderDetail;
|
|
@@ -5151,6 +5229,7 @@ interface AdministrationPageTypes {
|
|
|
5151
5229
|
AdminLayoutListing: LayoutListing;
|
|
5152
5230
|
AdminListingPageLayoutDetail: ListingPageLayoutDetail;
|
|
5153
5231
|
AdminLayoutCreate: LayoutCreate;
|
|
5232
|
+
AdminOrderListing: OrderListing;
|
|
5154
5233
|
}
|
|
5155
5234
|
declare const AdminPageObjects: {
|
|
5156
5235
|
ProductDetail: typeof ProductDetail$1;
|
|
@@ -5202,6 +5281,7 @@ declare const AdminPageObjects: {
|
|
|
5202
5281
|
LayoutListing: typeof LayoutListing;
|
|
5203
5282
|
ListingPageLayoutDetail: typeof ListingPageLayoutDetail;
|
|
5204
5283
|
LayoutCreate: typeof LayoutCreate;
|
|
5284
|
+
OrderListing: typeof OrderListing;
|
|
5205
5285
|
};
|
|
5206
5286
|
|
|
5207
5287
|
interface DataFixtureTypes {
|
package/dist/index.d.ts
CHANGED
|
@@ -20,16 +20,20 @@ interface AdminApiContextOptions {
|
|
|
20
20
|
admin_username?: string;
|
|
21
21
|
admin_password?: string;
|
|
22
22
|
ignoreHTTPSErrors?: boolean;
|
|
23
|
+
authMaxRetries?: number;
|
|
24
|
+
authBaseDelayMs?: number;
|
|
23
25
|
}
|
|
24
26
|
declare class AdminApiContext {
|
|
25
27
|
context: APIRequestContext;
|
|
26
|
-
readonly options: AdminApiContextOptions
|
|
28
|
+
readonly options: Required<AdminApiContextOptions>;
|
|
27
29
|
private static readonly defaultOptions;
|
|
28
|
-
constructor(context: APIRequestContext, options: AdminApiContextOptions);
|
|
29
|
-
static create(options?: AdminApiContextOptions): Promise<AdminApiContext>;
|
|
30
|
+
constructor(context: APIRequestContext, options: Required<AdminApiContextOptions>);
|
|
31
|
+
static create(options?: Required<AdminApiContextOptions>): Promise<AdminApiContext>;
|
|
30
32
|
private static createApiRequestContext;
|
|
31
|
-
static
|
|
32
|
-
static
|
|
33
|
+
private static authenticateWithRetry;
|
|
34
|
+
static authenticateWithClientCredentials(context: APIRequestContext, options: Required<AdminApiContextOptions>): Promise<string>;
|
|
35
|
+
static authenticateWithUserPassword(context: APIRequestContext, options: Required<AdminApiContextOptions>): Promise<string>;
|
|
36
|
+
private reauthenticate;
|
|
33
37
|
isAuthenticated(): boolean;
|
|
34
38
|
refreshAccessToken(): Promise<void>;
|
|
35
39
|
get<PAYLOAD>(url: string, options?: RequestOptions$1<PAYLOAD>): Promise<APIResponse>;
|
|
@@ -189,6 +193,7 @@ interface TaxRules {
|
|
|
189
193
|
}
|
|
190
194
|
type Order = Omit<components['schemas']['Order'], 'deliveries' | 'price'> & {
|
|
191
195
|
id: string;
|
|
196
|
+
orderNumber: string;
|
|
192
197
|
orderCustomer: {
|
|
193
198
|
firstName: string;
|
|
194
199
|
lastName: string;
|
|
@@ -1460,6 +1465,10 @@ declare const BUNDLED_RESOURCES: {
|
|
|
1460
1465
|
userMenu: {
|
|
1461
1466
|
logout: string;
|
|
1462
1467
|
};
|
|
1468
|
+
order: {
|
|
1469
|
+
orderTitle: string;
|
|
1470
|
+
orderOverview: string;
|
|
1471
|
+
};
|
|
1463
1472
|
};
|
|
1464
1473
|
readonly 'administration/manufacturer': {
|
|
1465
1474
|
listing: {
|
|
@@ -1497,6 +1506,17 @@ declare const BUNDLED_RESOURCES: {
|
|
|
1497
1506
|
details: string;
|
|
1498
1507
|
documents: string;
|
|
1499
1508
|
};
|
|
1509
|
+
listing: {
|
|
1510
|
+
addOrder: string;
|
|
1511
|
+
};
|
|
1512
|
+
actions: {
|
|
1513
|
+
view: string;
|
|
1514
|
+
delete: string;
|
|
1515
|
+
cancel: string;
|
|
1516
|
+
};
|
|
1517
|
+
dialogs: {
|
|
1518
|
+
warning: string;
|
|
1519
|
+
};
|
|
1500
1520
|
};
|
|
1501
1521
|
readonly 'administration/payment': {
|
|
1502
1522
|
common: {
|
|
@@ -2191,6 +2211,10 @@ declare const BUNDLED_RESOURCES: {
|
|
|
2191
2211
|
userMenu: {
|
|
2192
2212
|
logout: string;
|
|
2193
2213
|
};
|
|
2214
|
+
order: {
|
|
2215
|
+
orderTitle: string;
|
|
2216
|
+
orderOverview: string;
|
|
2217
|
+
};
|
|
2194
2218
|
};
|
|
2195
2219
|
readonly 'administration/dataSharing': {
|
|
2196
2220
|
buttons: {
|
|
@@ -2384,6 +2408,17 @@ declare const BUNDLED_RESOURCES: {
|
|
|
2384
2408
|
details: string;
|
|
2385
2409
|
documents: string;
|
|
2386
2410
|
};
|
|
2411
|
+
listing: {
|
|
2412
|
+
addOrder: string;
|
|
2413
|
+
};
|
|
2414
|
+
actions: {
|
|
2415
|
+
view: string;
|
|
2416
|
+
delete: string;
|
|
2417
|
+
cancel: string;
|
|
2418
|
+
};
|
|
2419
|
+
dialogs: {
|
|
2420
|
+
warning: string;
|
|
2421
|
+
};
|
|
2387
2422
|
};
|
|
2388
2423
|
readonly 'administration/payment': {
|
|
2389
2424
|
common: {
|
|
@@ -3228,6 +3263,10 @@ declare const baseNamespaces: {
|
|
|
3228
3263
|
userMenu: {
|
|
3229
3264
|
logout: string;
|
|
3230
3265
|
};
|
|
3266
|
+
order: {
|
|
3267
|
+
orderTitle: string;
|
|
3268
|
+
orderOverview: string;
|
|
3269
|
+
};
|
|
3231
3270
|
};
|
|
3232
3271
|
readonly manufacturer: {
|
|
3233
3272
|
listing: {
|
|
@@ -3265,6 +3304,17 @@ declare const baseNamespaces: {
|
|
|
3265
3304
|
details: string;
|
|
3266
3305
|
documents: string;
|
|
3267
3306
|
};
|
|
3307
|
+
listing: {
|
|
3308
|
+
addOrder: string;
|
|
3309
|
+
};
|
|
3310
|
+
actions: {
|
|
3311
|
+
view: string;
|
|
3312
|
+
delete: string;
|
|
3313
|
+
cancel: string;
|
|
3314
|
+
};
|
|
3315
|
+
dialogs: {
|
|
3316
|
+
warning: string;
|
|
3317
|
+
};
|
|
3268
3318
|
};
|
|
3269
3319
|
readonly payment: {
|
|
3270
3320
|
common: {
|
|
@@ -4193,6 +4243,7 @@ declare class CustomerDetail implements PageObject {
|
|
|
4193
4243
|
readonly tagItems: Locator;
|
|
4194
4244
|
readonly page: Page;
|
|
4195
4245
|
readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
|
|
4246
|
+
readonly customerEmail: Locator;
|
|
4196
4247
|
constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
|
|
4197
4248
|
getCustomFieldSetCardContentByName(customFieldSetName: string): Promise<Record<string, Locator>>;
|
|
4198
4249
|
getCustomerGroupAlert(customerGroup: string): Promise<Locator>;
|
|
@@ -4413,6 +4464,7 @@ declare class Dashboard implements PageObject {
|
|
|
4413
4464
|
readonly adminMenuView: Locator;
|
|
4414
4465
|
readonly adminMenuCatalog: Locator;
|
|
4415
4466
|
readonly adminMenuOrder: Locator;
|
|
4467
|
+
readonly adminMenuOrderOverview: Locator;
|
|
4416
4468
|
readonly adminMenuCustomer: Locator;
|
|
4417
4469
|
readonly adminMenuContent: Locator;
|
|
4418
4470
|
readonly adminMenuMarketing: Locator;
|
|
@@ -5101,6 +5153,32 @@ declare class SalesChannelDetail implements PageObject {
|
|
|
5101
5153
|
url(salesChannelId: string): string;
|
|
5102
5154
|
}
|
|
5103
5155
|
|
|
5156
|
+
declare class OrderListing implements PageObject {
|
|
5157
|
+
readonly addOrderButton: Locator;
|
|
5158
|
+
readonly orderRows: Locator;
|
|
5159
|
+
readonly page: Page;
|
|
5160
|
+
readonly instanceMeta: HelperFixtureTypes['InstanceMeta'];
|
|
5161
|
+
constructor(page: Page, instanceMeta: HelperFixtureTypes['InstanceMeta']);
|
|
5162
|
+
getLineItemByOrderNumber(orderNumber: string): Promise<{
|
|
5163
|
+
orderNumberText: Locator;
|
|
5164
|
+
orderCustomerNameText: Locator;
|
|
5165
|
+
orderDeliveryAddressText: Locator;
|
|
5166
|
+
orderTotalAmountText: Locator;
|
|
5167
|
+
orderStateText: Locator;
|
|
5168
|
+
orderPaymentStateText: Locator;
|
|
5169
|
+
orderDeliveryStateText: Locator;
|
|
5170
|
+
orderDateText: Locator;
|
|
5171
|
+
orderCheckbox: Locator;
|
|
5172
|
+
orderContextButton: Locator;
|
|
5173
|
+
orderViewButton: Locator;
|
|
5174
|
+
orderDeleteButton: Locator;
|
|
5175
|
+
warningDialog: Locator;
|
|
5176
|
+
warningDialogCancelButton: Locator;
|
|
5177
|
+
warningDialogDeleteButton: Locator;
|
|
5178
|
+
}>;
|
|
5179
|
+
url(): string;
|
|
5180
|
+
}
|
|
5181
|
+
|
|
5104
5182
|
interface AdministrationPageTypes {
|
|
5105
5183
|
AdminProductDetail: ProductDetail$1;
|
|
5106
5184
|
AdminOrderDetail: OrderDetail;
|
|
@@ -5151,6 +5229,7 @@ interface AdministrationPageTypes {
|
|
|
5151
5229
|
AdminLayoutListing: LayoutListing;
|
|
5152
5230
|
AdminListingPageLayoutDetail: ListingPageLayoutDetail;
|
|
5153
5231
|
AdminLayoutCreate: LayoutCreate;
|
|
5232
|
+
AdminOrderListing: OrderListing;
|
|
5154
5233
|
}
|
|
5155
5234
|
declare const AdminPageObjects: {
|
|
5156
5235
|
ProductDetail: typeof ProductDetail$1;
|
|
@@ -5202,6 +5281,7 @@ declare const AdminPageObjects: {
|
|
|
5202
5281
|
LayoutListing: typeof LayoutListing;
|
|
5203
5282
|
ListingPageLayoutDetail: typeof ListingPageLayoutDetail;
|
|
5204
5283
|
LayoutCreate: typeof LayoutCreate;
|
|
5284
|
+
OrderListing: typeof OrderListing;
|
|
5205
5285
|
};
|
|
5206
5286
|
|
|
5207
5287
|
interface DataFixtureTypes {
|
package/dist/index.mjs
CHANGED
|
@@ -161,20 +161,29 @@ class AdminApiContext {
|
|
|
161
161
|
context;
|
|
162
162
|
options;
|
|
163
163
|
static defaultOptions = {
|
|
164
|
-
app_url: process.env["ADMIN_API_URL"] || process.env["APP_URL"],
|
|
165
|
-
client_id: process.env["SHOPWARE_ACCESS_KEY_ID"],
|
|
166
|
-
client_secret: process.env["SHOPWARE_SECRET_ACCESS_KEY"],
|
|
164
|
+
app_url: process.env["ADMIN_API_URL"] || process.env["APP_URL"] || "http://localhost:8000",
|
|
165
|
+
client_id: process.env["SHOPWARE_ACCESS_KEY_ID"] ?? "",
|
|
166
|
+
client_secret: process.env["SHOPWARE_SECRET_ACCESS_KEY"] ?? "",
|
|
167
167
|
admin_username: process.env["SHOPWARE_ADMIN_USERNAME"] || "admin",
|
|
168
168
|
admin_password: process.env["SHOPWARE_ADMIN_PASSWORD"] || "shopware",
|
|
169
|
-
ignoreHTTPSErrors: true
|
|
169
|
+
ignoreHTTPSErrors: true,
|
|
170
|
+
authMaxRetries: 2,
|
|
171
|
+
authBaseDelayMs: 250,
|
|
172
|
+
access_token: ""
|
|
170
173
|
};
|
|
171
174
|
constructor(context, options) {
|
|
172
175
|
this.context = context;
|
|
173
176
|
this.options = options;
|
|
174
177
|
}
|
|
175
178
|
static async create(options) {
|
|
176
|
-
const contextOptions = {
|
|
179
|
+
const contextOptions = {
|
|
180
|
+
...this.defaultOptions,
|
|
181
|
+
...options
|
|
182
|
+
};
|
|
177
183
|
const tmpContext = await this.createApiRequestContext(contextOptions);
|
|
184
|
+
if (!contextOptions.access_token) {
|
|
185
|
+
contextOptions.access_token = await this.authenticateWithRetry(tmpContext, contextOptions);
|
|
186
|
+
}
|
|
178
187
|
if (!contextOptions.client_id) {
|
|
179
188
|
contextOptions["access_token"] = await this.authenticateWithUserPassword(tmpContext, contextOptions);
|
|
180
189
|
const userContext = await this.createApiRequestContext(contextOptions);
|
|
@@ -207,6 +216,30 @@ class AdminApiContext {
|
|
|
207
216
|
extraHTTPHeaders
|
|
208
217
|
});
|
|
209
218
|
}
|
|
219
|
+
static async authenticateWithRetry(tmpContext, options) {
|
|
220
|
+
const max = Math.max(0, options.authMaxRetries);
|
|
221
|
+
const baseDelay = Math.max(0, options.authBaseDelayMs);
|
|
222
|
+
let lastError;
|
|
223
|
+
for (let attempt = 0; attempt <= max; attempt++) {
|
|
224
|
+
try {
|
|
225
|
+
if (options.client_id && options.client_secret) {
|
|
226
|
+
const token = await this.authenticateWithClientCredentials(tmpContext, options);
|
|
227
|
+
if (token) return token;
|
|
228
|
+
}
|
|
229
|
+
if (options.admin_username && options.admin_password) {
|
|
230
|
+
const userToken = await this.authenticateWithUserPassword(tmpContext, options);
|
|
231
|
+
if (userToken) return userToken;
|
|
232
|
+
}
|
|
233
|
+
throw new Error("No valid authentication method available (missing credentials).");
|
|
234
|
+
} catch (err) {
|
|
235
|
+
lastError = err;
|
|
236
|
+
if (attempt === max) break;
|
|
237
|
+
const delay = baseDelay * Math.pow(2, attempt) + Math.floor(Math.random() * baseDelay);
|
|
238
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
throw lastError instanceof Error ? lastError : new Error(`Authentication failed after ${max + 1} attempts: ${String(lastError)}`);
|
|
242
|
+
}
|
|
210
243
|
static async authenticateWithClientCredentials(context, options) {
|
|
211
244
|
const authResponse = await context.post("oauth/token", {
|
|
212
245
|
data: {
|
|
@@ -216,8 +249,8 @@ class AdminApiContext {
|
|
|
216
249
|
scope: "write"
|
|
217
250
|
}
|
|
218
251
|
});
|
|
219
|
-
const authData = await authResponse.json();
|
|
220
252
|
expect(authResponse.ok(), "Should authenticate with client credentials").toBeTruthy();
|
|
253
|
+
const authData = await authResponse.json();
|
|
221
254
|
if (!authData["access_token"]) {
|
|
222
255
|
throw new Error(`Failed to authenticate with client_id: ${options.client_id}`);
|
|
223
256
|
}
|
|
@@ -233,13 +266,21 @@ class AdminApiContext {
|
|
|
233
266
|
scope: "write"
|
|
234
267
|
}
|
|
235
268
|
});
|
|
236
|
-
const authData = await authResponse.json();
|
|
237
269
|
expect(authResponse.ok(), "Should authenticate with user credentials").toBeTruthy();
|
|
270
|
+
const authData = await authResponse.json();
|
|
238
271
|
if (!authData["access_token"]) {
|
|
239
272
|
throw new Error(`Failed to authenticate with user: ${options.admin_username}`);
|
|
240
273
|
}
|
|
241
274
|
return authData["access_token"];
|
|
242
275
|
}
|
|
276
|
+
async reauthenticate() {
|
|
277
|
+
const tmp = await AdminApiContext.createApiRequestContext({
|
|
278
|
+
...this.options,
|
|
279
|
+
access_token: ""
|
|
280
|
+
});
|
|
281
|
+
this.options.access_token = await AdminApiContext.authenticateWithRetry(tmp, this.options);
|
|
282
|
+
this.context = await AdminApiContext.createApiRequestContext(this.options);
|
|
283
|
+
}
|
|
243
284
|
isAuthenticated() {
|
|
244
285
|
return !!this.options["access_token"];
|
|
245
286
|
}
|
|
@@ -274,9 +315,17 @@ class AdminApiContext {
|
|
|
274
315
|
fetch: this.context.fetch.bind(this.context),
|
|
275
316
|
head: this.context.head.bind(this.context)
|
|
276
317
|
};
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
318
|
+
const withAuth = {
|
|
319
|
+
...options,
|
|
320
|
+
data: options?.data ?? void 0,
|
|
321
|
+
headers: {
|
|
322
|
+
...options?.headers || {},
|
|
323
|
+
Authorization: `Bearer ${this.options.access_token}`
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
let response = await methodMap[method](url, withAuth);
|
|
327
|
+
if (response.status() === 401 || response.status() === 400) {
|
|
328
|
+
await this.reauthenticate();
|
|
280
329
|
const updatedOptions = {
|
|
281
330
|
...options,
|
|
282
331
|
data: options?.data ?? void 0,
|
|
@@ -563,7 +612,7 @@ const general$a = {
|
|
|
563
612
|
"delete": "Delete",
|
|
564
613
|
customFields: "Custom fields"
|
|
565
614
|
};
|
|
566
|
-
const actions$
|
|
615
|
+
const actions$f = {
|
|
567
616
|
createCategory: "Create category",
|
|
568
617
|
addLandingPage: "Add landing page",
|
|
569
618
|
configureHomePage: "Configure home page",
|
|
@@ -594,7 +643,7 @@ const entities$1 = {
|
|
|
594
643
|
};
|
|
595
644
|
const administrationCategory = {
|
|
596
645
|
general: general$a,
|
|
597
|
-
actions: actions$
|
|
646
|
+
actions: actions$f,
|
|
598
647
|
tabs: tabs$9,
|
|
599
648
|
fields: fields$9,
|
|
600
649
|
headings: headings$5,
|
|
@@ -602,7 +651,7 @@ const administrationCategory = {
|
|
|
602
651
|
entities: entities$1
|
|
603
652
|
};
|
|
604
653
|
|
|
605
|
-
const listing$
|
|
654
|
+
const listing$m = {
|
|
606
655
|
customers: "Customers",
|
|
607
656
|
bulkEdit: "Bulk edit",
|
|
608
657
|
"delete": "Delete",
|
|
@@ -641,7 +690,7 @@ const bulkEdit$3 = {
|
|
|
641
690
|
}
|
|
642
691
|
};
|
|
643
692
|
const administrationCustomer = {
|
|
644
|
-
listing: listing$
|
|
693
|
+
listing: listing$m,
|
|
645
694
|
detail: detail$o,
|
|
646
695
|
bulkEdit: bulkEdit$3
|
|
647
696
|
};
|
|
@@ -651,7 +700,7 @@ const common$b = {
|
|
|
651
700
|
position: "Position",
|
|
652
701
|
labelEnglishGB: "Label (English (GB))"
|
|
653
702
|
};
|
|
654
|
-
const listing$
|
|
703
|
+
const listing$l = {
|
|
655
704
|
addNewSet: "Add new set"
|
|
656
705
|
};
|
|
657
706
|
const create$d = {
|
|
@@ -673,24 +722,24 @@ const detail$n = {
|
|
|
673
722
|
const general$9 = {
|
|
674
723
|
customFields: "Custom fields"
|
|
675
724
|
};
|
|
676
|
-
const actions$
|
|
725
|
+
const actions$e = {
|
|
677
726
|
edit: "Edit",
|
|
678
727
|
"delete": "Delete",
|
|
679
728
|
cancel: "Cancel",
|
|
680
729
|
applyChanges: "Apply changes"
|
|
681
730
|
};
|
|
682
|
-
const dialogs$
|
|
731
|
+
const dialogs$7 = {
|
|
683
732
|
warning: "Warning",
|
|
684
733
|
deleteCustomField: "Delete custom field"
|
|
685
734
|
};
|
|
686
735
|
const administrationCustomField = {
|
|
687
736
|
common: common$b,
|
|
688
|
-
listing: listing$
|
|
737
|
+
listing: listing$l,
|
|
689
738
|
create: create$d,
|
|
690
739
|
detail: detail$n,
|
|
691
740
|
general: general$9,
|
|
692
|
-
actions: actions$
|
|
693
|
-
dialogs: dialogs$
|
|
741
|
+
actions: actions$e,
|
|
742
|
+
dialogs: dialogs$7
|
|
694
743
|
};
|
|
695
744
|
|
|
696
745
|
const buttons$d = {
|
|
@@ -710,7 +759,7 @@ const administrationDataSharing = {
|
|
|
710
759
|
headlines: headlines$1
|
|
711
760
|
};
|
|
712
761
|
|
|
713
|
-
const listing$
|
|
762
|
+
const listing$k = {
|
|
714
763
|
addDocument: "Add document"
|
|
715
764
|
};
|
|
716
765
|
const types$1 = {
|
|
@@ -721,7 +770,7 @@ const detail$m = {
|
|
|
721
770
|
save: "Save"
|
|
722
771
|
};
|
|
723
772
|
const administrationDocument = {
|
|
724
|
-
listing: listing$
|
|
773
|
+
listing: listing$k,
|
|
725
774
|
types: types$1,
|
|
726
775
|
detail: detail$m
|
|
727
776
|
};
|
|
@@ -750,7 +799,7 @@ const administrationLandingPage = {
|
|
|
750
799
|
layout: layout$1
|
|
751
800
|
};
|
|
752
801
|
|
|
753
|
-
const listing$
|
|
802
|
+
const listing$j = {
|
|
754
803
|
createNewLayout: "Create new layout"
|
|
755
804
|
};
|
|
756
805
|
const create$b = {
|
|
@@ -774,7 +823,7 @@ const detail$l = {
|
|
|
774
823
|
layoutAssignment: "Layout assignment"
|
|
775
824
|
};
|
|
776
825
|
const administrationLayout = {
|
|
777
|
-
listing: listing$
|
|
826
|
+
listing: listing$j,
|
|
778
827
|
create: create$b,
|
|
779
828
|
detail: detail$l
|
|
780
829
|
};
|
|
@@ -790,7 +839,7 @@ const administrationLogin = {
|
|
|
790
839
|
loginButton: loginButton$3
|
|
791
840
|
};
|
|
792
841
|
|
|
793
|
-
const listing$
|
|
842
|
+
const listing$i = {
|
|
794
843
|
"delete": "Delete",
|
|
795
844
|
downloadFlow: "Download flow",
|
|
796
845
|
testFlow: "Test flow",
|
|
@@ -818,7 +867,7 @@ const messages$6 = {
|
|
|
818
867
|
deleteConfirmation: "If you delete this flow, no more actions will be performed for the trigger. Are you sure you want to delete this flow?"
|
|
819
868
|
};
|
|
820
869
|
const administrationFlowBuilder = {
|
|
821
|
-
listing: listing$
|
|
870
|
+
listing: listing$i,
|
|
822
871
|
create: create$a,
|
|
823
872
|
detail: detail$k,
|
|
824
873
|
templates: templates$1,
|
|
@@ -839,13 +888,18 @@ const shopwareServices$1 = {
|
|
|
839
888
|
const userMenu$1 = {
|
|
840
889
|
logout: "Logout"
|
|
841
890
|
};
|
|
891
|
+
const order$1 = {
|
|
892
|
+
orderTitle: "Orders",
|
|
893
|
+
orderOverview: "Overview"
|
|
894
|
+
};
|
|
842
895
|
const administrationDashboard = {
|
|
843
896
|
dataSharing: dataSharing$1,
|
|
844
897
|
shopwareServices: shopwareServices$1,
|
|
845
|
-
userMenu: userMenu$1
|
|
898
|
+
userMenu: userMenu$1,
|
|
899
|
+
order: order$1
|
|
846
900
|
};
|
|
847
901
|
|
|
848
|
-
const listing$
|
|
902
|
+
const listing$h = {
|
|
849
903
|
addManufacturer: "Add manufacturer"
|
|
850
904
|
};
|
|
851
905
|
const create$9 = {
|
|
@@ -857,20 +911,20 @@ const create$9 = {
|
|
|
857
911
|
const detail$j = {
|
|
858
912
|
customFields: "Custom fields"
|
|
859
913
|
};
|
|
860
|
-
const actions$
|
|
914
|
+
const actions$d = {
|
|
861
915
|
edit: "Edit",
|
|
862
916
|
"delete": "Delete",
|
|
863
917
|
cancel: "Cancel"
|
|
864
918
|
};
|
|
865
|
-
const dialogs$
|
|
919
|
+
const dialogs$6 = {
|
|
866
920
|
warning: "Warning"
|
|
867
921
|
};
|
|
868
922
|
const administrationManufacturer = {
|
|
869
|
-
listing: listing$
|
|
923
|
+
listing: listing$h,
|
|
870
924
|
create: create$9,
|
|
871
925
|
detail: detail$j,
|
|
872
|
-
actions: actions$
|
|
873
|
-
dialogs: dialogs$
|
|
926
|
+
actions: actions$d,
|
|
927
|
+
dialogs: dialogs$6
|
|
874
928
|
};
|
|
875
929
|
|
|
876
930
|
const detail$i = {
|
|
@@ -886,10 +940,24 @@ const tabs$8 = {
|
|
|
886
940
|
details: "Details",
|
|
887
941
|
documents: "Documents"
|
|
888
942
|
};
|
|
943
|
+
const listing$g = {
|
|
944
|
+
addOrder: "Add order"
|
|
945
|
+
};
|
|
946
|
+
const actions$c = {
|
|
947
|
+
view: "View",
|
|
948
|
+
"delete": "Delete",
|
|
949
|
+
cancel: "Cancel"
|
|
950
|
+
};
|
|
951
|
+
const dialogs$5 = {
|
|
952
|
+
warning: "Warning"
|
|
953
|
+
};
|
|
889
954
|
const administrationOrder = {
|
|
890
955
|
detail: detail$i,
|
|
891
956
|
contextMenu: contextMenu$1,
|
|
892
|
-
tabs: tabs$8
|
|
957
|
+
tabs: tabs$8,
|
|
958
|
+
listing: listing$g,
|
|
959
|
+
actions: actions$c,
|
|
960
|
+
dialogs: dialogs$5
|
|
893
961
|
};
|
|
894
962
|
|
|
895
963
|
const common$a = {
|
|
@@ -921,7 +989,7 @@ const cards$1 = {
|
|
|
921
989
|
const headings$4 = {
|
|
922
990
|
promotionCodes: "Promotion codes"
|
|
923
991
|
};
|
|
924
|
-
const actions$
|
|
992
|
+
const actions$b = {
|
|
925
993
|
addPromotion: "Add promotion",
|
|
926
994
|
addDiscount: "Add discount",
|
|
927
995
|
duplicate: "Duplicate",
|
|
@@ -937,7 +1005,7 @@ const administrationPromotion = {
|
|
|
937
1005
|
tabs: tabs$7,
|
|
938
1006
|
cards: cards$1,
|
|
939
1007
|
headings: headings$4,
|
|
940
|
-
actions: actions$
|
|
1008
|
+
actions: actions$b,
|
|
941
1009
|
fields: fields$8
|
|
942
1010
|
};
|
|
943
1011
|
|
|
@@ -976,7 +1044,7 @@ const common$9 = {
|
|
|
976
1044
|
name: "Name",
|
|
977
1045
|
availabilityRule: "Availability rule"
|
|
978
1046
|
};
|
|
979
|
-
const listing$
|
|
1047
|
+
const listing$f = {
|
|
980
1048
|
addShippingMethod: "Add shipping method"
|
|
981
1049
|
};
|
|
982
1050
|
const detail$g = {
|
|
@@ -986,17 +1054,17 @@ const methods$4 = {
|
|
|
986
1054
|
express: "Express",
|
|
987
1055
|
customShippingMethod: "Custom shipping method"
|
|
988
1056
|
};
|
|
989
|
-
const dialogs$
|
|
1057
|
+
const dialogs$4 = {
|
|
990
1058
|
warning: "Warning",
|
|
991
1059
|
cancel: "Cancel",
|
|
992
1060
|
"delete": "Delete"
|
|
993
1061
|
};
|
|
994
1062
|
const administrationShipping = {
|
|
995
1063
|
common: common$9,
|
|
996
|
-
listing: listing$
|
|
1064
|
+
listing: listing$f,
|
|
997
1065
|
detail: detail$g,
|
|
998
1066
|
methods: methods$4,
|
|
999
|
-
dialogs: dialogs$
|
|
1067
|
+
dialogs: dialogs$4
|
|
1000
1068
|
};
|
|
1001
1069
|
|
|
1002
1070
|
const tabs$6 = {
|
|
@@ -1017,7 +1085,7 @@ const administrationYourProfile = {
|
|
|
1017
1085
|
buttons: buttons$b
|
|
1018
1086
|
};
|
|
1019
1087
|
|
|
1020
|
-
const listing$
|
|
1088
|
+
const listing$e = {
|
|
1021
1089
|
customerGroups: "Customer groups"
|
|
1022
1090
|
};
|
|
1023
1091
|
const detail$f = {
|
|
@@ -1033,7 +1101,7 @@ const create$8 = {
|
|
|
1033
1101
|
seoMetaDescription: "SEO meta description"
|
|
1034
1102
|
};
|
|
1035
1103
|
const administrationCustomerGroup = {
|
|
1036
|
-
listing: listing$
|
|
1104
|
+
listing: listing$e,
|
|
1037
1105
|
detail: detail$f,
|
|
1038
1106
|
create: create$8
|
|
1039
1107
|
};
|
|
@@ -1131,7 +1199,7 @@ const bulkEdit$2 = {
|
|
|
1131
1199
|
success: "Bulk edit - Success",
|
|
1132
1200
|
close: "Close"
|
|
1133
1201
|
};
|
|
1134
|
-
const listing$
|
|
1202
|
+
const listing$d = {
|
|
1135
1203
|
bulkEdit: "Bulk edit",
|
|
1136
1204
|
startBulkEdit: "Start bulk edit"
|
|
1137
1205
|
};
|
|
@@ -1160,7 +1228,7 @@ const administrationProduct = {
|
|
|
1160
1228
|
flows: flows$1,
|
|
1161
1229
|
errors: errors$3,
|
|
1162
1230
|
bulkEdit: bulkEdit$2,
|
|
1163
|
-
listing: listing$
|
|
1231
|
+
listing: listing$d,
|
|
1164
1232
|
tabs: tabs$5,
|
|
1165
1233
|
buttons: buttons$8,
|
|
1166
1234
|
modals: modals$2
|
|
@@ -1282,7 +1350,7 @@ const common$7 = {
|
|
|
1282
1350
|
street: "Street",
|
|
1283
1351
|
postalCode: "Postal code"
|
|
1284
1352
|
};
|
|
1285
|
-
const actions$
|
|
1353
|
+
const actions$a = {
|
|
1286
1354
|
editAddress: "Edit address",
|
|
1287
1355
|
useAsDefaultBilling: "Use as default billing address",
|
|
1288
1356
|
useAsDefaultShipping: "Use as default shipping address",
|
|
@@ -1293,7 +1361,7 @@ const messages$4 = {
|
|
|
1293
1361
|
};
|
|
1294
1362
|
const storefrontAddress = {
|
|
1295
1363
|
common: common$7,
|
|
1296
|
-
actions: actions$
|
|
1364
|
+
actions: actions$a,
|
|
1297
1365
|
messages: messages$4
|
|
1298
1366
|
};
|
|
1299
1367
|
|
|
@@ -1350,7 +1418,7 @@ const review$1 = {
|
|
|
1350
1418
|
emptyText: "No reviews found. Share your insights with others.",
|
|
1351
1419
|
submitMessage: "Thank you for submitting your review. We will examine the review and eventually unlock it, please be patient."
|
|
1352
1420
|
};
|
|
1353
|
-
const listing$
|
|
1421
|
+
const listing$c = {
|
|
1354
1422
|
sorting: "Sorting",
|
|
1355
1423
|
noProductsFound: "No products found."
|
|
1356
1424
|
};
|
|
@@ -1361,7 +1429,7 @@ const storefrontProduct = {
|
|
|
1361
1429
|
removeFromWishlist: removeFromWishlist$1,
|
|
1362
1430
|
deliveryTime: deliveryTime$1,
|
|
1363
1431
|
review: review$1,
|
|
1364
|
-
listing: listing$
|
|
1432
|
+
listing: listing$c
|
|
1365
1433
|
};
|
|
1366
1434
|
|
|
1367
1435
|
const pageNotFound$1 = {
|
|
@@ -1482,7 +1550,7 @@ const storefrontLogin = {
|
|
|
1482
1550
|
register: register$2
|
|
1483
1551
|
};
|
|
1484
1552
|
|
|
1485
|
-
const actions$
|
|
1553
|
+
const actions$9 = {
|
|
1486
1554
|
cancelOrder: "Cancel order",
|
|
1487
1555
|
back: "Back"
|
|
1488
1556
|
};
|
|
@@ -1491,7 +1559,7 @@ const shipping$1 = {
|
|
|
1491
1559
|
express: "Express"
|
|
1492
1560
|
};
|
|
1493
1561
|
const storefrontOrder = {
|
|
1494
|
-
actions: actions$
|
|
1562
|
+
actions: actions$9,
|
|
1495
1563
|
shipping: shipping$1
|
|
1496
1564
|
};
|
|
1497
1565
|
|
|
@@ -1509,13 +1577,13 @@ const methods$3 = {
|
|
|
1509
1577
|
paidInAdvance: "Paid in advance",
|
|
1510
1578
|
invoice: "Invoice"
|
|
1511
1579
|
};
|
|
1512
|
-
const actions$
|
|
1580
|
+
const actions$8 = {
|
|
1513
1581
|
change: "Change",
|
|
1514
1582
|
completePayment: "Complete payment"
|
|
1515
1583
|
};
|
|
1516
1584
|
const storefrontPayment = {
|
|
1517
1585
|
methods: methods$3,
|
|
1518
|
-
actions: actions$
|
|
1586
|
+
actions: actions$8
|
|
1519
1587
|
};
|
|
1520
1588
|
|
|
1521
1589
|
const passwordRecovery$1 = "Password recovery";
|
|
@@ -1560,7 +1628,7 @@ const general$5 = {
|
|
|
1560
1628
|
"delete": "Löschen",
|
|
1561
1629
|
customFields: "Feld"
|
|
1562
1630
|
};
|
|
1563
|
-
const actions$
|
|
1631
|
+
const actions$7 = {
|
|
1564
1632
|
createCategory: "Kategorie erstellen",
|
|
1565
1633
|
addLandingPage: "Landingpage hinzufügen",
|
|
1566
1634
|
configureHomePage: "Startseite konfigurieren",
|
|
@@ -1591,7 +1659,7 @@ const entities = {
|
|
|
1591
1659
|
};
|
|
1592
1660
|
const deAdministrationCategory = {
|
|
1593
1661
|
general: general$5,
|
|
1594
|
-
actions: actions$
|
|
1662
|
+
actions: actions$7,
|
|
1595
1663
|
tabs: tabs$4,
|
|
1596
1664
|
fields: fields$4,
|
|
1597
1665
|
headings: headings$2,
|
|
@@ -1599,7 +1667,7 @@ const deAdministrationCategory = {
|
|
|
1599
1667
|
entities: entities
|
|
1600
1668
|
};
|
|
1601
1669
|
|
|
1602
|
-
const listing$
|
|
1670
|
+
const listing$b = {
|
|
1603
1671
|
customers: "Kunden",
|
|
1604
1672
|
bulkEdit: "Massenbearbeitung",
|
|
1605
1673
|
startBulkEdit: "Massenbearbeitung starten",
|
|
@@ -1638,12 +1706,12 @@ const bulkEdit$1 = {
|
|
|
1638
1706
|
}
|
|
1639
1707
|
};
|
|
1640
1708
|
const deAdministrationCustomer = {
|
|
1641
|
-
listing: listing$
|
|
1709
|
+
listing: listing$b,
|
|
1642
1710
|
detail: detail$d,
|
|
1643
1711
|
bulkEdit: bulkEdit$1
|
|
1644
1712
|
};
|
|
1645
1713
|
|
|
1646
|
-
const listing$
|
|
1714
|
+
const listing$a = {
|
|
1647
1715
|
addCustomerGroup: "Kundengruppe hinzufügen",
|
|
1648
1716
|
customerGroups: "Kundengruppen"
|
|
1649
1717
|
};
|
|
@@ -1665,7 +1733,7 @@ const detail$c = {
|
|
|
1665
1733
|
technicalUrl: "Technische URL"
|
|
1666
1734
|
};
|
|
1667
1735
|
const deAdministrationCustomerGroup = {
|
|
1668
|
-
listing: listing$
|
|
1736
|
+
listing: listing$a,
|
|
1669
1737
|
create: create$7,
|
|
1670
1738
|
detail: detail$c
|
|
1671
1739
|
};
|
|
@@ -1678,7 +1746,7 @@ const common$5 = {
|
|
|
1678
1746
|
customFieldSet: "Eigene Felder Set",
|
|
1679
1747
|
labelEnglishGB: "Label (English (GB))"
|
|
1680
1748
|
};
|
|
1681
|
-
const listing$
|
|
1749
|
+
const listing$9 = {
|
|
1682
1750
|
addCustomField: "Eigenes Feld hinzufügen",
|
|
1683
1751
|
addNewSet: "Hinzufügen"
|
|
1684
1752
|
};
|
|
@@ -1706,24 +1774,24 @@ const detail$b = {
|
|
|
1706
1774
|
const general$4 = {
|
|
1707
1775
|
customFields: "Feld"
|
|
1708
1776
|
};
|
|
1709
|
-
const actions$
|
|
1777
|
+
const actions$6 = {
|
|
1710
1778
|
edit: "Bearbeiten",
|
|
1711
1779
|
"delete": "Löschen",
|
|
1712
1780
|
cancel: "Abbrechen",
|
|
1713
1781
|
applyChanges: "Anwenden"
|
|
1714
1782
|
};
|
|
1715
|
-
const dialogs$
|
|
1783
|
+
const dialogs$3 = {
|
|
1716
1784
|
warning: "Warnung",
|
|
1717
1785
|
deleteCustomField: "Löschen"
|
|
1718
1786
|
};
|
|
1719
1787
|
const deAdministrationCustomField = {
|
|
1720
1788
|
common: common$5,
|
|
1721
|
-
listing: listing$
|
|
1789
|
+
listing: listing$9,
|
|
1722
1790
|
create: create$6,
|
|
1723
1791
|
detail: detail$b,
|
|
1724
1792
|
general: general$4,
|
|
1725
|
-
actions: actions$
|
|
1726
|
-
dialogs: dialogs$
|
|
1793
|
+
actions: actions$6,
|
|
1794
|
+
dialogs: dialogs$3
|
|
1727
1795
|
};
|
|
1728
1796
|
|
|
1729
1797
|
const dataSharing = {
|
|
@@ -1740,10 +1808,15 @@ const shopwareServices = {
|
|
|
1740
1808
|
const userMenu = {
|
|
1741
1809
|
logout: "Abmelden"
|
|
1742
1810
|
};
|
|
1811
|
+
const order = {
|
|
1812
|
+
orderTitle: "Bestellungen",
|
|
1813
|
+
orderOverview: "Übersicht"
|
|
1814
|
+
};
|
|
1743
1815
|
const deAdministrationDashboard = {
|
|
1744
1816
|
dataSharing: dataSharing,
|
|
1745
1817
|
shopwareServices: shopwareServices,
|
|
1746
|
-
userMenu: userMenu
|
|
1818
|
+
userMenu: userMenu,
|
|
1819
|
+
order: order
|
|
1747
1820
|
};
|
|
1748
1821
|
|
|
1749
1822
|
const buttons$6 = {
|
|
@@ -1763,7 +1836,7 @@ const deAdministrationDataSharing = {
|
|
|
1763
1836
|
headlines: headlines
|
|
1764
1837
|
};
|
|
1765
1838
|
|
|
1766
|
-
const listing$
|
|
1839
|
+
const listing$8 = {
|
|
1767
1840
|
addDocument: "Dokument hinzufügen"
|
|
1768
1841
|
};
|
|
1769
1842
|
const types = {
|
|
@@ -1774,7 +1847,7 @@ const detail$a = {
|
|
|
1774
1847
|
save: "Speichern"
|
|
1775
1848
|
};
|
|
1776
1849
|
const deAdministrationDocument = {
|
|
1777
|
-
listing: listing$
|
|
1850
|
+
listing: listing$8,
|
|
1778
1851
|
types: types,
|
|
1779
1852
|
detail: detail$a
|
|
1780
1853
|
};
|
|
@@ -1821,7 +1894,7 @@ const deAdministrationFirstRunWizard = {
|
|
|
1821
1894
|
regions: regions
|
|
1822
1895
|
};
|
|
1823
1896
|
|
|
1824
|
-
const listing$
|
|
1897
|
+
const listing$7 = {
|
|
1825
1898
|
addFlow: "Flow hinzufügen",
|
|
1826
1899
|
"delete": "Löschen",
|
|
1827
1900
|
downloadFlow: "Herunterladen",
|
|
@@ -1857,7 +1930,7 @@ const messages$2 = {
|
|
|
1857
1930
|
deleteConfirmation: "Löschen"
|
|
1858
1931
|
};
|
|
1859
1932
|
const deAdministrationFlowBuilder = {
|
|
1860
|
-
listing: listing$
|
|
1933
|
+
listing: listing$7,
|
|
1861
1934
|
create: create$5,
|
|
1862
1935
|
detail: detail$9,
|
|
1863
1936
|
templates: templates,
|
|
@@ -1897,7 +1970,7 @@ const deAdministrationLandingPage = {
|
|
|
1897
1970
|
layout: layout
|
|
1898
1971
|
};
|
|
1899
1972
|
|
|
1900
|
-
const listing$
|
|
1973
|
+
const listing$6 = {
|
|
1901
1974
|
createNewLayout: "Neues Layout erstellen"
|
|
1902
1975
|
};
|
|
1903
1976
|
const create$3 = {
|
|
@@ -1921,7 +1994,7 @@ const detail$7 = {
|
|
|
1921
1994
|
layoutAssignment: "Layout-Zuordnung"
|
|
1922
1995
|
};
|
|
1923
1996
|
const deAdministrationLayout = {
|
|
1924
|
-
listing: listing$
|
|
1997
|
+
listing: listing$6,
|
|
1925
1998
|
create: create$3,
|
|
1926
1999
|
detail: detail$7
|
|
1927
2000
|
};
|
|
@@ -1937,7 +2010,7 @@ const deAdministrationLogin = {
|
|
|
1937
2010
|
loginButton: loginButton$1
|
|
1938
2011
|
};
|
|
1939
2012
|
|
|
1940
|
-
const listing$
|
|
2013
|
+
const listing$5 = {
|
|
1941
2014
|
addManufacturer: "Hersteller hinzufügen"
|
|
1942
2015
|
};
|
|
1943
2016
|
const create$2 = {
|
|
@@ -1949,20 +2022,20 @@ const create$2 = {
|
|
|
1949
2022
|
const detail$6 = {
|
|
1950
2023
|
customFields: "Zusatzfelder"
|
|
1951
2024
|
};
|
|
1952
|
-
const actions$
|
|
2025
|
+
const actions$5 = {
|
|
1953
2026
|
edit: "Bearbeiten",
|
|
1954
2027
|
"delete": "Löschen",
|
|
1955
2028
|
cancel: "Abbrechen"
|
|
1956
2029
|
};
|
|
1957
|
-
const dialogs$
|
|
2030
|
+
const dialogs$2 = {
|
|
1958
2031
|
warning: "Warnung"
|
|
1959
2032
|
};
|
|
1960
2033
|
const deAdministrationManufacturer = {
|
|
1961
|
-
listing: listing$
|
|
2034
|
+
listing: listing$5,
|
|
1962
2035
|
create: create$2,
|
|
1963
2036
|
detail: detail$6,
|
|
1964
|
-
actions: actions$
|
|
1965
|
-
dialogs: dialogs$
|
|
2037
|
+
actions: actions$5,
|
|
2038
|
+
dialogs: dialogs$2
|
|
1966
2039
|
};
|
|
1967
2040
|
|
|
1968
2041
|
const detail$5 = {
|
|
@@ -1978,10 +2051,24 @@ const tabs$3 = {
|
|
|
1978
2051
|
details: "Details",
|
|
1979
2052
|
documents: "Dokumente"
|
|
1980
2053
|
};
|
|
2054
|
+
const listing$4 = {
|
|
2055
|
+
addOrder: "Bestellung anlegen"
|
|
2056
|
+
};
|
|
2057
|
+
const actions$4 = {
|
|
2058
|
+
view: "Anzeigen",
|
|
2059
|
+
"delete": "Löschen",
|
|
2060
|
+
cancel: "Abbrechen"
|
|
2061
|
+
};
|
|
2062
|
+
const dialogs$1 = {
|
|
2063
|
+
warning: "Warnung"
|
|
2064
|
+
};
|
|
1981
2065
|
const deAdministrationOrder = {
|
|
1982
2066
|
detail: detail$5,
|
|
1983
2067
|
contextMenu: contextMenu,
|
|
1984
|
-
tabs: tabs$3
|
|
2068
|
+
tabs: tabs$3,
|
|
2069
|
+
listing: listing$4,
|
|
2070
|
+
actions: actions$4,
|
|
2071
|
+
dialogs: dialogs$1
|
|
1985
2072
|
};
|
|
1986
2073
|
|
|
1987
2074
|
const common$4 = {
|
|
@@ -7678,14 +7765,16 @@ class CustomerDetail {
|
|
|
7678
7765
|
tagItems;
|
|
7679
7766
|
page;
|
|
7680
7767
|
instanceMeta;
|
|
7768
|
+
customerEmail;
|
|
7681
7769
|
constructor(page, instanceMeta) {
|
|
7682
7770
|
this.page = page;
|
|
7683
7771
|
this.instanceMeta = instanceMeta;
|
|
7684
7772
|
this.editButton = page.getByRole("button", { name: translate("administration:customer:detail.edit") });
|
|
7685
|
-
this.generalTab = page.getByRole("
|
|
7773
|
+
this.generalTab = page.getByRole("tab", { name: translate("administration:customer:detail.general") });
|
|
7686
7774
|
this.addressesTab = page.getByRole("tab", { name: translate("administration:customer:detail.addresses") });
|
|
7687
7775
|
this.ordersTab = page.getByRole("tab", { name: translate("administration:customer:detail.orders") });
|
|
7688
7776
|
this.accountCard = page.locator(".sw-customer-card");
|
|
7777
|
+
this.customerEmail = page.locator(".sw-customer-card-email-link");
|
|
7689
7778
|
if (satisfies(instanceMeta.version, "<6.7")) {
|
|
7690
7779
|
this.customFieldCard = page.locator(".sw-card").getByText(translate("administration:customField:general.customFields"));
|
|
7691
7780
|
} else {
|
|
@@ -8227,6 +8316,7 @@ class Dashboard {
|
|
|
8227
8316
|
adminMenuView;
|
|
8228
8317
|
adminMenuCatalog;
|
|
8229
8318
|
adminMenuOrder;
|
|
8319
|
+
adminMenuOrderOverview;
|
|
8230
8320
|
adminMenuCustomer;
|
|
8231
8321
|
adminMenuContent;
|
|
8232
8322
|
adminMenuMarketing;
|
|
@@ -8257,6 +8347,7 @@ class Dashboard {
|
|
|
8257
8347
|
this.contentView = page.locator(".sw-desktop__content");
|
|
8258
8348
|
this.adminMenuCatalog = page.locator(".sw-catalogue");
|
|
8259
8349
|
this.adminMenuOrder = page.locator(".sw-order");
|
|
8350
|
+
this.adminMenuOrderOverview = this.adminMenuOrder.getByTitle(translate("administration:dashboard:order.orderOverview"));
|
|
8260
8351
|
this.adminMenuCustomer = page.locator(".sw-customer");
|
|
8261
8352
|
this.adminMenuContent = page.locator(".sw-content");
|
|
8262
8353
|
this.adminMenuMarketing = page.locator(".sw-marketing");
|
|
@@ -9697,6 +9788,66 @@ class SalesChannelDetail {
|
|
|
9697
9788
|
}
|
|
9698
9789
|
}
|
|
9699
9790
|
|
|
9791
|
+
class OrderListing {
|
|
9792
|
+
addOrderButton;
|
|
9793
|
+
orderRows;
|
|
9794
|
+
page;
|
|
9795
|
+
instanceMeta;
|
|
9796
|
+
constructor(page, instanceMeta) {
|
|
9797
|
+
this.page = page;
|
|
9798
|
+
this.instanceMeta = instanceMeta;
|
|
9799
|
+
this.addOrderButton = page.getByText(translate("administration:order:listing.addOrder"));
|
|
9800
|
+
this.orderRows = page.getByRole("row");
|
|
9801
|
+
}
|
|
9802
|
+
async getLineItemByOrderNumber(orderNumber) {
|
|
9803
|
+
let orderDeliveryStateText;
|
|
9804
|
+
let orderPaymentStateText;
|
|
9805
|
+
let orderDeliveryAddressText;
|
|
9806
|
+
const lineItem = this.page.getByRole("row").filter({ hasText: orderNumber });
|
|
9807
|
+
const orderNumberText = lineItem.getByText(orderNumber);
|
|
9808
|
+
const orderCustomerNameText = lineItem.locator(".sw-data-grid__cell--orderCustomer-firstName");
|
|
9809
|
+
if (satisfies(this.instanceMeta.version, "<=6.7.0.0")) {
|
|
9810
|
+
orderDeliveryAddressText = lineItem.locator(".sw-order-list__delivery_address");
|
|
9811
|
+
orderPaymentStateText = lineItem.locator(".sw-data-grid__cell--transactions-last\\(\\)-stateMachineState-name");
|
|
9812
|
+
orderDeliveryStateText = lineItem.locator(".sw-data-grid__cell--deliveries\\[0\\]-stateMachineState-name");
|
|
9813
|
+
} else {
|
|
9814
|
+
orderDeliveryStateText = lineItem.locator(".sw-data-grid__cell--primaryOrderDelivery-stateMachineState-name");
|
|
9815
|
+
orderPaymentStateText = lineItem.locator(".sw-data-grid__cell--primaryOrderTransaction-stateMachineState-name");
|
|
9816
|
+
orderDeliveryAddressText = lineItem.locator(".sw-data-grid__cell--primaryOrderDelivery-shippingOrderAddress-street");
|
|
9817
|
+
}
|
|
9818
|
+
const orderTotalAmountText = lineItem.locator(".sw-data-grid__cell--amountTotal");
|
|
9819
|
+
const orderStateText = lineItem.locator(".sw-data-grid__cell--stateMachineState-name");
|
|
9820
|
+
const orderDateText = lineItem.locator(".sw-data-grid__cell--orderDateTime");
|
|
9821
|
+
const orderCheckbox = lineItem.locator(".sw-data-grid__cell--selection");
|
|
9822
|
+
const orderContextButton = lineItem.locator(".sw-context-button__button");
|
|
9823
|
+
const orderViewButton = this.page.locator(".sw-context-menu__content").getByRole("link", { name: translate("administration:order:actions.view") });
|
|
9824
|
+
const orderDeleteButton = this.page.locator(".sw-context-menu__content").getByRole("link", { name: translate("administration:order:actions.delete") });
|
|
9825
|
+
const warningDialog = this.page.getByRole("dialog", { name: translate("administration:order:dialogs.warning") });
|
|
9826
|
+
const warningDialogCancelButton = warningDialog.getByRole("button", { name: translate("administration:order:actions.cancel") });
|
|
9827
|
+
const warningDialogDeleteButton = warningDialog.getByRole("button", { name: translate("administration:order:actions.delete") });
|
|
9828
|
+
return {
|
|
9829
|
+
orderNumberText,
|
|
9830
|
+
orderCustomerNameText,
|
|
9831
|
+
orderDeliveryAddressText,
|
|
9832
|
+
orderTotalAmountText,
|
|
9833
|
+
orderStateText,
|
|
9834
|
+
orderPaymentStateText,
|
|
9835
|
+
orderDeliveryStateText,
|
|
9836
|
+
orderDateText,
|
|
9837
|
+
orderCheckbox,
|
|
9838
|
+
orderContextButton,
|
|
9839
|
+
orderViewButton,
|
|
9840
|
+
orderDeleteButton,
|
|
9841
|
+
warningDialog,
|
|
9842
|
+
warningDialogCancelButton,
|
|
9843
|
+
warningDialogDeleteButton
|
|
9844
|
+
};
|
|
9845
|
+
}
|
|
9846
|
+
url() {
|
|
9847
|
+
return `#/sw/order/index`;
|
|
9848
|
+
}
|
|
9849
|
+
}
|
|
9850
|
+
|
|
9700
9851
|
const AdminPageObjects = {
|
|
9701
9852
|
ProductDetail,
|
|
9702
9853
|
OrderDetail,
|
|
@@ -9746,7 +9897,8 @@ const AdminPageObjects = {
|
|
|
9746
9897
|
MediaListing,
|
|
9747
9898
|
LayoutListing,
|
|
9748
9899
|
ListingPageLayoutDetail,
|
|
9749
|
-
LayoutCreate
|
|
9900
|
+
LayoutCreate,
|
|
9901
|
+
OrderListing
|
|
9750
9902
|
};
|
|
9751
9903
|
const test$6 = test$e.extend({
|
|
9752
9904
|
AdminProductDetail: async ({ AdminPage, InstanceMeta }, use) => {
|
|
@@ -9895,6 +10047,9 @@ const test$6 = test$e.extend({
|
|
|
9895
10047
|
},
|
|
9896
10048
|
AdminSalesChannelDetail: async ({ AdminPage }, use) => {
|
|
9897
10049
|
await use(new SalesChannelDetail(AdminPage));
|
|
10050
|
+
},
|
|
10051
|
+
AdminOrderListing: async ({ AdminPage, InstanceMeta }, use) => {
|
|
10052
|
+
await use(new OrderListing(AdminPage, InstanceMeta));
|
|
9898
10053
|
}
|
|
9899
10054
|
});
|
|
9900
10055
|
|