@umbraco/playwright-testhelpers 2.0.0-beta.40 → 2.0.0-beta.42

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.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DocumentTypeUiHelper = void 0;
4
4
  const UiBaseLocators_1 = require("./UiBaseLocators");
5
+ const test_1 = require("@playwright/test");
5
6
  class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
6
7
  newDocumentTypeBtn;
7
8
  documentNameTxt;
@@ -10,6 +11,15 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
10
11
  documentTypeTemplatesTabBtn;
11
12
  varyBySegmentsBtn;
12
13
  varyByCultureBtn;
14
+ createDocumentTypeBtn;
15
+ createDocumentTypeWithTemplateBtn;
16
+ createElementTypeBtn;
17
+ createDocumentFolderBtn;
18
+ documentTypeGroupNameTxt;
19
+ propertySettingsModal;
20
+ allowedChildNodesModal;
21
+ configureAsACollectionBtn;
22
+ documentTypeGroups;
13
23
  constructor(page) {
14
24
  super(page);
15
25
  this.newDocumentTypeBtn = page.getByLabel('New Document Type...');
@@ -19,6 +29,15 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
19
29
  this.documentTypeTemplatesTabBtn = page.getByRole('tab', { name: 'Templates' });
20
30
  this.varyBySegmentsBtn = page.getByText('Vary by segments', { exact: true });
21
31
  this.varyByCultureBtn = page.getByText('Vary by culture', { exact: true });
32
+ this.createDocumentTypeBtn = page.locator('umb-ref-item').getByText('Document Type', { exact: true });
33
+ this.createDocumentTypeWithTemplateBtn = page.locator('umb-ref-item').getByText('Document Type with Template', { exact: true });
34
+ this.createElementTypeBtn = page.locator('umb-ref-item').getByText('Element Type', { exact: true });
35
+ this.createDocumentFolderBtn = page.locator('umb-ref-item').getByText('Folder', { exact: true });
36
+ this.documentTypeGroupNameTxt = page.getByLabel('Group', { exact: true });
37
+ this.propertySettingsModal = page.locator('umb-property-type-settings-modal');
38
+ this.allowedChildNodesModal = page.locator('umb-tree-picker-modal');
39
+ this.configureAsACollectionBtn = page.getByLabel('Configure as a collection');
40
+ this.documentTypeGroups = page.locator('umb-content-type-design-editor-group');
22
41
  }
23
42
  async clickActionsMenuForDocumentType(name) {
24
43
  await this.clickActionsMenuForName(name);
@@ -37,12 +56,25 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
37
56
  }
38
57
  async clickDocumentTypeSettingsTab() {
39
58
  await this.documentTypeSettingsTabBtn.waitFor({ state: 'visible' });
59
+ // Sometimes when we switch tabs in the Document Type, we end up not being redirected to the new tab.
60
+ await this.page.waitForLoadState();
40
61
  await this.documentTypeSettingsTabBtn.click({ force: true });
41
62
  }
42
63
  async clickDocumentTypeTemplatesTab() {
43
64
  await this.documentTypeTemplatesTabBtn.waitFor({ state: 'visible' });
65
+ await this.page.waitForLoadState();
44
66
  await this.documentTypeTemplatesTabBtn.click({ force: true });
45
67
  }
68
+ async reorderTwoGroupsInADocumentType() {
69
+ const firstGroup = this.documentTypeGroups.nth(0);
70
+ const secondGroup = this.documentTypeGroups.nth(1);
71
+ const firstGroupValue = await firstGroup.getByLabel('Group', { exact: true }).inputValue();
72
+ const secondGroupValue = await secondGroup.getByLabel('Group', { exact: true }).inputValue();
73
+ const dragToLocator = firstGroup.locator('[name="icon-navigation"]');
74
+ const dragFromLocator = secondGroup.locator('[name="icon-navigation"]');
75
+ await this.dragAndDrop(dragFromLocator, dragToLocator, 0, 0, 10);
76
+ return { firstGroupValue, secondGroupValue };
77
+ }
46
78
  async clickVaryBySegmentsButton() {
47
79
  await this.varyBySegmentsBtn.click();
48
80
  }
@@ -53,10 +85,46 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
53
85
  await this.clickRootFolderCaretButton();
54
86
  await this.page.getByLabel(documentTypeName).click();
55
87
  }
88
+ async enterPropertyEditorDescription(description) {
89
+ await this.propertySettingsModal.locator(this.enterDescriptionTxt).fill(description);
90
+ }
56
91
  async enterDocumentTypeName(documentTypeName) {
57
92
  await this.documentNameTxt.waitFor({ state: 'visible' });
58
93
  await this.documentNameTxt.fill(documentTypeName);
59
94
  }
95
+ async clickCreateDocumentTypeButton() {
96
+ await this.createDocumentTypeBtn.click();
97
+ }
98
+ async clickCreateDocumentTypeWithTemplateButton() {
99
+ await this.createDocumentTypeWithTemplateBtn.click();
100
+ }
101
+ async clickCreateElementTypeButton() {
102
+ await this.createElementTypeBtn.click();
103
+ }
104
+ async clickCreateDocumentFolderButton() {
105
+ await this.createDocumentFolderBtn.click();
106
+ }
107
+ async deletePropertyEditorInDocumentTypeWithName(name) {
108
+ // We need to hover over the Property Editor to make the delete button visible
109
+ await this.page.locator('umb-content-type-design-editor-property', { hasText: name }).hover();
110
+ await this.page.locator('umb-content-type-design-editor-property', { hasText: name }).getByLabel('Delete').click({ force: true });
111
+ await this.clickConfirmToDeleteButton();
112
+ }
113
+ async clickAllowedChildNodesButton() {
114
+ await this.allowedChildNodesModal.locator(this.chooseBtn).click();
115
+ }
116
+ async clickConfigureAsACollectionButton() {
117
+ await this.configureAsACollectionBtn.click();
118
+ }
119
+ async enterDocumentTypeGroupName(groupName, index = 0) {
120
+ // We need this wait, otherwise the group name would sometimes not be written
121
+ await this.page.waitForTimeout(500);
122
+ await (0, test_1.expect)(this.documentTypeGroupNameTxt.nth(index)).toBeVisible();
123
+ await this.documentTypeGroupNameTxt.nth(index).fill(groupName);
124
+ }
125
+ async isDocumentTreeItemVisible(name, isVisible = true) {
126
+ await (0, test_1.expect)(this.page.locator('umb-tree-item').locator('[label="' + name + '"]')).toBeVisible({ visible: isVisible });
127
+ }
60
128
  }
61
129
  exports.DocumentTypeUiHelper = DocumentTypeUiHelper;
62
130
  //# sourceMappingURL=DocumentTypeUiHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly documentNameTxt: Locator;\n private readonly varyByCultureSlider: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newDocumentTypeBtn = page.getByLabel('New Document Type...');\n this.documentNameTxt = page.getByLabel('name', {exact: true});\n this.varyByCultureSlider = page.locator('label').filter({hasText: 'Vary by culture'}).locator('#slider');\n this.documentTypeSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.documentTypeTemplatesTabBtn = page.getByRole('tab', {name: 'Templates'})\n this.varyBySegmentsBtn = page.getByText('Vary by segments', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Document Types\");\n }\n\n async clickNewDocumentTypeButton() {\n await this.newDocumentTypeBtn.click();\n }\n\n async clickVaryByCultureSlider() {\n await this.varyByCultureSlider.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n await this.documentTypeSettingsTabBtn.waitFor({state: 'visible'});\n await this.documentTypeSettingsTabBtn.click({force: true});\n }\n\n async clickDocumentTypeTemplatesTab() {\n await this.documentTypeTemplatesTabBtn.waitFor({state: 'visible'});\n await this.documentTypeTemplatesTabBtn.click({force: true});\n }\n\n async clickVaryBySegmentsButton() {\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await this.varyByCultureBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(documentTypeName).click();\n }\n\n async enterDocumentTypeName(documentTypeName: string) {\n await this.documentNameTxt.waitFor({state: 'visible'});\n await this.documentNameTxt.fill(documentTypeName);\n }\n}"]}
1
+ {"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly documentNameTxt: Locator;\n private readonly varyByCultureSlider: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n private readonly createDocumentTypeBtn: Locator;\n private readonly createDocumentTypeWithTemplateBtn: Locator;\n private readonly createElementTypeBtn: Locator;\n private readonly createDocumentFolderBtn: Locator;\n private readonly documentTypeGroupNameTxt: Locator;\n private readonly propertySettingsModal: Locator;\n private readonly allowedChildNodesModal: Locator;\n private readonly configureAsACollectionBtn: Locator;\n private readonly documentTypeGroups: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newDocumentTypeBtn = page.getByLabel('New Document Type...');\n this.documentNameTxt = page.getByLabel('name', {exact: true});\n this.varyByCultureSlider = page.locator('label').filter({hasText: 'Vary by culture'}).locator('#slider');\n this.documentTypeSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.documentTypeTemplatesTabBtn = page.getByRole('tab', {name: 'Templates'})\n this.varyBySegmentsBtn = page.getByText('Vary by segments', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n this.createDocumentTypeBtn = page.locator('umb-ref-item').getByText('Document Type', {exact: true});\n this.createDocumentTypeWithTemplateBtn = page.locator('umb-ref-item').getByText('Document Type with Template', {exact: true});\n this.createElementTypeBtn = page.locator('umb-ref-item').getByText('Element Type', {exact: true});\n this.createDocumentFolderBtn = page.locator('umb-ref-item').getByText('Folder', {exact: true});\n this.documentTypeGroupNameTxt = page.getByLabel('Group', {exact: true});\n this.propertySettingsModal = page.locator('umb-property-type-settings-modal');\n this.allowedChildNodesModal = page.locator('umb-tree-picker-modal');\n this.configureAsACollectionBtn = page.getByLabel('Configure as a collection');\n this.documentTypeGroups = page.locator('umb-content-type-design-editor-group');\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Document Types\");\n }\n\n async clickNewDocumentTypeButton() {\n await this.newDocumentTypeBtn.click();\n }\n\n async clickVaryByCultureSlider() {\n await this.varyByCultureSlider.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n await this.documentTypeSettingsTabBtn.waitFor({state: 'visible'});\n // Sometimes when we switch tabs in the Document Type, we end up not being redirected to the new tab.\n await this.page.waitForLoadState();\n await this.documentTypeSettingsTabBtn.click({force: true});\n }\n\n async clickDocumentTypeTemplatesTab() {\n await this.documentTypeTemplatesTabBtn.waitFor({state: 'visible'});\n await this.page.waitForLoadState();\n await this.documentTypeTemplatesTabBtn.click({force: true});\n }\n\n async reorderTwoGroupsInADocumentType() {\n const firstGroup = this.documentTypeGroups.nth(0);\n const secondGroup = this.documentTypeGroups.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\"]');\n const dragFromLocator = secondGroup.locator('[name=\"icon-navigation\"]');\n await this.dragAndDrop(dragFromLocator, dragToLocator, 0, 0, 10);\n\n return {firstGroupValue, secondGroupValue};\n }\n\n async clickVaryBySegmentsButton() {\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await this.varyByCultureBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(documentTypeName).click();\n }\n\n async enterPropertyEditorDescription(description: string) {\n await this.propertySettingsModal.locator(this.enterDescriptionTxt).fill(description);\n }\n\n async enterDocumentTypeName(documentTypeName: string) {\n await this.documentNameTxt.waitFor({state: 'visible'});\n await this.documentNameTxt.fill(documentTypeName);\n }\n\n async clickCreateDocumentTypeButton() {\n await this.createDocumentTypeBtn.click();\n }\n\n async clickCreateDocumentTypeWithTemplateButton() {\n await this.createDocumentTypeWithTemplateBtn.click();\n }\n\n async clickCreateElementTypeButton() {\n await this.createElementTypeBtn.click();\n }\n\n async clickCreateDocumentFolderButton() {\n await this.createDocumentFolderBtn.click();\n }\n\n async deletePropertyEditorInDocumentTypeWithName(name: string) {\n // We need to hover over the Property Editor to make the delete button visible\n await this.page.locator('umb-content-type-design-editor-property', {hasText: name}).hover();\n await this.page.locator('umb-content-type-design-editor-property', {hasText: name}).getByLabel('Delete').click({force: true});\n await this.clickConfirmToDeleteButton();\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 enterDocumentTypeGroupName(groupName: string, index = 0) {\n // We need this wait, otherwise the group name would sometimes not be written\n await this.page.waitForTimeout(500);\n await expect(this.documentTypeGroupNameTxt.nth(index)).toBeVisible();\n await this.documentTypeGroupNameTxt.nth(index).fill(groupName);\n }\n\n async isDocumentTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n}"]}
@@ -6,7 +6,6 @@ export declare class LanguageUiHelper extends UiBaseLocators {
6
6
  private readonly defaultLanguageToggle;
7
7
  private readonly mandatoryLanguageToggle;
8
8
  private readonly addFallbackLanguageBtn;
9
- private readonly confirmToRemoveBtn;
10
9
  private readonly languageTable;
11
10
  constructor(page: Page);
12
11
  clickLanguageRoot(): Promise<void>;
@@ -9,7 +9,6 @@ class LanguageUiHelper extends UiBaseLocators_1.UiBaseLocators {
9
9
  defaultLanguageToggle;
10
10
  mandatoryLanguageToggle;
11
11
  addFallbackLanguageBtn;
12
- confirmToRemoveBtn;
13
12
  languageTable;
14
13
  constructor(page) {
15
14
  super(page);
@@ -18,7 +17,6 @@ class LanguageUiHelper extends UiBaseLocators_1.UiBaseLocators {
18
17
  this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#slider');
19
18
  this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#slider');
20
19
  this.addFallbackLanguageBtn = page.locator('#add-button');
21
- this.confirmToRemoveBtn = page.locator("#confirm").getByLabel("Remove");
22
20
  this.languageTable = page.locator('umb-language-table-collection-view');
23
21
  }
24
22
  async clickLanguageRoot() {
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class LanguageUiHelper extends UiBaseLocators{\n private readonly languageRoot: Locator;\n private readonly languageDropdown: Locator;\n private readonly defaultLanguageToggle: Locator;\n private readonly mandatoryLanguageToggle: Locator;\n private readonly addFallbackLanguageBtn: Locator;\n private readonly confirmToRemoveBtn: Locator;\n private readonly languageTable: Locator;\n\n constructor(page: Page) {\n super(page);\n this.languageRoot = page.locator('umb-menu').getByLabel('Language');\n this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');\n this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#slider');\n this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#slider');\n this.addFallbackLanguageBtn = page.locator('#add-button');\n this.confirmToRemoveBtn = page.locator(\"#confirm\").getByLabel(\"Remove\");\n this.languageTable = page.locator('umb-language-table-collection-view');\n }\n\n async clickLanguageRoot() {\n await this.languageRoot.click();\n }\n\n async removeFallbackLanguageByName(name: string) {\n await this.page.locator('uui-ref-list').getByLabel('Remove ' + name, {exact: true}).click();\n await this.confirmToRemoveBtn.click();\n }\n\n async chooseLanguageByName(name: string) {\n await this.languageDropdown.click();\n await this.page.locator('umb-input-culture-select').getByText(name, {exact: true}).click();\n }\n\n async clickLanguageByName(name: string) {\n await this.languageTable.getByText(name, {exact: true}).click();\n }\n\n async isLanguageNameVisible(name: string, isVisible = true) {\n return await expect(this.languageTable.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n \n async switchDefaultLanguageOption() {\n await this.defaultLanguageToggle.click();\n }\n\n async switchMandatoryLanguageOption() {\n await this.mandatoryLanguageToggle.click();\n }\n\n async clickAddFallbackLanguageButton() {\n await this.addFallbackLanguageBtn.click();\n }\n\n async clickRemoveLanguageByName(name: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator('uui-symbol-more').click();\n }\n\n async removeLanguageByName(name: string) {\n await this.clickRemoveLanguageByName(name);\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async selectFallbackLanguageByName(name: string) {\n await this.page.locator('umb-language-picker-modal').getByLabel(name).click();\n await this.clickSubmitButton();\n }\n}"]}
1
+ {"version":3,"file":"LanguageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class LanguageUiHelper extends UiBaseLocators{\n private readonly languageRoot: Locator;\n private readonly languageDropdown: Locator;\n private readonly defaultLanguageToggle: Locator;\n private readonly mandatoryLanguageToggle: Locator;\n private readonly addFallbackLanguageBtn: Locator;\n private readonly languageTable: Locator;\n\n constructor(page: Page) {\n super(page);\n this.languageRoot = page.locator('umb-menu').getByLabel('Language');\n this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');\n this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#slider');\n this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#slider');\n this.addFallbackLanguageBtn = page.locator('#add-button');\n this.languageTable = page.locator('umb-language-table-collection-view');\n }\n\n async clickLanguageRoot() {\n await this.languageRoot.click();\n }\n\n async removeFallbackLanguageByName(name: string) {\n await this.page.locator('uui-ref-list').getByLabel('Remove ' + name, {exact: true}).click();\n await this.confirmToRemoveBtn.click();\n }\n\n async chooseLanguageByName(name: string) {\n await this.languageDropdown.click();\n await this.page.locator('umb-input-culture-select').getByText(name, {exact: true}).click();\n }\n\n async clickLanguageByName(name: string) {\n await this.languageTable.getByText(name, {exact: true}).click();\n }\n\n async isLanguageNameVisible(name: string, isVisible = true) {\n return await expect(this.languageTable.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n \n async switchDefaultLanguageOption() {\n await this.defaultLanguageToggle.click();\n }\n\n async switchMandatoryLanguageOption() {\n await this.mandatoryLanguageToggle.click();\n }\n\n async clickAddFallbackLanguageButton() {\n await this.addFallbackLanguageBtn.click();\n }\n\n async clickRemoveLanguageByName(name: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator('uui-symbol-more').click();\n }\n\n async removeLanguageByName(name: string) {\n await this.clickRemoveLanguageByName(name);\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async selectFallbackLanguageByName(name: string) {\n await this.page.locator('umb-language-picker-modal').getByLabel(name).click();\n await this.clickSubmitButton();\n }\n}"]}
@@ -35,6 +35,7 @@ export declare class UiBaseLocators {
35
35
  readonly chooseModalBtn: Locator;
36
36
  readonly addBtn: Locator;
37
37
  readonly renameFolderThreeDotsBtn: Locator;
38
+ readonly renameFolderBtn: Locator;
38
39
  readonly updateFolderBtn: Locator;
39
40
  readonly filterChooseBtn: Locator;
40
41
  readonly updateBtn: Locator;
@@ -67,7 +68,6 @@ export declare class UiBaseLocators {
67
68
  readonly enableBtn: Locator;
68
69
  readonly confirmEnableBtn: Locator;
69
70
  readonly iconBtn: Locator;
70
- readonly bugIconBtn: Locator;
71
71
  readonly aliasLockBtn: Locator;
72
72
  readonly aliasNameTxt: Locator;
73
73
  readonly deleteFolderThreeDotsBtn: Locator;
@@ -84,6 +84,7 @@ export declare class UiBaseLocators {
84
84
  readonly chooseRootContentBtn: Locator;
85
85
  readonly queryResults: Locator;
86
86
  readonly reloadBtn: Locator;
87
+ readonly confirmToRemoveBtn: Locator;
87
88
  constructor(page: Page);
88
89
  clickActionsMenuForName(name: string): Promise<void>;
89
90
  clickCaretButtonForName(name: string): Promise<void>;
@@ -94,6 +95,7 @@ export declare class UiBaseLocators {
94
95
  clickChooseButton(): Promise<void>;
95
96
  clickFilterChooseButton(): Promise<void>;
96
97
  clickRenameFolderThreeDotsButton(): Promise<void>;
98
+ clickRenameFolderButton(): Promise<void>;
97
99
  clickUpdateFolderButton(): Promise<void>;
98
100
  clickUpdateButton(): Promise<void>;
99
101
  clickSubmitButton(): Promise<void>;
@@ -114,9 +116,12 @@ export declare class UiBaseLocators {
114
116
  clickConfirmCreateFolderButton(): Promise<void>;
115
117
  clickDeleteThreeDotsButton(): Promise<void>;
116
118
  clickRemoveExactButton(): Promise<void>;
119
+ clickRemoveButtonForName(name: string): Promise<void>;
120
+ clickTrashIconButtonForName(name: string): Promise<void>;
117
121
  clickRemoveWithName(name: string): Promise<void>;
118
122
  clickDisableButton(): Promise<void>;
119
123
  clickConfirmDisableButton(): Promise<void>;
124
+ clickConfirmRemoveButton(): Promise<void>;
120
125
  clickEnableButton(): Promise<void>;
121
126
  clickConfirmEnableButton(): Promise<void>;
122
127
  insertDictionaryItem(dictionaryName: string): Promise<void>;
@@ -169,7 +174,7 @@ export declare class UiBaseLocators {
169
174
  doesGroupHaveValue(value: string): Promise<void>;
170
175
  rename(newName: string): Promise<void>;
171
176
  isSuccessButtonWithTextVisible(text: string): Promise<void>;
172
- dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number, horizontalOffset: number, steps?: any): Promise<void>;
177
+ dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset?: number, horizontalOffset?: number, steps?: number): Promise<void>;
173
178
  clickCreateLink(): Promise<void>;
174
179
  insertSystemFieldValue(fieldValue: string): Promise<void>;
175
180
  insertPartialView(partialViewName: string): Promise<void>;
@@ -39,6 +39,7 @@ class UiBaseLocators {
39
39
  chooseModalBtn;
40
40
  addBtn;
41
41
  renameFolderThreeDotsBtn;
42
+ renameFolderBtn;
42
43
  updateFolderBtn;
43
44
  filterChooseBtn;
44
45
  updateBtn;
@@ -71,7 +72,6 @@ class UiBaseLocators {
71
72
  enableBtn;
72
73
  confirmEnableBtn;
73
74
  iconBtn;
74
- bugIconBtn;
75
75
  aliasLockBtn;
76
76
  aliasNameTxt;
77
77
  deleteFolderThreeDotsBtn;
@@ -88,6 +88,7 @@ class UiBaseLocators {
88
88
  chooseRootContentBtn;
89
89
  queryResults;
90
90
  reloadBtn;
91
+ confirmToRemoveBtn;
91
92
  constructor(page) {
92
93
  this.page = page;
93
94
  this.saveBtn = page.getByLabel('Save', { exact: true });
@@ -101,7 +102,7 @@ class UiBaseLocators {
101
102
  this.breadcrumbBtn = page.getByLabel('Breadcrumb');
102
103
  this.createFolderBtn = page.getByLabel('Create folder');
103
104
  this.insertBtn = page.locator('uui-box uui-button').filter({ hasText: 'Insert' });
104
- this.modalCaretBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');
105
+ this.modalCaretBtn = page.locator('uui-modal-sidebar').locator('#caret-button');
105
106
  this.queryBuilderBtn = page.locator('#query-builder-button').getByLabel('Query builder');
106
107
  this.queryBuilderOrderedBy = page.locator('#property-alias-dropdown').getByLabel('Property alias');
107
108
  this.queryBuilderCreateDate = page.locator('#property-alias-dropdown').getByText('CreateDate').locator("..");
@@ -124,6 +125,7 @@ class UiBaseLocators {
124
125
  this.chooseModalBtn = page.locator('umb-tree-picker-modal').getByLabel('Choose');
125
126
  this.addBtn = page.getByLabel('Add', { exact: true });
126
127
  this.renameFolderThreeDotsBtn = page.getByLabel('Rename Folder...');
128
+ this.renameFolderBtn = page.getByLabel('Rename folder');
127
129
  this.updateFolderBtn = page.getByLabel('Update Folder');
128
130
  this.filterChooseBtn = page.locator('button').filter({ hasText: 'Choose' });
129
131
  this.updateBtn = page.getByLabel('Update');
@@ -156,7 +158,6 @@ class UiBaseLocators {
156
158
  this.enableBtn = page.getByLabel('Enable');
157
159
  this.confirmEnableBtn = page.locator('#confirm').getByLabel('Enable');
158
160
  this.iconBtn = page.getByLabel('icon');
159
- this.bugIconBtn = page.getByLabel('icon-bug').getByRole('img');
160
161
  this.aliasLockBtn = page.locator('#name #alias-lock');
161
162
  this.aliasNameTxt = page.locator('#name').getByLabel('alias');
162
163
  this.deleteFolderThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete Folder...');
@@ -173,6 +174,7 @@ class UiBaseLocators {
173
174
  this.chooseRootContentBtn = page.getByLabel('Choose root document');
174
175
  this.queryResults = page.locator('query-results');
175
176
  this.reloadBtn = page.getByLabel('Reload');
177
+ this.confirmToRemoveBtn = page.locator('#confirm').getByLabel('Remove');
176
178
  }
177
179
  async clickActionsMenuForName(name) {
178
180
  await this.page.locator('[label="' + name + '"] >> [label="Open actions menu"]').first().click({ force: true });
@@ -186,6 +188,7 @@ class UiBaseLocators {
186
188
  async reloadTree(treeName) {
187
189
  // Waits until the tree item is visible
188
190
  await (0, test_1.expect)(this.page.getByLabel(treeName, { exact: true })).toBeVisible();
191
+ await this.page.waitForTimeout(500);
189
192
  await this.clickActionsMenuForName(treeName);
190
193
  await this.clickReloadButton();
191
194
  const menuItem = this.page.locator('uui-menu-item[label="' + treeName + '"]');
@@ -214,6 +217,9 @@ class UiBaseLocators {
214
217
  async clickRenameFolderThreeDotsButton() {
215
218
  await this.renameFolderThreeDotsBtn.click();
216
219
  }
220
+ async clickRenameFolderButton() {
221
+ await this.renameFolderBtn.click();
222
+ }
217
223
  async clickUpdateFolderButton() {
218
224
  await this.updateFolderBtn.click();
219
225
  }
@@ -239,9 +245,11 @@ class UiBaseLocators {
239
245
  async updateIcon(iconName) {
240
246
  await this.iconBtn.click({ force: true });
241
247
  await this.searchForTypeToFilterValue(iconName);
242
- await this.bugIconBtn.click();
248
+ await this.clickLabelWithName(iconName, true);
249
+ await this.clickSubmitButton();
243
250
  }
244
251
  async clickTextButtonWithName(name) {
252
+ await (0, test_1.expect)(this.page.getByText(name, { exact: true })).toBeVisible();
245
253
  await this.page.getByText(name, { exact: true }).click();
246
254
  }
247
255
  async clickSelectPropertyEditorButton() {
@@ -283,6 +291,12 @@ class UiBaseLocators {
283
291
  async clickRemoveExactButton() {
284
292
  await this.removeExactBtn.click();
285
293
  }
294
+ async clickRemoveButtonForName(name) {
295
+ await this.page.locator('[name="' + name + '"] [Label="Remove"]').click();
296
+ }
297
+ async clickTrashIconButtonForName(name) {
298
+ await this.page.locator('[name="' + name + '"] [name="icon-trash"]').click();
299
+ }
286
300
  async clickRemoveWithName(name) {
287
301
  await this.page.getByLabel('Remove ' + name).click();
288
302
  }
@@ -292,6 +306,9 @@ class UiBaseLocators {
292
306
  async clickConfirmDisableButton() {
293
307
  await this.confirmDisableBtn.click();
294
308
  }
309
+ async clickConfirmRemoveButton() {
310
+ await this.confirmToRemoveBtn.click();
311
+ }
295
312
  async clickEnableButton() {
296
313
  await this.enableBtn.click();
297
314
  }
@@ -435,7 +452,8 @@ class UiBaseLocators {
435
452
  return await (0, test_1.expect)(this.descriptionBtn).toHaveValue(value);
436
453
  }
437
454
  async clickStructureTab() {
438
- await (0, test_1.expect)(this.structureTabBtn).toBeVisible();
455
+ await this.structureTabBtn.waitFor({ state: 'visible' });
456
+ await this.page.waitForLoadState();
439
457
  await this.structureTabBtn.click();
440
458
  }
441
459
  async clickAllowAtRootButton() {
@@ -477,10 +495,11 @@ class UiBaseLocators {
477
495
  }
478
496
  async addPropertyEditor(propertyEditorName, index = 0) {
479
497
  await this.addPropertyBtn.nth(index).click({ force: true });
498
+ await this.enterAPropertyName(propertyEditorName);
499
+ await (0, test_1.expect)(this.propertyNameTxt).toHaveValue(propertyEditorName);
480
500
  await this.clickSelectPropertyEditorButton();
481
501
  await this.searchForTypeToFilterValue(propertyEditorName);
482
502
  await this.page.getByText(propertyEditorName, { exact: true }).click();
483
- await this.enterAPropertyName(propertyEditorName);
484
503
  await this.clickAddButton();
485
504
  }
486
505
  async updatePropertyEditor(propertyEditorName) {
@@ -500,6 +519,7 @@ class UiBaseLocators {
500
519
  await groupNameTxt.fill(groupName);
501
520
  }
502
521
  async doesGroupHaveValue(value) {
522
+ await (0, test_1.expect)(this.page.getByLabel('Group', { exact: true })).toBeVisible();
503
523
  return await (0, test_1.expect)(this.page.getByLabel('Group', { exact: true })).toHaveValue(value);
504
524
  }
505
525
  async rename(newName) {
@@ -513,13 +533,17 @@ class UiBaseLocators {
513
533
  async isSuccessButtonWithTextVisible(text) {
514
534
  return await (0, test_1.expect)(this.successState.filter({ hasText: text })).toBeVisible();
515
535
  }
516
- async dragAndDrop(dragFromSelector, dragToSelector, verticalOffset, horizontalOffset, steps) {
536
+ async dragAndDrop(dragFromSelector, dragToSelector, verticalOffset = 0, horizontalOffset = 0, steps = 5) {
537
+ await (0, test_1.expect)(dragFromSelector).toBeVisible();
538
+ await (0, test_1.expect)(dragToSelector).toBeVisible();
517
539
  const targetLocation = await dragToSelector.boundingBox();
518
540
  const elementCenterX = targetLocation.x + targetLocation.width / 2;
519
541
  const elementCenterY = targetLocation.y + targetLocation.height / 2;
520
542
  await dragFromSelector.hover();
521
543
  await this.page.mouse.down();
544
+ await this.page.waitForTimeout(200);
522
545
  await this.page.mouse.move(elementCenterX + horizontalOffset, elementCenterY + verticalOffset, { steps: steps });
546
+ await this.page.waitForTimeout(200);
523
547
  await this.page.mouse.up();
524
548
  }
525
549
  async clickCreateLink() {