@umbraco/playwright-testhelpers 2.0.0-beta.81 → 2.0.0-beta.83
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/lib/helpers/ApiHelpers.d.ts +3 -0
- package/dist/lib/helpers/ApiHelpers.js +50 -11
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ContentUiHelper.d.ts +34 -0
- package/dist/lib/helpers/ContentUiHelper.js +102 -1
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +2 -0
- package/dist/lib/helpers/DataTypeApiHelper.js +66 -0
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.js +4 -4
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.js +1 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentApiHelper.d.ts +1 -0
- package/dist/lib/helpers/DocumentApiHelper.js +5 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js +1 -1
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +5 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +81 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
- package/dist/lib/helpers/LoginApiHelper.d.ts +3 -2
- package/dist/lib/helpers/LoginApiHelper.js +25 -3
- package/dist/lib/helpers/LoginApiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaUiHelper.d.ts +0 -8
- package/dist/lib/helpers/MediaUiHelper.js +1 -39
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberGroupUiHelper.d.ts +2 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +9 -1
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.js +15 -15
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +3 -1
- package/dist/lib/helpers/PartialViewUiHelper.js +7 -1
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.js +2 -2
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.js +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +17 -7
- package/dist/lib/helpers/UiBaseLocators.js +66 -24
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +3 -1
- package/dist/lib/helpers/UserApiHelper.js +8 -1
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.js +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/UserUiHelper.js +1 -1
- package/dist/lib/helpers/UserUiHelper.js.map +1 -1
- package/dist/lib/helpers/testExtension.js +3 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -108,6 +108,11 @@ class UiBaseLocators {
|
|
|
108
108
|
containerChooseBtn;
|
|
109
109
|
documentTypeNode;
|
|
110
110
|
groupLabel;
|
|
111
|
+
containerSaveAndPublishBtn;
|
|
112
|
+
confirmTrashBtn;
|
|
113
|
+
recycleBinBtn;
|
|
114
|
+
recycleBinMenuItemCaretBtn;
|
|
115
|
+
recycleBinMenuItem;
|
|
111
116
|
constructor(page) {
|
|
112
117
|
this.page = page;
|
|
113
118
|
this.saveBtn = page.getByLabel('Save', { exact: true });
|
|
@@ -138,11 +143,12 @@ class UiBaseLocators {
|
|
|
138
143
|
this.createThreeDotsBtn = page.getByText('Create...', { exact: true });
|
|
139
144
|
this.chooseBtn = page.getByLabel('Choose', { exact: true });
|
|
140
145
|
this.containerChooseBtn = page.locator('#container').getByLabel('Choose');
|
|
146
|
+
this.containerSaveAndPublishBtn = page.locator('#container').getByLabel('Save and Publish');
|
|
141
147
|
this.newFolderThreeDotsBtn = page.getByLabel('New Folder...');
|
|
142
148
|
this.renameThreeDotsBtn = page.getByLabel('Rename...', { exact: true });
|
|
143
149
|
this.newNameTxt = page.getByRole('textbox', { name: 'Enter new name...' });
|
|
144
150
|
this.renameModalBtn = page.locator('umb-rename-modal').getByLabel('Rename');
|
|
145
|
-
this.createBtn = page.
|
|
151
|
+
this.createBtn = page.getByRole('button', { name: 'Create', exact: true });
|
|
146
152
|
this.successState = page.locator('[state="success"]');
|
|
147
153
|
this.chooseModalBtn = page.locator('umb-tree-picker-modal').getByLabel('Choose');
|
|
148
154
|
this.addBtn = page.getByLabel('Add', { exact: true });
|
|
@@ -213,10 +219,14 @@ class UiBaseLocators {
|
|
|
213
219
|
this.breadcrumbsTemplateModal = this.sidebarModal.locator('umb-template-workspace-editor uui-breadcrumbs');
|
|
214
220
|
this.documentTypeNode = page.locator('uui-ref-node-document-type');
|
|
215
221
|
this.groupLabel = page.getByLabel('Group', { exact: true });
|
|
222
|
+
this.confirmTrashBtn = page.locator('#confirm').getByLabel('Trash');
|
|
223
|
+
this.recycleBinBtn = page.getByLabel('Recycle Bin', { exact: true });
|
|
224
|
+
this.recycleBinMenuItem = page.locator('uui-menu-item[label="Recycle Bin"]');
|
|
225
|
+
this.recycleBinMenuItemCaretBtn = this.recycleBinMenuItem.locator('#caret-button');
|
|
216
226
|
}
|
|
217
227
|
async clickActionsMenuForName(name) {
|
|
218
228
|
await this.page.locator('[label="' + name + '"]').click();
|
|
219
|
-
await this.page.locator('[label="' + name + '"] >> [label="Open actions menu"]').first().click(
|
|
229
|
+
await this.page.locator('[label="' + name + '"] >> [label="Open actions menu"]').first().click();
|
|
220
230
|
}
|
|
221
231
|
async clickCaretButtonForName(name) {
|
|
222
232
|
await this.page.locator('div').filter({ hasText: name }).locator('#caret-button').click();
|
|
@@ -293,7 +303,7 @@ class UiBaseLocators {
|
|
|
293
303
|
async updateIcon(iconName) {
|
|
294
304
|
await this.iconBtn.click({ force: true });
|
|
295
305
|
await this.searchForTypeToFilterValue(iconName);
|
|
296
|
-
await this.clickLabelWithName(iconName, true);
|
|
306
|
+
await this.clickLabelWithName(iconName, true, true);
|
|
297
307
|
await this.clickSubmitButton();
|
|
298
308
|
}
|
|
299
309
|
async clickTextButtonWithName(name) {
|
|
@@ -336,8 +346,8 @@ class UiBaseLocators {
|
|
|
336
346
|
async clickDeleteThreeDotsButton() {
|
|
337
347
|
await this.deleteThreeDotsBtn.click();
|
|
338
348
|
}
|
|
339
|
-
async clickRemoveExactButton(
|
|
340
|
-
await this.removeExactBtn.click(
|
|
349
|
+
async clickRemoveExactButton() {
|
|
350
|
+
await this.removeExactBtn.click();
|
|
341
351
|
}
|
|
342
352
|
async clickRemoveButtonForName(name) {
|
|
343
353
|
await this.page.locator('[name="' + name + '"] [Label="Remove"]').click();
|
|
@@ -345,8 +355,8 @@ class UiBaseLocators {
|
|
|
345
355
|
async clickTrashIconButtonForName(name) {
|
|
346
356
|
await this.page.locator('[name="' + name + '"] [name="icon-trash"]').click();
|
|
347
357
|
}
|
|
348
|
-
async clickRemoveWithName(name
|
|
349
|
-
await this.page.getByLabel('Remove ' + name).click(
|
|
358
|
+
async clickRemoveWithName(name) {
|
|
359
|
+
await this.page.getByLabel('Remove ' + name).click();
|
|
350
360
|
}
|
|
351
361
|
async clickDisableButton() {
|
|
352
362
|
await this.disableBtn.click();
|
|
@@ -373,14 +383,14 @@ class UiBaseLocators {
|
|
|
373
383
|
}
|
|
374
384
|
async addQueryBuilderWithOrderByStatement(propertyAlias, isAscending) {
|
|
375
385
|
await (0, test_1.expect)(this.queryBuilderBtn).toBeVisible({ timeout: 10000 });
|
|
376
|
-
await this.queryBuilderBtn.click(
|
|
386
|
+
await this.queryBuilderBtn.click();
|
|
377
387
|
await (0, test_1.expect)(this.orderByPropertyAliasBtn).toBeVisible();
|
|
378
|
-
await this.orderByPropertyAliasBtn.click(
|
|
388
|
+
await this.orderByPropertyAliasBtn.click();
|
|
379
389
|
// Wait and choose property alias option
|
|
380
390
|
await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);
|
|
381
391
|
// Click to acending button if isAcsending is false
|
|
382
392
|
if (!isAscending) {
|
|
383
|
-
await this.ascendingBtn.click(
|
|
393
|
+
await this.ascendingBtn.click();
|
|
384
394
|
}
|
|
385
395
|
}
|
|
386
396
|
async addQueryBuilderWithWhereStatement(propertyAlias, operator, constrainValue) {
|
|
@@ -414,7 +424,7 @@ class UiBaseLocators {
|
|
|
414
424
|
async deletePropertyEditor(propertyEditorName) {
|
|
415
425
|
// We need to hover over the property to be able to see the delete button
|
|
416
426
|
await this.page.locator('uui-button').filter({ hasText: propertyEditorName }).getByLabel('Editor settings').hover();
|
|
417
|
-
await this.deleteLabelBtn.click(
|
|
427
|
+
await this.deleteLabelBtn.click();
|
|
418
428
|
}
|
|
419
429
|
async enterFolderName(folderName) {
|
|
420
430
|
await this.folderNameTxt.clear();
|
|
@@ -432,11 +442,11 @@ class UiBaseLocators {
|
|
|
432
442
|
await this.clickDeleteFolderButton();
|
|
433
443
|
await this.clickConfirmToDeleteButton();
|
|
434
444
|
}
|
|
435
|
-
async clickDeleteExactLabel(
|
|
436
|
-
await this.deleteExactLabelBtn.click(
|
|
445
|
+
async clickDeleteExactLabel() {
|
|
446
|
+
await this.deleteExactLabelBtn.click();
|
|
437
447
|
}
|
|
438
|
-
async clickDeleteExactButton(
|
|
439
|
-
await this.deleteExactBtn.click(
|
|
448
|
+
async clickDeleteExactButton() {
|
|
449
|
+
await this.deleteExactBtn.click();
|
|
440
450
|
}
|
|
441
451
|
async isTreeItemVisible(name, isVisible = true) {
|
|
442
452
|
await (0, test_1.expect)(this.page.locator('umb-tree-item').locator('[label="' + name + '"]')).toBeVisible({ visible: isVisible });
|
|
@@ -452,7 +462,7 @@ class UiBaseLocators {
|
|
|
452
462
|
}
|
|
453
463
|
async goToSettingsTreeItem(settingsTreeItemName) {
|
|
454
464
|
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
455
|
-
await this.page.getByLabel(settingsTreeItemName, { exact: true }).click(
|
|
465
|
+
await this.page.getByLabel(settingsTreeItemName, { exact: true }).click();
|
|
456
466
|
}
|
|
457
467
|
async clickDataElement(elementName, options = null) {
|
|
458
468
|
await this.page.click(`[data-element="${elementName}"]`, options);
|
|
@@ -463,12 +473,12 @@ class UiBaseLocators {
|
|
|
463
473
|
async isButtonWithNameVisible(name) {
|
|
464
474
|
await (0, test_1.expect)(this.page.getByRole('button', { name: name })).toBeVisible();
|
|
465
475
|
}
|
|
466
|
-
async clickLabelWithName(name,
|
|
476
|
+
async clickLabelWithName(name, isExact = true, toForce = false) {
|
|
467
477
|
await (0, test_1.expect)(this.page.getByLabel(name, { exact: isExact })).toBeVisible();
|
|
468
|
-
await this.page.getByLabel(name, { exact: isExact }).click({ force:
|
|
478
|
+
await this.page.getByLabel(name, { exact: isExact }).click({ force: toForce });
|
|
469
479
|
}
|
|
470
480
|
async clickButtonWithName(name) {
|
|
471
|
-
await this.page.getByRole('button', { name: name }).click(
|
|
481
|
+
await this.page.getByRole('button', { name: name }).click();
|
|
472
482
|
}
|
|
473
483
|
async isSuccessNotificationVisible(isVisible = true) {
|
|
474
484
|
return await (0, test_1.expect)(this.successNotification.first()).toBeVisible({ visible: isVisible });
|
|
@@ -482,9 +492,9 @@ class UiBaseLocators {
|
|
|
482
492
|
async clickCreateThreeDotsButton() {
|
|
483
493
|
await this.createThreeDotsBtn.click();
|
|
484
494
|
}
|
|
485
|
-
async clickCreateButton() {
|
|
495
|
+
async clickCreateButton(toForceClick = false) {
|
|
486
496
|
await (0, test_1.expect)(this.createBtn).toBeVisible();
|
|
487
|
-
await this.createBtn.click();
|
|
497
|
+
await this.createBtn.click({ force: toForceClick });
|
|
488
498
|
}
|
|
489
499
|
async clickAddButton() {
|
|
490
500
|
await this.addBtn.click();
|
|
@@ -539,6 +549,7 @@ class UiBaseLocators {
|
|
|
539
549
|
}
|
|
540
550
|
async enterTabName(tabName) {
|
|
541
551
|
await (0, test_1.expect)(this.unnamedTxt).toBeVisible();
|
|
552
|
+
await this.page.waitForTimeout(400);
|
|
542
553
|
await this.unnamedTxt.clear();
|
|
543
554
|
await this.unnamedTxt.fill(tabName);
|
|
544
555
|
}
|
|
@@ -593,7 +604,7 @@ class UiBaseLocators {
|
|
|
593
604
|
await this.newNameTxt.click();
|
|
594
605
|
await this.newNameTxt.clear();
|
|
595
606
|
await this.newNameTxt.fill(newName);
|
|
596
|
-
await this.renameModalBtn.click(
|
|
607
|
+
await this.renameModalBtn.click();
|
|
597
608
|
}
|
|
598
609
|
async isSuccessButtonWithTextVisible(text) {
|
|
599
610
|
return await (0, test_1.expect)(this.successState.filter({ hasText: text })).toBeVisible();
|
|
@@ -681,12 +692,12 @@ class UiBaseLocators {
|
|
|
681
692
|
async doesQueryResultHaveContentName(contentName) {
|
|
682
693
|
await (0, test_1.expect)(this.queryBuilderShowCode).toContainText(contentName);
|
|
683
694
|
}
|
|
684
|
-
async deleteGroup(groupName,
|
|
695
|
+
async deleteGroup(groupName, toForceClick = false) {
|
|
685
696
|
await this.page.waitForTimeout(1000);
|
|
686
697
|
const groups = this.page.locator('umb-content-type-design-editor-group').all();
|
|
687
698
|
for (const group of await groups) {
|
|
688
699
|
if (await group.getByLabel('Group', { exact: true }).inputValue() === groupName) {
|
|
689
|
-
await group.locator('[slot="header-actions"]').getByLabel('Delete').click({ force:
|
|
700
|
+
await group.locator('[slot="header-actions"]').getByLabel('Delete').click({ force: toForceClick });
|
|
690
701
|
return;
|
|
691
702
|
}
|
|
692
703
|
}
|
|
@@ -715,6 +726,37 @@ class UiBaseLocators {
|
|
|
715
726
|
async isFailedStateButtonVisible() {
|
|
716
727
|
await (0, test_1.expect)(this.failedStateButton).toBeVisible();
|
|
717
728
|
}
|
|
729
|
+
async clickContainerSaveAndPublishButton() {
|
|
730
|
+
await this.containerSaveAndPublishBtn.click();
|
|
731
|
+
}
|
|
732
|
+
async clickConfirmTrashButton() {
|
|
733
|
+
await this.confirmTrashBtn.click();
|
|
734
|
+
}
|
|
735
|
+
async reloadRecycleBin(containsItems = true) {
|
|
736
|
+
// We need to wait to be sure that the item is visible after reload
|
|
737
|
+
await (0, test_1.expect)(this.recycleBinMenuItem).toBeVisible();
|
|
738
|
+
await this.clickActionsMenuForName('Recycle Bin');
|
|
739
|
+
await this.clickReloadButton();
|
|
740
|
+
await (0, test_1.expect)(this.recycleBinMenuItem).toBeVisible();
|
|
741
|
+
// If the Recycle Bin does not contain any items,0 the caret button should not be visible. and we should not try to click it
|
|
742
|
+
if (!containsItems) {
|
|
743
|
+
await (0, test_1.expect)(this.recycleBinMenuItemCaretBtn).not.toBeVisible();
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
await (0, test_1.expect)(this.recycleBinMenuItemCaretBtn).toBeVisible();
|
|
747
|
+
const isCaretButtonOpen = await this.recycleBinMenuItem.getAttribute('show-children');
|
|
748
|
+
if (isCaretButtonOpen === null) {
|
|
749
|
+
// We need to wait before clicking the caret button. Because the reload might not have happened yet.
|
|
750
|
+
await this.clickCaretButtonForName('Recycle Bin');
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
async clickRecycleBinButton() {
|
|
754
|
+
await this.recycleBinBtn.click();
|
|
755
|
+
}
|
|
756
|
+
async isItemVisibleInRecycleBin(mediaItem, isVisible = true) {
|
|
757
|
+
await this.reloadRecycleBin(isVisible);
|
|
758
|
+
return (0, test_1.expect)(this.page.locator('[label="Recycle Bin"] [label="' + mediaItem + '"]')).toBeVisible({ visible: isVisible });
|
|
759
|
+
}
|
|
718
760
|
}
|
|
719
761
|
exports.UiBaseLocators = UiBaseLocators;
|
|
720
762
|
//# sourceMappingURL=UiBaseLocators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiBaseLocators.js","sourceRoot":"","sources":["../../../lib/helpers/UiBaseLocators.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class UiBaseLocators {\n public readonly page: Page;\n public readonly saveBtn: Locator;\n public readonly chooseBtn: Locator;\n public readonly submitBtn: Locator;\n public readonly createFolderBtn: Locator;\n public readonly breadcrumbBtn: Locator;\n public readonly deleteBtn: Locator;\n public readonly confirmToDeleteBtn: Locator;\n public readonly deleteLabelBtn: Locator;\n public readonly deleteExactLabelBtn: Locator;\n public readonly deleteExactBtn: Locator;\n public readonly confirmCreateFolderBtn: Locator;\n public readonly insertBtn: Locator;\n public readonly modalCaretBtn: Locator;\n public readonly queryBuilderBtn: Locator;\n public readonly queryBuilderOrderedBy: Locator;\n public readonly queryBuilderCreateDate: Locator;\n public readonly folderNameTxt: Locator;\n public readonly textAreaInputArea: Locator;\n public readonly wherePropertyAliasBtn: Locator;\n public readonly whereOperatorBtn: Locator;\n public readonly whereConstrainValueTxt: Locator;\n public readonly orderByPropertyAliasBtn: Locator;\n public readonly ascendingBtn: Locator;\n public readonly queryBuilderShowCode: Locator;\n public readonly createThreeDotsBtn: Locator;\n public readonly newFolderThreeDotsBtn: Locator;\n public readonly renameThreeDotsBtn: Locator;\n public readonly newNameTxt: Locator;\n public readonly renameModalBtn: Locator;\n public readonly createBtn: Locator;\n public readonly successState: Locator;\n public readonly chooseModalBtn: Locator;\n public readonly addBtn: Locator;\n public readonly renameFolderThreeDotsBtn: Locator;\n public readonly renameFolderBtn: Locator;\n public readonly updateFolderBtn: Locator;\n public readonly filterChooseBtn: Locator;\n public readonly updateBtn: Locator;\n public readonly changeBtn: Locator;\n public readonly propertyNameTxt: Locator;\n public readonly selectPropertyEditorBtn: Locator;\n public readonly addGroupBtn: Locator;\n public readonly iAmDoneReorderingBtn: Locator;\n public readonly reorderBtn: Locator;\n public readonly compositionsBtn: Locator;\n public readonly addTabBtn: Locator;\n public readonly descriptionBtn: Locator;\n public readonly enterDescriptionTxt: Locator;\n public readonly mandatorySlider: Locator;\n public readonly validation: Locator;\n public readonly regexTxt: Locator;\n public readonly regexMessageTxt: Locator;\n public readonly structureTabBtn: Locator;\n public readonly allowAtRootBtn: Locator;\n public readonly addPropertyBtn: Locator;\n public readonly typeToFilterSearchTxt: Locator;\n public readonly editorSettingsBtn: Locator;\n public readonly labelAboveBtn: Locator;\n public readonly unnamedTxt: Locator;\n public readonly deleteThreeDotsBtn: Locator;\n public readonly removeExactBtn: Locator;\n public readonly confirmBtn: Locator;\n public readonly disableBtn: Locator;\n public readonly confirmDisableBtn: Locator;\n public readonly enableBtn: Locator;\n public readonly confirmEnableBtn: Locator;\n public readonly iconBtn: Locator;\n public readonly aliasLockBtn: Locator;\n public readonly aliasNameTxt: Locator;\n public readonly deleteFolderThreeDotsBtn: Locator;\n public readonly createLink: Locator;\n public readonly insertValueBtn: Locator;\n public readonly insertPartialViewBtn: Locator;\n public readonly insertDictionaryItemBtn: Locator;\n public readonly chooseFieldDropDown: Locator;\n public readonly systemFieldsOption: Locator;\n public readonly chooseFieldValueDropDown: Locator;\n public readonly renameBtn: Locator;\n public readonly deleteFolderBtn: Locator;\n public readonly returnedItemsCount: Locator;\n public readonly chooseRootContentBtn: Locator;\n public readonly queryResults: Locator;\n public readonly reloadBtn: Locator;\n public readonly confirmToRemoveBtn: Locator;\n public readonly confirmToSubmitBtn: Locator;\n public readonly typeGroups: Locator;\n public readonly allowedChildNodesModal: Locator;\n public readonly configureAsACollectionBtn: Locator;\n public readonly errorNotification: Locator;\n public readonly confirmRenameFolderBtn: Locator;\n public readonly successNotification: Locator;\n public readonly leftArrowBtn: Locator;\n public readonly clickToUploadBtn: Locator;\n public readonly backOfficeHeader: Locator;\n public readonly failedStateButton: Locator;\n public readonly sidebarModal: Locator;\n public readonly enterAName: Locator;\n public readonly mediaCardItems: Locator;\n public readonly enterPropertyEditorDescriptionTxt: Locator;\n public readonly breadcrumbsTemplateModal: Locator;\n public readonly containerChooseBtn: Locator;\n public readonly documentTypeNode: Locator;\n public readonly groupLabel: Locator;\n \n constructor(page: Page) {\n this.page = page;\n this.saveBtn = page.getByLabel('Save', {exact: true});\n this.submitBtn = page.getByLabel('Submit');\n this.deleteExactLabelBtn = page.getByLabel('Delete', {exact: true});\n this.deleteExactBtn = page.getByRole('button', {name: 'Delete', exact: true});\n this.deleteLabelBtn = page.getByLabel('Delete');\n this.deleteBtn = page.getByRole('button', {name: 'Delete'});\n this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');\n this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create Folder');\n this.breadcrumbBtn = page.getByLabel('Breadcrumb');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.insertBtn = page.locator('uui-box uui-button').filter({hasText: 'Insert'});\n this.sidebarModal = page.locator('uui-modal-sidebar');\n this.modalCaretBtn = this.sidebarModal.locator('#caret-button');\n this.enterAName = page.getByLabel('Enter a name...', {exact: true});\n this.queryBuilderBtn = page.locator('#query-builder-button').getByLabel('Query builder');\n this.queryBuilderOrderedBy = page.locator('#property-alias-dropdown').getByLabel('Property alias');\n this.queryBuilderCreateDate = page.locator('#property-alias-dropdown').getByText('CreateDate').locator(\"..\");\n this.folderNameTxt = page.getByLabel('Enter a folder name');\n this.textAreaInputArea = page.locator('textarea.inputarea');\n this.wherePropertyAliasBtn = page.locator('#property-alias-dropdown');\n this.whereOperatorBtn = page.locator('#operator-dropdown');\n this.whereConstrainValueTxt = page.getByLabel('constrain value');\n this.orderByPropertyAliasBtn = page.locator('#sort-dropdown');\n this.ascendingBtn = page.locator('[key=\"template_ascending\"]');\n this.queryBuilderShowCode = page.locator('umb-code-block');\n this.createThreeDotsBtn = page.getByText('Create...', {exact: true});\n this.chooseBtn = page.getByLabel('Choose', {exact: true});\n this.containerChooseBtn = page.locator('#container').getByLabel('Choose');\n this.newFolderThreeDotsBtn = page.getByLabel('New Folder...');\n this.renameThreeDotsBtn = page.getByLabel('Rename...', {exact: true});\n this.newNameTxt = page.getByRole('textbox', {name: 'Enter new name...'});\n this.renameModalBtn = page.locator('umb-rename-modal').getByLabel('Rename');\n this.createBtn = page.getByText('Create', {exact: true});\n this.successState = page.locator('[state=\"success\"]');\n this.chooseModalBtn = page.locator('umb-tree-picker-modal').getByLabel('Choose');\n this.addBtn = page.getByLabel('Add', {exact: true});\n this.renameFolderThreeDotsBtn = page.getByLabel('Rename folder...');\n this.renameFolderBtn = page.getByLabel('Rename folder');\n this.confirmRenameFolderBtn = page.locator('#confirm').getByLabel('Rename folder');\n this.updateFolderBtn = page.getByLabel('Update folder');\n this.filterChooseBtn = page.locator('button').filter({hasText: 'Choose'});\n this.updateBtn = page.getByLabel('Update');\n this.changeBtn = page.getByLabel('Change');\n this.propertyNameTxt = page.locator('#name-input #input');\n this.selectPropertyEditorBtn = page.getByLabel('Select Property Editor');\n this.addGroupBtn = page.getByLabel('Add group', {exact: true});\n this.iAmDoneReorderingBtn = page.getByLabel('I am done reordering');\n this.reorderBtn = page.getByLabel('Reorder');\n this.compositionsBtn = page.getByLabel('Compositions');\n this.addTabBtn = page.getByLabel('Add tab');\n this.descriptionBtn = page.getByLabel('Description');\n this.enterDescriptionTxt = page.getByLabel('Enter a description...');\n this.mandatorySlider = page.locator('#mandatory #slider');\n this.validation = page.locator('#native');\n this.regexTxt = page.locator('input[name=\"pattern\"]');\n this.regexMessageTxt = page.locator('textarea[name=\"pattern-message\"]');\n this.structureTabBtn = page.locator('uui-tab').filter({hasText: 'Structure'}).locator('svg');\n this.allowAtRootBtn = page.locator('label').filter({hasText: 'Allow at root'});\n this.addPropertyBtn = page.getByLabel('Add property', {exact: true});\n this.typeToFilterSearchTxt = page.locator('[type=\"search\"] #input');\n this.editorSettingsBtn = page.getByLabel('Editor settings');\n this.labelAboveBtn = page.locator('button').filter({hasText: 'Label above'});\n this.unnamedTxt = page.getByRole('textbox', {name: 'Unnamed'});\n this.deleteThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete...');\n this.removeExactBtn = page.getByLabel('Remove', {exact: true});\n this.confirmBtn = page.getByLabel('Confirm');\n this.disableBtn = page.getByLabel('Disable', {exact: true});\n this.confirmDisableBtn = page.locator('#confirm').getByLabel('Disable');\n this.confirmToSubmitBtn = page.locator('#confirm').getByLabel('Submit');\n this.enableBtn = page.getByLabel('Enable');\n this.confirmEnableBtn = page.locator('#confirm').getByLabel('Enable');\n this.iconBtn = page.getByLabel('icon');\n this.aliasLockBtn = page.locator('#name #lock');\n this.aliasNameTxt = page.locator('#name').getByLabel('alias');\n this.deleteFolderThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete Folder...');\n this.createLink = page.getByRole('link', {name: 'Create'});\n this.insertValueBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertPageField\"]')});\n this.insertPartialViewBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertPartialView\"]')});\n this.insertDictionaryItemBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertDictionaryItem\"]')});\n this.chooseFieldDropDown = page.locator('#preview #expand-symbol-wrapper');\n this.systemFieldsOption = page.getByText('System fields');\n this.chooseFieldValueDropDown = page.locator('#value #expand-symbol-wrapper');\n this.renameBtn = page.locator('#action-modal').getByLabel('Rename');\n this.deleteFolderBtn = page.locator('#action-modal').getByLabel('Delete folder');\n this.returnedItemsCount = page.locator('#results-count');\n this.chooseRootContentBtn = page.getByLabel('Choose root document');\n this.queryResults = page.locator('query-results');\n this.reloadBtn = page.getByLabel('Reload', {exact: true});\n this.confirmToRemoveBtn = page.locator('#confirm').getByLabel('Remove');\n this.typeGroups = page.locator('umb-content-type-design-editor-group');\n this.allowedChildNodesModal = page.locator('umb-tree-picker-modal');\n this.configureAsACollectionBtn = page.getByLabel('Configure as a collection');\n this.errorNotification = page.locator('uui-toast-notification >> [color=\"danger\"]');\n this.successNotification = page.locator('uui-toast-notification >> [color=\"positive\"]');\n this.leftArrowBtn = page.locator('[name=\"icon-arrow-left\"] svg');\n this.clickToUploadBtn = page.locator('uui-file-dropzone').filter({hasText: 'Click to upload'});\n this.backOfficeHeader = page.locator('umb-backoffice-header');\n this.failedStateButton = page.locator('uui-button[state=\"failed\"]');\n this.mediaCardItems = page.locator('uui-card-media');\n this.enterPropertyEditorDescriptionTxt = this.sidebarModal.getByLabel('Enter a description...');\n this.breadcrumbsTemplateModal = this.sidebarModal.locator('umb-template-workspace-editor uui-breadcrumbs');\n this.documentTypeNode = page.locator('uui-ref-node-document-type');\n this.groupLabel = page.getByLabel('Group', {exact: true});\n }\n\n async clickActionsMenuForName(name: string) {\n await this.page.locator('[label=\"' + name + '\"]').click();\n await this.page.locator('[label=\"' + name + '\"] >> [label=\"Open actions menu\"]').first().click({force: true});\n }\n\n async clickCaretButtonForName(name: string) {\n await this.page.locator('div').filter({hasText: name}).locator('#caret-button').click();\n }\n\n async clickCaretButton() {\n await this.page.locator('#caret-button').click();\n }\n\n async reloadTree(treeName: string) {\n // Waits until the tree item is visible\n await expect(this.page.getByLabel(treeName, {exact: true})).toBeVisible();\n await this.page.waitForTimeout(500);\n await this.clickActionsMenuForName(treeName);\n await this.clickReloadButton();\n\n const menuItem = this.page.locator('uui-menu-item[label=\"' + treeName + '\"]');\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n // We need to wait before clicking the caret button. Because the reload might not have happend yet. \n // await this.page.waitForTimeout(500);\n await this.clickCaretButtonForName(treeName);\n }\n }\n\n async clickReloadButton() {\n await this.reloadBtn.click();\n }\n\n async clickSaveButton() {\n // This wait is necessary to avoid the save button is ignored\n await this.page.waitForTimeout(500);\n await expect(this.saveBtn).toBeVisible();\n await this.saveBtn.click();\n }\n\n async clickChooseButton() {\n await this.chooseBtn.click();\n }\n\n async clickChooseContainerButton() {\n await this.containerChooseBtn.click();\n }\n\n async clickFilterChooseButton() {\n await this.filterChooseBtn.click();\n }\n\n async clickRenameFolderThreeDotsButton() {\n await this.renameFolderThreeDotsBtn.click();\n }\n\n async clickRenameFolderButton() {\n await this.renameFolderBtn.click();\n }\n\n async clickConfirmRenameFolderButton() {\n await this.confirmRenameFolderBtn.click();\n }\n\n async clickUpdateFolderButton() {\n await this.updateFolderBtn.click();\n }\n\n async clickUpdateButton() {\n await this.updateBtn.click();\n }\n\n async clickSubmitButton() {\n await expect(this.submitBtn).toBeVisible();\n await this.submitBtn.click();\n }\n\n async clickConfirmToSubmitButton() {\n await this.confirmToSubmitBtn.click();\n }\n\n async clickChangeButton() {\n await this.changeBtn.click();\n }\n\n async clickExactLinkWithName(name: string) {\n await this.page.getByRole('link', {name: name, exact: true}).click();\n }\n\n async enterAliasName(aliasName: string) {\n // Unlocks alias\n await this.aliasLockBtn.click();\n await this.aliasNameTxt.clear();\n await this.aliasNameTxt.fill(aliasName);\n }\n\n async updateIcon(iconName: string) {\n await this.iconBtn.click({force: true});\n await this.searchForTypeToFilterValue(iconName);\n await this.clickLabelWithName(iconName, true);\n await this.clickSubmitButton();\n }\n\n async clickTextButtonWithName(name: string) {\n await expect(this.page.getByText(name, {exact: true})).toBeVisible();\n await this.page.getByText(name, {exact: true}).click();\n }\n\n async clickSelectPropertyEditorButton() {\n await expect(this.selectPropertyEditorBtn).toBeVisible();\n await this.selectPropertyEditorBtn.click();\n }\n\n async clickCreateFolderButton() {\n await this.createFolderBtn.click();\n }\n\n async enterAPropertyName(name: string) {\n await expect(this.propertyNameTxt).toBeVisible();\n await this.propertyNameTxt.fill(name);\n }\n\n async clickConfirmButton() {\n await this.confirmBtn.click();\n }\n\n async clickBreadcrumbButton() {\n await this.breadcrumbBtn.click();\n }\n\n async clickInsertButton() {\n await expect(this.insertBtn).toBeVisible();\n await this.insertBtn.click();\n }\n\n async clickDeleteButton() {\n await this.deleteBtn.click({force: true});\n }\n\n async clickConfirmToDeleteButton() {\n await this.confirmToDeleteBtn.click();\n }\n\n async clickDeleteFolderButton() {\n await this.deleteFolderBtn.click();\n }\n\n async clickConfirmCreateFolderButton() {\n await this.confirmCreateFolderBtn.click();\n }\n\n async clickDeleteThreeDotsButton() {\n await this.deleteThreeDotsBtn.click();\n }\n\n async clickRemoveExactButton(toForce: boolean = false) {\n await this.removeExactBtn.click({force: toForce});\n }\n\n async clickRemoveButtonForName(name: string) {\n await this.page.locator('[name=\"' + name + '\"] [Label=\"Remove\"]').click();\n }\n\n async clickTrashIconButtonForName(name: string) {\n await this.page.locator('[name=\"' + name + '\"] [name=\"icon-trash\"]').click();\n }\n\n async clickRemoveWithName(name: string, forceClick = false) {\n await this.page.getByLabel('Remove ' + name).click({force: forceClick});\n }\n\n async clickDisableButton() {\n await this.disableBtn.click();\n }\n\n async clickConfirmDisableButton() {\n await this.confirmDisableBtn.click();\n }\n\n async clickConfirmRemoveButton() {\n await this.confirmToRemoveBtn.click();\n }\n\n async clickEnableButton() {\n await this.enableBtn.click();\n }\n\n async clickConfirmEnableButton() {\n await this.confirmEnableBtn.click();\n }\n\n async insertDictionaryItem(dictionaryName: string) {\n await this.clickInsertButton();\n await expect(this.insertDictionaryItemBtn).toBeVisible();\n await this.insertDictionaryItemBtn.click();\n await expect(this.page.getByLabel(dictionaryName)).toBeVisible();\n await this.page.getByLabel(dictionaryName).click();\n await this.chooseBtn.click();\n }\n\n async addQueryBuilderWithOrderByStatement(propertyAlias: string, isAscending: boolean) {\n await expect(this.queryBuilderBtn).toBeVisible({timeout: 10000});\n await this.queryBuilderBtn.click({force: true});\n await expect(this.orderByPropertyAliasBtn).toBeVisible();\n await this.orderByPropertyAliasBtn.click({force: true});\n // Wait and choose property alias option \n await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);\n // Click to acending button if isAcsending is false\n if (!isAscending) {\n await this.ascendingBtn.click({force: true});\n }\n }\n\n async addQueryBuilderWithWhereStatement(propertyAlias: string, operator: string, constrainValue: string) {\n await expect(this.queryBuilderBtn).toBeVisible({timeout: 10000});\n await this.queryBuilderBtn.click({force: true});\n // Wait and choose property alias\n await expect(this.wherePropertyAliasBtn).toBeVisible();\n await this.wherePropertyAliasBtn.click();\n await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);\n // Wait and choose operator\n await expect(this.whereOperatorBtn).toBeVisible();\n await this.whereOperatorBtn.click();\n await this.waitAndSelectQueryBuilderDropDownList(operator);\n // Wait and choose constrain value and press Enter\n await expect(this.whereConstrainValueTxt).toBeVisible();\n await this.whereConstrainValueTxt.clear();\n await this.whereConstrainValueTxt.fill(constrainValue);\n await this.whereConstrainValueTxt.press('Enter');\n }\n\n async waitAndSelectQueryBuilderDropDownList(option: string) {\n const ddlOption = this.page.locator('[open]').locator('uui-combobox-list-option').filter({hasText: option}).first();\n await expect(ddlOption).toBeVisible({timeout: 10000});\n await ddlOption.click();\n }\n\n async createFolder(folderName: string) {\n await this.clickCreateButton();\n await this.clickNewFolderThreeDotsButton();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n \n async deletePropertyEditor(propertyEditorName: string) {\n // We need to hover over the property to be able to see the delete button\n await this.page.locator('uui-button').filter({hasText: propertyEditorName}).getByLabel('Editor settings').hover();\n await this.deleteLabelBtn.click({force: true});\n }\n\n async enterFolderName(folderName: string) {\n await this.folderNameTxt.clear();\n await this.folderNameTxt.fill(folderName);\n }\n\n async isTextWithExactNameVisible(name: string, isVisible = true) {\n return expect(this.page.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async isQueryBuilderCodeShown(code: string) {\n await expect(this.queryBuilderShowCode).toBeVisible();\n await this.queryBuilderShowCode.click();\n await expect(this.queryBuilderShowCode).toContainText(code, {timeout: 10000});\n }\n\n async deleteFolder() {\n await this.clickDeleteFolderButton();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickDeleteExactLabel(forceClick = false) {\n await this.deleteExactLabelBtn.click({force: forceClick});\n }\n\n async clickDeleteExactButton(forceClick = false) {\n await this.deleteExactBtn.click({force: forceClick});\n }\n\n async isTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n\n async doesTreeItemHaveTheCorrectIcon(name: string, icon: string) {\n return await expect(this.page.locator('umb-tree-item').filter({hasText: name}).locator('umb-icon').locator('[name=\"' + icon + '\"]')).toBeVisible();\n }\n\n async goToSection(sectionName: string) {\n for (let section in ConstantHelper.sections) {\n await expect(this.backOfficeHeader.getByRole('tab', {name: ConstantHelper.sections[section]})).toBeVisible({timeout: 30000});\n }\n await this.backOfficeHeader.getByRole('tab', {name: sectionName}).click();\n }\n\n async goToSettingsTreeItem(settingsTreeItemName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.getByLabel(settingsTreeItemName, {exact: true}).click({force: true});\n }\n\n async clickDataElement(elementName: string, options: any = null) {\n await this.page.click(`[data-element=\"${elementName}\"]`, options);\n }\n\n async getDataElement(elementName: string) {\n return this.page.locator(`[data-element=\"${elementName}\"]`);\n }\n\n async isButtonWithNameVisible(name: string) {\n await expect(this.page.getByRole('button', {name: name})).toBeVisible();\n }\n\n async clickLabelWithName(name: string, toForceClick = false, isExact: boolean = true) {\n await expect(this.page.getByLabel(name, {exact: isExact})).toBeVisible();\n await this.page.getByLabel(name, {exact: isExact}).click({force: toForceClick});\n }\n\n async clickButtonWithName(name: string) {\n await this.page.getByRole('button', {name: name}).click({force: true});\n }\n\n async isSuccessNotificationVisible(isVisible: boolean = true) {\n return await expect(this.successNotification.first()).toBeVisible({visible: isVisible});\n }\n\n async doesSuccessNotificationsHaveCount(count: number) {\n return await expect(this.successNotification).toHaveCount(count);\n }\n\n async isErrorNotificationVisible(isVisible: boolean = true) {\n return await expect(this.errorNotification.first()).toBeVisible({visible: isVisible});\n }\n\n async clickCreateThreeDotsButton() {\n await this.createThreeDotsBtn.click();\n }\n\n async clickCreateButton() {\n await expect(this.createBtn).toBeVisible();\n await this.createBtn.click();\n }\n\n async clickAddButton() {\n await this.addBtn.click();\n };\n\n async clickNewFolderThreeDotsButton() {\n await this.newFolderThreeDotsBtn.click();\n }\n\n async clickEditorSettingsButton(index: number = 0) {\n return this.editorSettingsBtn.nth(index).click();\n }\n\n async enterDescription(description: string) {\n await this.enterDescriptionTxt.fill(description);\n }\n\n async doesDescriptionHaveValue(value: string, index: number = 0) {\n return await expect(this.descriptionBtn.nth(index)).toHaveValue(value);\n }\n\n async clickStructureTab() {\n await this.page.waitForTimeout(1000);\n await this.structureTabBtn.waitFor({state: 'visible'});\n await this.structureTabBtn.click();\n }\n\n async clickAllowAtRootButton() {\n await this.allowAtRootBtn.click();\n }\n\n async clickIAmDoneReorderingButton() {\n await this.iAmDoneReorderingBtn.click();\n }\n\n async clickReorderButton() {\n await this.reorderBtn.click();\n }\n\n async clickLabelAboveButton() {\n await this.labelAboveBtn.click();\n }\n\n async clickMandatorySlider() {\n await this.mandatorySlider.click();\n }\n\n async selectValidationOption(option: string) {\n await this.validation.selectOption(option);\n }\n\n async enterRegEx(regEx: string) {\n await this.regexTxt.fill(regEx);\n }\n\n async enterRegExMessage(regExMessage: string) {\n await this.regexMessageTxt.fill(regExMessage);\n }\n\n async clickCompositionsButton() {\n await this.compositionsBtn.click();\n }\n\n async clickAddTabButton() {\n await this.addTabBtn.click();\n }\n\n async enterTabName(tabName: string) {\n await expect(this.unnamedTxt).toBeVisible();\n await this.unnamedTxt.clear();\n await this.unnamedTxt.fill(tabName);\n }\n\n async searchForTypeToFilterValue(searchValue: string) {\n await expect(this.typeToFilterSearchTxt).toBeVisible();\n await this.typeToFilterSearchTxt.fill(searchValue);\n }\n\n async addPropertyEditor(propertyEditorName: string, index: number = 0) {\n await expect(this.addPropertyBtn.nth(index)).toBeVisible();\n await this.addPropertyBtn.nth(index).click();\n await this.enterAPropertyName(propertyEditorName);\n await expect(this.propertyNameTxt).toHaveValue(propertyEditorName);\n await this.clickSelectPropertyEditorButton();\n await this.searchForTypeToFilterValue(propertyEditorName);\n await this.page.getByText(propertyEditorName, {exact: true}).click();\n await this.clickSubmitButton();\n }\n\n async updatePropertyEditor(propertyEditorName: string) {\n await this.clickEditorSettingsButton();\n await this.clickChangeButton();\n await this.searchForTypeToFilterValue(propertyEditorName);\n await this.page.getByText(propertyEditorName, {exact: true}).click();\n await this.enterAPropertyName(propertyEditorName);\n await this.clickSubmitButton();\n }\n\n async enterPropertyEditorDescription(description: string) {\n await this.enterPropertyEditorDescriptionTxt.fill(description);\n }\n\n async clickAddGroupButton() {\n await this.addGroupBtn.click();\n }\n\n async clickChooseModalButton() {\n await this.chooseModalBtn.click();\n }\n\n async enterGroupName(groupName: string, index: number = 0) {\n await this.page.waitForTimeout(200);\n const groupNameTxt = this.groupLabel.nth(index);\n await expect(groupNameTxt).toBeVisible();\n await groupNameTxt.clear();\n await groupNameTxt.fill(groupName);\n }\n\n async isGroupVisible(groupName: string, isVisible = true) {\n await expect(this.groupLabel.filter({hasText: groupName})).toBeVisible({visible: isVisible});\n }\n\n async doesGroupHaveValue(value: string) {\n await expect(this.groupLabel).toBeVisible();\n return await expect(this.groupLabel).toHaveValue(value);\n }\n\n async rename(newName: string) {\n await this.clickRenameButton();\n await expect(this.newNameTxt).toBeVisible();\n await this.newNameTxt.click();\n await this.newNameTxt.clear();\n await this.newNameTxt.fill(newName);\n await this.renameModalBtn.click({force: true});\n }\n\n async isSuccessButtonWithTextVisible(text: string) {\n return await expect(this.successState.filter({hasText: text})).toBeVisible();\n }\n\n async dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number = 0, horizontalOffset: number = 0, steps: number = 5) {\n await expect(dragFromSelector).toBeVisible();\n await expect(dragToSelector).toBeVisible();\n const targetLocation = await dragToSelector.boundingBox();\n const elementCenterX = targetLocation!.x + targetLocation!.width / 2;\n const elementCenterY = targetLocation!.y + targetLocation!.height / 2;\n await dragFromSelector.hover();\n await this.page.mouse.move(10, 10);\n await dragFromSelector.hover();\n await this.page.mouse.down();\n await this.page.waitForTimeout(400);\n await this.page.mouse.move(elementCenterX + horizontalOffset, elementCenterY + verticalOffset, {steps: steps});\n await this.page.waitForTimeout(400);\n await this.page.mouse.up();\n }\n\n async clickCreateLink() {\n await this.createLink.click();\n }\n\n async insertSystemFieldValue(fieldValue: string) {\n await this.clickInsertButton();\n await expect(this.insertValueBtn).toBeVisible();\n await this.insertValueBtn.click();\n await expect(this.chooseFieldDropDown).toBeVisible();\n await this.chooseFieldDropDown.click();\n await this.systemFieldsOption.click();\n await this.chooseFieldValueDropDown.click();\n await this.page.getByText(fieldValue).click();\n await this.clickSubmitButton();\n }\n\n async insertPartialView(partialViewName: string) {\n await this.clickInsertButton();\n await expect(this.insertPartialViewBtn).toBeVisible();\n await this.insertPartialViewBtn.click();\n await expect(this.page.getByLabel(partialViewName)).toBeVisible();\n await this.page.getByLabel(partialViewName).click();\n await this.chooseBtn.click();\n }\n\n async deletePropertyEditorWithName(name: string) {\n // We need to hover over the Property Editor to make the delete button visible\n const propertyEditor = this.page.locator('umb-content-type-design-editor-property', {hasText: name});\n await propertyEditor.hover();\n await propertyEditor.getByLabel('Delete').click({force: true});\n await this.clickConfirmToDeleteButton();\n }\n\n async clickRenameButton() {\n await this.renameBtn.click();\n }\n\n async clickDeleteAndConfirmButton() {\n await this.clickDeleteExactLabel();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickQueryBuilderButton() {\n await this.queryBuilderBtn.click();\n }\n\n async chooseRootContentInQueryBuilder(contentName: string) {\n await expect(this.chooseRootContentBtn).toBeVisible();\n await this.chooseRootContentBtn.click();\n await expect(this.page.getByText(contentName)).toBeVisible();\n await this.page.getByText(contentName).click();\n await this.chooseBtn.click();\n }\n\n async reorderTwoGroups() {\n const firstGroup = this.typeGroups.nth(0);\n const secondGroup = this.typeGroups.nth(1);\n const firstGroupValue = await firstGroup.getByLabel('Group', {exact: true}).inputValue();\n const secondGroupValue = await secondGroup.getByLabel('Group', {exact: true}).inputValue();\n const dragToLocator = firstGroup.locator('[name=\"icon-navigation\"]').first();\n const dragFromLocator = secondGroup.locator('[name=\"icon-navigation\"]').first();\n await this.dragAndDrop(dragFromLocator, dragToLocator, 0, 0, 10);\n return {firstGroupValue, secondGroupValue};\n }\n\n async clickAllowedChildNodesButton() {\n await this.allowedChildNodesModal.locator(this.chooseBtn).click();\n }\n\n async clickConfigureAsACollectionButton() {\n await this.configureAsACollectionBtn.click();\n }\n\n async doesReturnedItemsHaveCount(itemCount: number) {\n await expect(this.returnedItemsCount).toContainText(itemCount.toString() + ' items returned');\n }\n\n async doesQueryResultHaveContentName(contentName: string) {\n await expect(this.queryBuilderShowCode).toContainText(contentName);\n }\n\n async deleteGroup(groupName: string, forceClick: boolean = false) {\n await this.page.waitForTimeout(1000);\n const groups = this.page.locator('umb-content-type-design-editor-group').all();\n for (const group of await groups) {\n if (await group.getByLabel('Group', {exact: true}).inputValue() === groupName) {\n await group.locator('[slot=\"header-actions\"]').getByLabel('Delete').click({force: forceClick});\n return;\n }\n }\n }\n\n async clickRemoveTabWithName(name: string) {\n await this.page.locator('[label=\"' + name + '\"] [label=\"Remove\"]').click();\n }\n\n async clickLeftArrowButton() {\n await this.leftArrowBtn.click();\n }\n\n async clickToUploadButton() {\n await this.clickToUploadBtn.click();\n }\n\n async uploadFile(filePath: string) {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.clickToUploadButton();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n getTabLocatorWithName(name: string) {\n return this.page.getByRole('tab', {name: name});\n }\n\n getTextLocatorWithName(name: string) {\n return this.page.getByText(name, {exact: true});\n }\n\n async isFailedStateButtonVisible() {\n await expect(this.failedStateButton).toBeVisible();\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UiBaseLocators.js","sourceRoot":"","sources":["../../../lib/helpers/UiBaseLocators.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class UiBaseLocators {\n public readonly page: Page;\n public readonly saveBtn: Locator;\n public readonly chooseBtn: Locator;\n public readonly submitBtn: Locator;\n public readonly createFolderBtn: Locator;\n public readonly breadcrumbBtn: Locator;\n public readonly deleteBtn: Locator;\n public readonly confirmToDeleteBtn: Locator;\n public readonly deleteLabelBtn: Locator;\n public readonly deleteExactLabelBtn: Locator;\n public readonly deleteExactBtn: Locator;\n public readonly confirmCreateFolderBtn: Locator;\n public readonly insertBtn: Locator;\n public readonly modalCaretBtn: Locator;\n public readonly queryBuilderBtn: Locator;\n public readonly queryBuilderOrderedBy: Locator;\n public readonly queryBuilderCreateDate: Locator;\n public readonly folderNameTxt: Locator;\n public readonly textAreaInputArea: Locator;\n public readonly wherePropertyAliasBtn: Locator;\n public readonly whereOperatorBtn: Locator;\n public readonly whereConstrainValueTxt: Locator;\n public readonly orderByPropertyAliasBtn: Locator;\n public readonly ascendingBtn: Locator;\n public readonly queryBuilderShowCode: Locator;\n public readonly createThreeDotsBtn: Locator;\n public readonly newFolderThreeDotsBtn: Locator;\n public readonly renameThreeDotsBtn: Locator;\n public readonly newNameTxt: Locator;\n public readonly renameModalBtn: Locator;\n public readonly createBtn: Locator;\n public readonly successState: Locator;\n public readonly chooseModalBtn: Locator;\n public readonly addBtn: Locator;\n public readonly renameFolderThreeDotsBtn: Locator;\n public readonly renameFolderBtn: Locator;\n public readonly updateFolderBtn: Locator;\n public readonly filterChooseBtn: Locator;\n public readonly updateBtn: Locator;\n public readonly changeBtn: Locator;\n public readonly propertyNameTxt: Locator;\n public readonly selectPropertyEditorBtn: Locator;\n public readonly addGroupBtn: Locator;\n public readonly iAmDoneReorderingBtn: Locator;\n public readonly reorderBtn: Locator;\n public readonly compositionsBtn: Locator;\n public readonly addTabBtn: Locator;\n public readonly descriptionBtn: Locator;\n public readonly enterDescriptionTxt: Locator;\n public readonly mandatorySlider: Locator;\n public readonly validation: Locator;\n public readonly regexTxt: Locator;\n public readonly regexMessageTxt: Locator;\n public readonly structureTabBtn: Locator;\n public readonly allowAtRootBtn: Locator;\n public readonly addPropertyBtn: Locator;\n public readonly typeToFilterSearchTxt: Locator;\n public readonly editorSettingsBtn: Locator;\n public readonly labelAboveBtn: Locator;\n public readonly unnamedTxt: Locator;\n public readonly deleteThreeDotsBtn: Locator;\n public readonly removeExactBtn: Locator;\n public readonly confirmBtn: Locator;\n public readonly disableBtn: Locator;\n public readonly confirmDisableBtn: Locator;\n public readonly enableBtn: Locator;\n public readonly confirmEnableBtn: Locator;\n public readonly iconBtn: Locator;\n public readonly aliasLockBtn: Locator;\n public readonly aliasNameTxt: Locator;\n public readonly deleteFolderThreeDotsBtn: Locator;\n public readonly createLink: Locator;\n public readonly insertValueBtn: Locator;\n public readonly insertPartialViewBtn: Locator;\n public readonly insertDictionaryItemBtn: Locator;\n public readonly chooseFieldDropDown: Locator;\n public readonly systemFieldsOption: Locator;\n public readonly chooseFieldValueDropDown: Locator;\n public readonly renameBtn: Locator;\n public readonly deleteFolderBtn: Locator;\n public readonly returnedItemsCount: Locator;\n public readonly chooseRootContentBtn: Locator;\n public readonly queryResults: Locator;\n public readonly reloadBtn: Locator;\n public readonly confirmToRemoveBtn: Locator;\n public readonly confirmToSubmitBtn: Locator;\n public readonly typeGroups: Locator;\n public readonly allowedChildNodesModal: Locator;\n public readonly configureAsACollectionBtn: Locator;\n public readonly errorNotification: Locator;\n public readonly confirmRenameFolderBtn: Locator;\n public readonly successNotification: Locator;\n public readonly leftArrowBtn: Locator;\n public readonly clickToUploadBtn: Locator;\n public readonly backOfficeHeader: Locator;\n public readonly failedStateButton: Locator;\n public readonly sidebarModal: Locator;\n public readonly enterAName: Locator;\n public readonly mediaCardItems: Locator;\n public readonly enterPropertyEditorDescriptionTxt: Locator;\n public readonly breadcrumbsTemplateModal: Locator;\n public readonly containerChooseBtn: Locator;\n public readonly documentTypeNode: Locator;\n public readonly groupLabel: Locator;\n public readonly containerSaveAndPublishBtn: Locator;\n public readonly confirmTrashBtn: Locator;\n private readonly recycleBinBtn: Locator;\n private readonly recycleBinMenuItemCaretBtn: Locator;\n private readonly recycleBinMenuItem: Locator;\n\n constructor(page: Page) {\n this.page = page;\n this.saveBtn = page.getByLabel('Save', {exact: true});\n this.submitBtn = page.getByLabel('Submit');\n this.deleteExactLabelBtn = page.getByLabel('Delete', {exact: true});\n this.deleteExactBtn = page.getByRole('button', {name: 'Delete', exact: true});\n this.deleteLabelBtn = page.getByLabel('Delete');\n this.deleteBtn = page.getByRole('button', {name: 'Delete'});\n this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');\n this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create Folder');\n this.breadcrumbBtn = page.getByLabel('Breadcrumb');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.insertBtn = page.locator('uui-box uui-button').filter({hasText: 'Insert'});\n this.sidebarModal = page.locator('uui-modal-sidebar');\n this.modalCaretBtn = this.sidebarModal.locator('#caret-button');\n this.enterAName = page.getByLabel('Enter a name...', {exact: true});\n this.queryBuilderBtn = page.locator('#query-builder-button').getByLabel('Query builder');\n this.queryBuilderOrderedBy = page.locator('#property-alias-dropdown').getByLabel('Property alias');\n this.queryBuilderCreateDate = page.locator('#property-alias-dropdown').getByText('CreateDate').locator(\"..\");\n this.folderNameTxt = page.getByLabel('Enter a folder name');\n this.textAreaInputArea = page.locator('textarea.inputarea');\n this.wherePropertyAliasBtn = page.locator('#property-alias-dropdown');\n this.whereOperatorBtn = page.locator('#operator-dropdown');\n this.whereConstrainValueTxt = page.getByLabel('constrain value');\n this.orderByPropertyAliasBtn = page.locator('#sort-dropdown');\n this.ascendingBtn = page.locator('[key=\"template_ascending\"]');\n this.queryBuilderShowCode = page.locator('umb-code-block');\n this.createThreeDotsBtn = page.getByText('Create...', {exact: true});\n this.chooseBtn = page.getByLabel('Choose', {exact: true});\n this.containerChooseBtn = page.locator('#container').getByLabel('Choose');\n this.containerSaveAndPublishBtn = page.locator('#container').getByLabel('Save and Publish');\n this.newFolderThreeDotsBtn = page.getByLabel('New Folder...');\n this.renameThreeDotsBtn = page.getByLabel('Rename...', {exact: true});\n this.newNameTxt = page.getByRole('textbox', {name: 'Enter new name...'});\n this.renameModalBtn = page.locator('umb-rename-modal').getByLabel('Rename');\n this.createBtn = page.getByRole('button', {name: 'Create', exact: true});\n this.successState = page.locator('[state=\"success\"]');\n this.chooseModalBtn = page.locator('umb-tree-picker-modal').getByLabel('Choose');\n this.addBtn = page.getByLabel('Add', {exact: true});\n this.renameFolderThreeDotsBtn = page.getByLabel('Rename folder...');\n this.renameFolderBtn = page.getByLabel('Rename folder');\n this.confirmRenameFolderBtn = page.locator('#confirm').getByLabel('Rename folder');\n this.updateFolderBtn = page.getByLabel('Update folder');\n this.filterChooseBtn = page.locator('button').filter({hasText: 'Choose'});\n this.updateBtn = page.getByLabel('Update');\n this.changeBtn = page.getByLabel('Change');\n this.propertyNameTxt = page.locator('#name-input #input');\n this.selectPropertyEditorBtn = page.getByLabel('Select Property Editor');\n this.addGroupBtn = page.getByLabel('Add group', {exact: true});\n this.iAmDoneReorderingBtn = page.getByLabel('I am done reordering');\n this.reorderBtn = page.getByLabel('Reorder');\n this.compositionsBtn = page.getByLabel('Compositions');\n this.addTabBtn = page.getByLabel('Add tab');\n this.descriptionBtn = page.getByLabel('Description');\n this.enterDescriptionTxt = page.getByLabel('Enter a description...');\n this.mandatorySlider = page.locator('#mandatory #slider');\n this.validation = page.locator('#native');\n this.regexTxt = page.locator('input[name=\"pattern\"]');\n this.regexMessageTxt = page.locator('textarea[name=\"pattern-message\"]');\n this.structureTabBtn = page.locator('uui-tab').filter({hasText: 'Structure'}).locator('svg');\n this.allowAtRootBtn = page.locator('label').filter({hasText: 'Allow at root'});\n this.addPropertyBtn = page.getByLabel('Add property', {exact: true});\n this.typeToFilterSearchTxt = page.locator('[type=\"search\"] #input');\n this.editorSettingsBtn = page.getByLabel('Editor settings');\n this.labelAboveBtn = page.locator('button').filter({hasText: 'Label above'});\n this.unnamedTxt = page.getByRole('textbox', {name: 'Unnamed'});\n this.deleteThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete...');\n this.removeExactBtn = page.getByLabel('Remove', {exact: true});\n this.confirmBtn = page.getByLabel('Confirm');\n this.disableBtn = page.getByLabel('Disable', {exact: true});\n this.confirmDisableBtn = page.locator('#confirm').getByLabel('Disable');\n this.confirmToSubmitBtn = page.locator('#confirm').getByLabel('Submit');\n this.enableBtn = page.getByLabel('Enable');\n this.confirmEnableBtn = page.locator('#confirm').getByLabel('Enable');\n this.iconBtn = page.getByLabel('icon');\n this.aliasLockBtn = page.locator('#name #lock');\n this.aliasNameTxt = page.locator('#name').getByLabel('alias');\n this.deleteFolderThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete Folder...');\n this.createLink = page.getByRole('link', {name: 'Create'});\n this.insertValueBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertPageField\"]')});\n this.insertPartialViewBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertPartialView\"]')});\n this.insertDictionaryItemBtn = page.locator('uui-button').filter({has: page.locator('[key=\"template_insertDictionaryItem\"]')});\n this.chooseFieldDropDown = page.locator('#preview #expand-symbol-wrapper');\n this.systemFieldsOption = page.getByText('System fields');\n this.chooseFieldValueDropDown = page.locator('#value #expand-symbol-wrapper');\n this.renameBtn = page.locator('#action-modal').getByLabel('Rename');\n this.deleteFolderBtn = page.locator('#action-modal').getByLabel('Delete folder');\n this.returnedItemsCount = page.locator('#results-count');\n this.chooseRootContentBtn = page.getByLabel('Choose root document');\n this.queryResults = page.locator('query-results');\n this.reloadBtn = page.getByLabel('Reload', {exact: true});\n this.confirmToRemoveBtn = page.locator('#confirm').getByLabel('Remove');\n this.typeGroups = page.locator('umb-content-type-design-editor-group');\n this.allowedChildNodesModal = page.locator('umb-tree-picker-modal');\n this.configureAsACollectionBtn = page.getByLabel('Configure as a collection');\n this.errorNotification = page.locator('uui-toast-notification >> [color=\"danger\"]');\n this.successNotification = page.locator('uui-toast-notification >> [color=\"positive\"]');\n this.leftArrowBtn = page.locator('[name=\"icon-arrow-left\"] svg');\n this.clickToUploadBtn = page.locator('uui-file-dropzone').filter({hasText: 'Click to upload'});\n this.backOfficeHeader = page.locator('umb-backoffice-header');\n this.failedStateButton = page.locator('uui-button[state=\"failed\"]');\n this.mediaCardItems = page.locator('uui-card-media');\n this.enterPropertyEditorDescriptionTxt = this.sidebarModal.getByLabel('Enter a description...');\n this.breadcrumbsTemplateModal = this.sidebarModal.locator('umb-template-workspace-editor uui-breadcrumbs');\n this.documentTypeNode = page.locator('uui-ref-node-document-type');\n this.groupLabel = page.getByLabel('Group', {exact: true});\n this.confirmTrashBtn = page.locator('#confirm').getByLabel('Trash');\n this.recycleBinBtn = page.getByLabel('Recycle Bin', {exact: true});\n this.recycleBinMenuItem = page.locator('uui-menu-item[label=\"Recycle Bin\"]');\n this.recycleBinMenuItemCaretBtn = this.recycleBinMenuItem.locator('#caret-button');\n\n }\n\n async clickActionsMenuForName(name: string) {\n await this.page.locator('[label=\"' + name + '\"]').click();\n await this.page.locator('[label=\"' + name + '\"] >> [label=\"Open actions menu\"]').first().click();\n }\n\n async clickCaretButtonForName(name: string) {\n await this.page.locator('div').filter({hasText: name}).locator('#caret-button').click();\n }\n\n async clickCaretButton() {\n await this.page.locator('#caret-button').click();\n }\n\n async reloadTree(treeName: string) {\n // Waits until the tree item is visible\n await expect(this.page.getByLabel(treeName, {exact: true})).toBeVisible();\n await this.page.waitForTimeout(500);\n await this.clickActionsMenuForName(treeName);\n await this.clickReloadButton();\n\n const menuItem = this.page.locator('uui-menu-item[label=\"' + treeName + '\"]');\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n // We need to wait before clicking the caret button. Because the reload might not have happend yet. \n // await this.page.waitForTimeout(500);\n await this.clickCaretButtonForName(treeName);\n }\n }\n\n async clickReloadButton() {\n await this.reloadBtn.click();\n }\n\n async clickSaveButton() {\n // This wait is necessary to avoid the save button is ignored\n await this.page.waitForTimeout(500);\n await expect(this.saveBtn).toBeVisible();\n await this.saveBtn.click();\n }\n\n async clickChooseButton() {\n await this.chooseBtn.click();\n }\n\n async clickChooseContainerButton() {\n await this.containerChooseBtn.click();\n }\n\n async clickFilterChooseButton() {\n await this.filterChooseBtn.click();\n }\n\n async clickRenameFolderThreeDotsButton() {\n await this.renameFolderThreeDotsBtn.click();\n }\n\n async clickRenameFolderButton() {\n await this.renameFolderBtn.click();\n }\n\n async clickConfirmRenameFolderButton() {\n await this.confirmRenameFolderBtn.click();\n }\n\n async clickUpdateFolderButton() {\n await this.updateFolderBtn.click();\n }\n\n async clickUpdateButton() {\n await this.updateBtn.click();\n }\n\n async clickSubmitButton() {\n await expect(this.submitBtn).toBeVisible();\n await this.submitBtn.click();\n }\n\n async clickConfirmToSubmitButton() {\n await this.confirmToSubmitBtn.click();\n }\n\n async clickChangeButton() {\n await this.changeBtn.click();\n }\n\n async clickExactLinkWithName(name: string) {\n await this.page.getByRole('link', {name: name, exact: true}).click();\n }\n\n async enterAliasName(aliasName: string) {\n // Unlocks alias\n await this.aliasLockBtn.click();\n await this.aliasNameTxt.clear();\n await this.aliasNameTxt.fill(aliasName);\n }\n\n async updateIcon(iconName: string) {\n await this.iconBtn.click({force: true});\n await this.searchForTypeToFilterValue(iconName);\n await this.clickLabelWithName(iconName, true, true);\n await this.clickSubmitButton();\n }\n\n async clickTextButtonWithName(name: string) {\n await expect(this.page.getByText(name, {exact: true})).toBeVisible();\n await this.page.getByText(name, {exact: true}).click();\n }\n\n async clickSelectPropertyEditorButton() {\n await expect(this.selectPropertyEditorBtn).toBeVisible();\n await this.selectPropertyEditorBtn.click();\n }\n\n async clickCreateFolderButton() {\n await this.createFolderBtn.click();\n }\n\n async enterAPropertyName(name: string) {\n await expect(this.propertyNameTxt).toBeVisible();\n await this.propertyNameTxt.fill(name);\n }\n\n async clickConfirmButton() {\n await this.confirmBtn.click();\n }\n\n async clickBreadcrumbButton() {\n await this.breadcrumbBtn.click();\n }\n\n async clickInsertButton() {\n await expect(this.insertBtn).toBeVisible();\n await this.insertBtn.click();\n }\n\n async clickDeleteButton() {\n await this.deleteBtn.click({force: true});\n }\n\n async clickConfirmToDeleteButton() {\n await this.confirmToDeleteBtn.click();\n }\n\n async clickDeleteFolderButton() {\n await this.deleteFolderBtn.click();\n }\n\n async clickConfirmCreateFolderButton() {\n await this.confirmCreateFolderBtn.click();\n }\n\n async clickDeleteThreeDotsButton() {\n await this.deleteThreeDotsBtn.click();\n }\n\n async clickRemoveExactButton() {\n await this.removeExactBtn.click();\n }\n\n async clickRemoveButtonForName(name: string) {\n await this.page.locator('[name=\"' + name + '\"] [Label=\"Remove\"]').click();\n }\n\n async clickTrashIconButtonForName(name: string) {\n await this.page.locator('[name=\"' + name + '\"] [name=\"icon-trash\"]').click();\n }\n\n async clickRemoveWithName(name: string) {\n await this.page.getByLabel('Remove ' + name).click();\n }\n\n async clickDisableButton() {\n await this.disableBtn.click();\n }\n\n async clickConfirmDisableButton() {\n await this.confirmDisableBtn.click();\n }\n\n async clickConfirmRemoveButton() {\n await this.confirmToRemoveBtn.click();\n }\n\n async clickEnableButton() {\n await this.enableBtn.click();\n }\n\n async clickConfirmEnableButton() {\n await this.confirmEnableBtn.click();\n }\n\n async insertDictionaryItem(dictionaryName: string) {\n await this.clickInsertButton();\n await expect(this.insertDictionaryItemBtn).toBeVisible();\n await this.insertDictionaryItemBtn.click();\n await expect(this.page.getByLabel(dictionaryName)).toBeVisible();\n await this.page.getByLabel(dictionaryName).click();\n await this.chooseBtn.click();\n }\n\n async addQueryBuilderWithOrderByStatement(propertyAlias: string, isAscending: boolean) {\n await expect(this.queryBuilderBtn).toBeVisible({timeout: 10000});\n await this.queryBuilderBtn.click();\n await expect(this.orderByPropertyAliasBtn).toBeVisible();\n await this.orderByPropertyAliasBtn.click();\n // Wait and choose property alias option \n await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);\n // Click to acending button if isAcsending is false\n if (!isAscending) {\n await this.ascendingBtn.click();\n }\n }\n\n async addQueryBuilderWithWhereStatement(propertyAlias: string, operator: string, constrainValue: string) {\n await expect(this.queryBuilderBtn).toBeVisible({timeout: 10000});\n await this.queryBuilderBtn.click({force: true});\n // Wait and choose property alias\n await expect(this.wherePropertyAliasBtn).toBeVisible();\n await this.wherePropertyAliasBtn.click();\n await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);\n // Wait and choose operator\n await expect(this.whereOperatorBtn).toBeVisible();\n await this.whereOperatorBtn.click();\n await this.waitAndSelectQueryBuilderDropDownList(operator);\n // Wait and choose constrain value and press Enter\n await expect(this.whereConstrainValueTxt).toBeVisible();\n await this.whereConstrainValueTxt.clear();\n await this.whereConstrainValueTxt.fill(constrainValue);\n await this.whereConstrainValueTxt.press('Enter');\n }\n\n async waitAndSelectQueryBuilderDropDownList(option: string) {\n const ddlOption = this.page.locator('[open]').locator('uui-combobox-list-option').filter({hasText: option}).first();\n await expect(ddlOption).toBeVisible({timeout: 10000});\n await ddlOption.click();\n }\n\n async createFolder(folderName: string) {\n await this.clickCreateButton();\n await this.clickNewFolderThreeDotsButton();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n\n async deletePropertyEditor(propertyEditorName: string) {\n // We need to hover over the property to be able to see the delete button\n await this.page.locator('uui-button').filter({hasText: propertyEditorName}).getByLabel('Editor settings').hover();\n await this.deleteLabelBtn.click();\n }\n\n async enterFolderName(folderName: string) {\n await this.folderNameTxt.clear();\n await this.folderNameTxt.fill(folderName);\n }\n\n async isTextWithExactNameVisible(name: string, isVisible = true) {\n return expect(this.page.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async isQueryBuilderCodeShown(code: string) {\n await expect(this.queryBuilderShowCode).toBeVisible();\n await this.queryBuilderShowCode.click();\n await expect(this.queryBuilderShowCode).toContainText(code, {timeout: 10000});\n }\n\n async deleteFolder() {\n await this.clickDeleteFolderButton();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickDeleteExactLabel() {\n await this.deleteExactLabelBtn.click();\n }\n\n async clickDeleteExactButton() {\n await this.deleteExactBtn.click();\n }\n\n async isTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n\n async doesTreeItemHaveTheCorrectIcon(name: string, icon: string) {\n return await expect(this.page.locator('umb-tree-item').filter({hasText: name}).locator('umb-icon').locator('[name=\"' + icon + '\"]')).toBeVisible();\n }\n\n async goToSection(sectionName: string) {\n for (let section in ConstantHelper.sections) {\n await expect(this.backOfficeHeader.getByRole('tab', {name: ConstantHelper.sections[section]})).toBeVisible({timeout: 30000});\n }\n await this.backOfficeHeader.getByRole('tab', {name: sectionName}).click();\n }\n\n async goToSettingsTreeItem(settingsTreeItemName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.getByLabel(settingsTreeItemName, {exact: true}).click();\n }\n\n async clickDataElement(elementName: string, options: any = null) {\n await this.page.click(`[data-element=\"${elementName}\"]`, options);\n }\n\n async getDataElement(elementName: string) {\n return this.page.locator(`[data-element=\"${elementName}\"]`);\n }\n\n async isButtonWithNameVisible(name: string) {\n await expect(this.page.getByRole('button', {name: name})).toBeVisible();\n }\n\n async clickLabelWithName(name: string, isExact: boolean = true, toForce: boolean = false) {\n await expect(this.page.getByLabel(name, {exact: isExact})).toBeVisible();\n await this.page.getByLabel(name, {exact: isExact}).click({force: toForce});\n }\n\n async clickButtonWithName(name: string) {\n await this.page.getByRole('button', {name: name}).click();\n }\n\n async isSuccessNotificationVisible(isVisible: boolean = true) {\n return await expect(this.successNotification.first()).toBeVisible({visible: isVisible});\n }\n\n async doesSuccessNotificationsHaveCount(count: number) {\n return await expect(this.successNotification).toHaveCount(count);\n }\n\n async isErrorNotificationVisible(isVisible: boolean = true) {\n return await expect(this.errorNotification.first()).toBeVisible({visible: isVisible});\n }\n\n async clickCreateThreeDotsButton() {\n await this.createThreeDotsBtn.click();\n }\n\n async clickCreateButton(toForceClick: boolean = false) {\n await expect(this.createBtn).toBeVisible();\n await this.createBtn.click({force: toForceClick});\n }\n\n async clickAddButton() {\n await this.addBtn.click();\n };\n\n async clickNewFolderThreeDotsButton() {\n await this.newFolderThreeDotsBtn.click();\n }\n\n async clickEditorSettingsButton(index: number = 0) {\n return this.editorSettingsBtn.nth(index).click();\n }\n\n async enterDescription(description: string) {\n await this.enterDescriptionTxt.fill(description);\n }\n\n async doesDescriptionHaveValue(value: string, index: number = 0) {\n return await expect(this.descriptionBtn.nth(index)).toHaveValue(value);\n }\n\n async clickStructureTab() {\n await this.page.waitForTimeout(1000);\n await this.structureTabBtn.waitFor({state: 'visible'});\n await this.structureTabBtn.click();\n }\n\n async clickAllowAtRootButton() {\n await this.allowAtRootBtn.click();\n }\n\n async clickIAmDoneReorderingButton() {\n await this.iAmDoneReorderingBtn.click();\n }\n\n async clickReorderButton() {\n await this.reorderBtn.click();\n }\n\n async clickLabelAboveButton() {\n await this.labelAboveBtn.click();\n }\n\n async clickMandatorySlider() {\n await this.mandatorySlider.click();\n }\n\n async selectValidationOption(option: string) {\n await this.validation.selectOption(option);\n }\n\n async enterRegEx(regEx: string) {\n await this.regexTxt.fill(regEx);\n }\n\n async enterRegExMessage(regExMessage: string) {\n await this.regexMessageTxt.fill(regExMessage);\n }\n\n async clickCompositionsButton() {\n await this.compositionsBtn.click();\n }\n\n async clickAddTabButton() {\n await this.addTabBtn.click();\n }\n\n async enterTabName(tabName: string) {\n await expect(this.unnamedTxt).toBeVisible();\n await this.page.waitForTimeout(400);\n await this.unnamedTxt.clear();\n await this.unnamedTxt.fill(tabName);\n }\n\n async searchForTypeToFilterValue(searchValue: string) {\n await expect(this.typeToFilterSearchTxt).toBeVisible();\n await this.typeToFilterSearchTxt.fill(searchValue);\n }\n\n async addPropertyEditor(propertyEditorName: string, index: number = 0) {\n await expect(this.addPropertyBtn.nth(index)).toBeVisible();\n await this.addPropertyBtn.nth(index).click();\n await this.enterAPropertyName(propertyEditorName);\n await expect(this.propertyNameTxt).toHaveValue(propertyEditorName);\n await this.clickSelectPropertyEditorButton();\n await this.searchForTypeToFilterValue(propertyEditorName);\n await this.page.getByText(propertyEditorName, {exact: true}).click();\n await this.clickSubmitButton();\n }\n\n async updatePropertyEditor(propertyEditorName: string) {\n await this.clickEditorSettingsButton();\n await this.clickChangeButton();\n await this.searchForTypeToFilterValue(propertyEditorName);\n await this.page.getByText(propertyEditorName, {exact: true}).click();\n await this.enterAPropertyName(propertyEditorName);\n await this.clickSubmitButton();\n }\n\n async enterPropertyEditorDescription(description: string) {\n await this.enterPropertyEditorDescriptionTxt.fill(description);\n }\n\n async clickAddGroupButton() {\n await this.addGroupBtn.click();\n }\n\n async clickChooseModalButton() {\n await this.chooseModalBtn.click();\n }\n\n async enterGroupName(groupName: string, index: number = 0) {\n await this.page.waitForTimeout(200);\n const groupNameTxt = this.groupLabel.nth(index);\n await expect(groupNameTxt).toBeVisible();\n await groupNameTxt.clear();\n await groupNameTxt.fill(groupName);\n }\n\n async isGroupVisible(groupName: string, isVisible = true) {\n await expect(this.groupLabel.filter({hasText: groupName})).toBeVisible({visible: isVisible});\n }\n\n async doesGroupHaveValue(value: string) {\n await expect(this.groupLabel).toBeVisible();\n return await expect(this.groupLabel).toHaveValue(value);\n }\n\n async rename(newName: string) {\n await this.clickRenameButton();\n await expect(this.newNameTxt).toBeVisible();\n await this.newNameTxt.click();\n await this.newNameTxt.clear();\n await this.newNameTxt.fill(newName);\n await this.renameModalBtn.click();\n }\n\n async isSuccessButtonWithTextVisible(text: string) {\n return await expect(this.successState.filter({hasText: text})).toBeVisible();\n }\n\n async dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number = 0, horizontalOffset: number = 0, steps: number = 5) {\n await expect(dragFromSelector).toBeVisible();\n await expect(dragToSelector).toBeVisible();\n const targetLocation = await dragToSelector.boundingBox();\n const elementCenterX = targetLocation!.x + targetLocation!.width / 2;\n const elementCenterY = targetLocation!.y + targetLocation!.height / 2;\n await dragFromSelector.hover();\n await this.page.mouse.move(10, 10);\n await dragFromSelector.hover();\n await this.page.mouse.down();\n await this.page.waitForTimeout(400);\n await this.page.mouse.move(elementCenterX + horizontalOffset, elementCenterY + verticalOffset, {steps: steps});\n await this.page.waitForTimeout(400);\n await this.page.mouse.up();\n }\n\n async clickCreateLink() {\n await this.createLink.click();\n }\n\n async insertSystemFieldValue(fieldValue: string) {\n await this.clickInsertButton();\n await expect(this.insertValueBtn).toBeVisible();\n await this.insertValueBtn.click();\n await expect(this.chooseFieldDropDown).toBeVisible();\n await this.chooseFieldDropDown.click();\n await this.systemFieldsOption.click();\n await this.chooseFieldValueDropDown.click();\n await this.page.getByText(fieldValue).click();\n await this.clickSubmitButton();\n }\n\n async insertPartialView(partialViewName: string) {\n await this.clickInsertButton();\n await expect(this.insertPartialViewBtn).toBeVisible();\n await this.insertPartialViewBtn.click();\n await expect(this.page.getByLabel(partialViewName)).toBeVisible();\n await this.page.getByLabel(partialViewName).click();\n await this.chooseBtn.click();\n }\n\n async deletePropertyEditorWithName(name: string) {\n // We need to hover over the Property Editor to make the delete button visible\n const propertyEditor = this.page.locator('umb-content-type-design-editor-property', {hasText: name});\n await propertyEditor.hover();\n await propertyEditor.getByLabel('Delete').click({force: true});\n await this.clickConfirmToDeleteButton();\n }\n\n async clickRenameButton() {\n await this.renameBtn.click();\n }\n\n async clickDeleteAndConfirmButton() {\n await this.clickDeleteExactLabel();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickQueryBuilderButton() {\n await this.queryBuilderBtn.click();\n }\n\n async chooseRootContentInQueryBuilder(contentName: string) {\n await expect(this.chooseRootContentBtn).toBeVisible();\n await this.chooseRootContentBtn.click();\n await expect(this.page.getByText(contentName)).toBeVisible();\n await this.page.getByText(contentName).click();\n await this.chooseBtn.click();\n }\n\n async reorderTwoGroups() {\n const firstGroup = this.typeGroups.nth(0);\n const secondGroup = this.typeGroups.nth(1);\n const firstGroupValue = await firstGroup.getByLabel('Group', {exact: true}).inputValue();\n const secondGroupValue = await secondGroup.getByLabel('Group', {exact: true}).inputValue();\n const dragToLocator = firstGroup.locator('[name=\"icon-navigation\"]').first();\n const dragFromLocator = secondGroup.locator('[name=\"icon-navigation\"]').first();\n await this.dragAndDrop(dragFromLocator, dragToLocator, 0, 0, 10);\n return {firstGroupValue, secondGroupValue};\n }\n\n async clickAllowedChildNodesButton() {\n await this.allowedChildNodesModal.locator(this.chooseBtn).click();\n }\n\n async clickConfigureAsACollectionButton() {\n await this.configureAsACollectionBtn.click();\n }\n\n async doesReturnedItemsHaveCount(itemCount: number) {\n await expect(this.returnedItemsCount).toContainText(itemCount.toString() + ' items returned');\n }\n\n async doesQueryResultHaveContentName(contentName: string) {\n await expect(this.queryBuilderShowCode).toContainText(contentName);\n }\n\n async deleteGroup(groupName: string, toForceClick: boolean = false) {\n await this.page.waitForTimeout(1000);\n const groups = this.page.locator('umb-content-type-design-editor-group').all();\n for (const group of await groups) {\n if (await group.getByLabel('Group', {exact: true}).inputValue() === groupName) {\n await group.locator('[slot=\"header-actions\"]').getByLabel('Delete').click({force: toForceClick});\n return;\n }\n }\n }\n\n async clickRemoveTabWithName(name: string) {\n await this.page.locator('[label=\"' + name + '\"] [label=\"Remove\"]').click();\n }\n\n async clickLeftArrowButton() {\n await this.leftArrowBtn.click();\n }\n\n async clickToUploadButton() {\n await this.clickToUploadBtn.click();\n }\n\n async uploadFile(filePath: string) {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.clickToUploadButton();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n getTabLocatorWithName(name: string) {\n return this.page.getByRole('tab', {name: name});\n }\n\n getTextLocatorWithName(name: string) {\n return this.page.getByText(name, {exact: true});\n }\n\n async isFailedStateButtonVisible() {\n await expect(this.failedStateButton).toBeVisible();\n }\n\n async clickContainerSaveAndPublishButton() {\n await this.containerSaveAndPublishBtn.click();\n }\n\n async clickConfirmTrashButton() {\n await this.confirmTrashBtn.click();\n }\n\n async reloadRecycleBin(containsItems = true) {\n // We need to wait to be sure that the item is visible after reload\n await expect(this.recycleBinMenuItem).toBeVisible();\n await this.clickActionsMenuForName('Recycle Bin');\n await this.clickReloadButton();\n await expect(this.recycleBinMenuItem).toBeVisible();\n\n // If the Recycle Bin does not contain any items,0 the caret button should not be visible. and we should not try to click it\n if (!containsItems) {\n await expect(this.recycleBinMenuItemCaretBtn).not.toBeVisible();\n return;\n }\n\n await expect(this.recycleBinMenuItemCaretBtn).toBeVisible();\n const isCaretButtonOpen = await this.recycleBinMenuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n // We need to wait before clicking the caret button. Because the reload might not have happened yet. \n await this.clickCaretButtonForName('Recycle Bin');\n }\n }\n\n async clickRecycleBinButton() {\n await this.recycleBinBtn.click();\n }\n\n async isItemVisibleInRecycleBin(mediaItem: string, isVisible: boolean = true) {\n await this.reloadRecycleBin(isVisible);\n return expect(this.page.locator('[label=\"Recycle Bin\"] [label=\"' + mediaItem + '\"]')).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ApiHelpers } from "./ApiHelpers";
|
|
2
|
+
import { Page } from "@playwright/test";
|
|
2
3
|
export declare class UserApiHelper {
|
|
3
4
|
api: ApiHelpers;
|
|
4
|
-
|
|
5
|
+
page: Page;
|
|
6
|
+
constructor(api: ApiHelpers, page: Page);
|
|
5
7
|
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
6
8
|
doesExist(id: string): Promise<boolean>;
|
|
7
9
|
doesNameExist(name: string): Promise<boolean>;
|
|
@@ -4,8 +4,10 @@ exports.UserApiHelper = void 0;
|
|
|
4
4
|
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
5
5
|
class UserApiHelper {
|
|
6
6
|
api;
|
|
7
|
-
|
|
7
|
+
page;
|
|
8
|
+
constructor(api, page) {
|
|
8
9
|
this.api = api;
|
|
10
|
+
this.page = page;
|
|
9
11
|
}
|
|
10
12
|
async ensureNameNotExists(name) {
|
|
11
13
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');
|
|
@@ -13,6 +15,8 @@ class UserApiHelper {
|
|
|
13
15
|
for (const sb of json.items) {
|
|
14
16
|
if (sb.name === name) {
|
|
15
17
|
if (sb.id !== null) {
|
|
18
|
+
// It takes a while to create the user, so if we delete it too fast. We get a DB lock
|
|
19
|
+
await this.page.waitForTimeout(500);
|
|
16
20
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);
|
|
17
21
|
}
|
|
18
22
|
}
|
|
@@ -62,6 +66,7 @@ class UserApiHelper {
|
|
|
62
66
|
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id, userData);
|
|
63
67
|
}
|
|
64
68
|
async delete(id) {
|
|
69
|
+
await this.page.waitForTimeout(500);
|
|
65
70
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);
|
|
66
71
|
}
|
|
67
72
|
async deleteByName(name) {
|
|
@@ -70,6 +75,7 @@ class UserApiHelper {
|
|
|
70
75
|
for (const sb of json.items) {
|
|
71
76
|
if (sb.name === name) {
|
|
72
77
|
if (sb.id !== null) {
|
|
78
|
+
await this.page.waitForTimeout(500);
|
|
73
79
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);
|
|
74
80
|
}
|
|
75
81
|
}
|
|
@@ -89,6 +95,7 @@ class UserApiHelper {
|
|
|
89
95
|
return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id, avatar);
|
|
90
96
|
}
|
|
91
97
|
async removeAvatar(id) {
|
|
98
|
+
await this.page.waitForTimeout(500);
|
|
92
99
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id);
|
|
93
100
|
}
|
|
94
101
|
// Enable/Disabled and Unlock
|