@umbraco/playwright-testhelpers 17.1.0-beta.5 → 17.1.0-beta.7
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/BaseApiHelper.d.ts +19 -0
- package/dist/lib/helpers/BaseApiHelper.js +87 -0
- package/dist/lib/helpers/BaseApiHelper.js.map +1 -0
- package/dist/lib/helpers/ConstantHelper.d.ts +0 -17
- package/dist/lib/helpers/ConstantHelper.js +0 -17
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/ContentRenderUiHelper.js +3 -3
- package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -1
- package/dist/lib/helpers/ContentUiHelper.js +487 -353
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
- package/dist/lib/helpers/CurrentUserProfileUiHelper.js +10 -4
- package/dist/lib/helpers/CurrentUserProfileUiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +9 -21
- package/dist/lib/helpers/DataTypeApiHelper.js +32 -125
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.js +332 -193
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +8 -15
- package/dist/lib/helpers/DictionaryApiHelper.js +49 -77
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.js +23 -17
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +7 -13
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js +44 -69
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js +10 -8
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +4 -18
- package/dist/lib/helpers/DocumentTypeApiHelper.js +4 -134
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeUiHelper.js +34 -22
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/ExamineManagementUiHelper.js +6 -5
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -1
- package/dist/lib/helpers/FormsUiHelper.js +159 -119
- package/dist/lib/helpers/FormsUiHelper.js.map +1 -1
- package/dist/lib/helpers/HealthCheckUiHelper.js +7 -7
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageApiHelper.d.ts +10 -12
- package/dist/lib/helpers/LanguageApiHelper.js +34 -35
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.js +19 -16
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -1
- package/dist/lib/helpers/LogViewerUiHelper.js +31 -22
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
- package/dist/lib/helpers/LoginUiHelper.js +7 -4
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +4 -18
- package/dist/lib/helpers/MediaTypeApiHelper.js +4 -134
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaTypeUiHelper.js +17 -11
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaUiHelper.js +45 -36
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberApiHelper.d.ts +4 -12
- package/dist/lib/helpers/MemberApiHelper.js +6 -54
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +6 -11
- package/dist/lib/helpers/MemberGroupApiHelper.js +20 -35
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberGroupUiHelper.js +16 -13
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +5 -12
- package/dist/lib/helpers/MemberTypeApiHelper.js +16 -49
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberTypeUiHelper.js +3 -2
- package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberUiHelper.js +43 -25
- package/dist/lib/helpers/MemberUiHelper.js.map +1 -1
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +3 -2
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageApiHelper.d.ts +5 -4
- package/dist/lib/helpers/PackageApiHelper.js +47 -75
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.js +36 -30
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -20
- package/dist/lib/helpers/PartialViewApiHelper.js +12 -146
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.js +17 -14
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- package/dist/lib/helpers/PathBasedTreeApiHelper.d.ts +32 -0
- package/dist/lib/helpers/PathBasedTreeApiHelper.js +164 -0
- package/dist/lib/helpers/PathBasedTreeApiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +5 -3
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -1
- package/dist/lib/helpers/PublishedStatusUiHelper.js +8 -7
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -1
- package/dist/lib/helpers/RedirectManagementUiHelper.js +12 -7
- package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -1
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +7 -12
- package/dist/lib/helpers/RelationTypeApiHelper.js +28 -49
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/RelationTypeUiHelper.js +16 -13
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptApiHelper.d.ts +6 -22
- package/dist/lib/helpers/ScriptApiHelper.js +12 -165
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.js +13 -9
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +5 -20
- package/dist/lib/helpers/StylesheetApiHelper.js +13 -154
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.js +14 -9
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- package/dist/lib/helpers/TelemetryDataUiHelper.js +3 -2
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateApiHelper.d.ts +8 -15
- package/dist/lib/helpers/TemplateApiHelper.js +51 -83
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.js +25 -19
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
- package/dist/lib/helpers/TreeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/TreeApiHelper.js +116 -0
- package/dist/lib/helpers/TreeApiHelper.js.map +1 -0
- package/dist/lib/helpers/UiBaseLocators.d.ts +228 -230
- package/dist/lib/helpers/UiBaseLocators.js +871 -832
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +3 -13
- package/dist/lib/helpers/UserGroupApiHelper.js +3 -69
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.js +49 -32
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/UserUiHelper.js +46 -43
- package/dist/lib/helpers/UserUiHelper.js.map +1 -1
- package/dist/lib/helpers/VariantBasedApiHelper.d.ts +23 -0
- package/dist/lib/helpers/VariantBasedApiHelper.js +81 -0
- package/dist/lib/helpers/VariantBasedApiHelper.js.map +1 -0
- package/dist/lib/helpers/WebhookApiHelper.d.ts +1 -0
- package/dist/lib/helpers/WebhookApiHelper.js +10 -11
- package/dist/lib/helpers/WebhookApiHelper.js.map +1 -1
- package/dist/lib/helpers/WebhookUiHelper.js +27 -11
- package/dist/lib/helpers/WebhookUiHelper.js.map +1 -1
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +1 -1
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -1
- package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js +9 -4
- package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js.map +1 -1
- package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js +10 -5
- package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js.map +1 -1
- package/dist/lib/helpers/index.d.ts +4 -1
- package/dist/lib/helpers/index.js +9 -3
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/lib/helpers/BasePage.d.ts +0 -449
- package/dist/lib/helpers/BasePage.js +0 -547
- package/dist/lib/helpers/BasePage.js.map +0 -1
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MediaUiHelper = void 0;
|
|
4
4
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
5
|
const test_1 = require("@playwright/test");
|
|
6
|
-
const ConstantHelper_1 = require("./ConstantHelper");
|
|
7
6
|
class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
7
|
createMediaItemBtn;
|
|
9
8
|
mediaNameTxt;
|
|
@@ -51,43 +50,47 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
51
50
|
this.mediaWorkspace = page.locator('umb-media-workspace-editor');
|
|
52
51
|
}
|
|
53
52
|
async clickCreateMediaItemButton() {
|
|
54
|
-
await this.click(
|
|
53
|
+
await this.createMediaItemBtn.click();
|
|
55
54
|
}
|
|
56
55
|
async enterMediaItemName(name) {
|
|
57
|
-
await
|
|
56
|
+
await (0, test_1.expect)(this.mediaNameTxt).toBeVisible();
|
|
57
|
+
await this.mediaNameTxt.clear();
|
|
58
|
+
await this.mediaNameTxt.fill(name);
|
|
59
|
+
await (0, test_1.expect)(this.mediaNameTxt).toHaveValue(name);
|
|
58
60
|
}
|
|
59
61
|
async clickMediaTypeWithNameButton(mediaTypeName) {
|
|
60
|
-
await this.
|
|
62
|
+
await this.page.getByLabel(mediaTypeName, { exact: true }).click();
|
|
61
63
|
}
|
|
62
64
|
async searchForMediaItemByName(name) {
|
|
63
|
-
await this.
|
|
65
|
+
await this.mediaSearchTxt.clear();
|
|
66
|
+
await this.mediaSearchTxt.fill(name);
|
|
64
67
|
}
|
|
65
68
|
async doesMediaCardsContainAmount(count) {
|
|
66
|
-
await
|
|
69
|
+
await (0, test_1.expect)(this.mediaCardItems).toHaveCount(count);
|
|
67
70
|
}
|
|
68
71
|
async doesMediaCardContainText(name) {
|
|
69
|
-
await
|
|
72
|
+
await (0, test_1.expect)(this.mediaCardItems).toContainText(name);
|
|
70
73
|
}
|
|
71
74
|
async clickTrashButton() {
|
|
72
|
-
await this.click(
|
|
75
|
+
await this.trashBtn.click();
|
|
73
76
|
}
|
|
74
77
|
async restoreMediaItem(name) {
|
|
75
78
|
await this.clickActionsMenuForName(name);
|
|
76
|
-
await this.click(
|
|
77
|
-
await this.page.waitForTimeout(
|
|
79
|
+
await this.restoreThreeDotsBtn.click();
|
|
80
|
+
await this.page.waitForTimeout(1000);
|
|
78
81
|
await this.clickRestoreButton();
|
|
79
82
|
}
|
|
80
83
|
async waitForMediaToBeTrashed() {
|
|
81
|
-
await this.waitForLoadState();
|
|
84
|
+
await this.page.waitForLoadState();
|
|
82
85
|
}
|
|
83
86
|
async waitForRecycleBinToBeEmptied() {
|
|
84
|
-
await this.waitForLoadState();
|
|
87
|
+
await this.page.waitForLoadState();
|
|
85
88
|
}
|
|
86
89
|
async waitForMediaToBeMoved() {
|
|
87
|
-
await this.waitForLoadState();
|
|
90
|
+
await this.page.waitForLoadState();
|
|
88
91
|
}
|
|
89
92
|
async waitForMediaItemToBeCreated() {
|
|
90
|
-
await this.waitForLoadState();
|
|
93
|
+
await this.page.waitForLoadState();
|
|
91
94
|
}
|
|
92
95
|
async deleteMediaItem(name) {
|
|
93
96
|
await this.clickActionsMenuForName(name);
|
|
@@ -95,30 +98,33 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
95
98
|
await this.clickConfirmToDeleteButton();
|
|
96
99
|
}
|
|
97
100
|
async clickCreateMediaWithType(mediaTypeName) {
|
|
98
|
-
await
|
|
101
|
+
await (0, test_1.expect)(this.mediaCreateBtn).toBeVisible();
|
|
102
|
+
await this.mediaCreateBtn.click();
|
|
99
103
|
await this.clickMediaTypeInPopoverByName(mediaTypeName);
|
|
100
104
|
}
|
|
101
105
|
async clickMediaTypeName(mediaTypeName) {
|
|
102
|
-
await this.
|
|
106
|
+
await this.documentTypeNode.filter({ hasText: mediaTypeName }).click();
|
|
103
107
|
}
|
|
104
108
|
async clickMediaTypeInPopoverByName(mediaTypeName) {
|
|
105
|
-
await this.
|
|
109
|
+
await this.mediaPopoverLayout.getByLabel(mediaTypeName).click();
|
|
106
110
|
}
|
|
107
111
|
async clickEmptyRecycleBinButton() {
|
|
112
|
+
await this.recycleBinMenuItem.hover();
|
|
113
|
+
await (0, test_1.expect)(this.emptyRecycleBinBtn).toBeVisible();
|
|
108
114
|
// Force click is needed
|
|
109
|
-
await this.
|
|
115
|
+
await this.emptyRecycleBinBtn.click({ force: true });
|
|
110
116
|
}
|
|
111
117
|
async clickConfirmEmptyRecycleBinButton() {
|
|
112
|
-
await this.click(
|
|
118
|
+
await this.confirmEmptyRecycleBinBtn.click();
|
|
113
119
|
}
|
|
114
120
|
async clickCreateModalButton() {
|
|
115
|
-
await this.click(
|
|
121
|
+
await this.actionModalCreateBtn.click();
|
|
116
122
|
}
|
|
117
123
|
async clickMediaCaretButtonForName(name) {
|
|
118
|
-
await this.
|
|
124
|
+
await this.page.locator('umb-media-tree-item [label="' + name + '"]').locator('#caret-button').click();
|
|
119
125
|
}
|
|
120
126
|
async openMediaCaretButtonForName(name) {
|
|
121
|
-
const menuItem = this.page.locator(
|
|
127
|
+
const menuItem = this.page.locator('umb-media-tree-item [label="' + name + '"]');
|
|
122
128
|
const isCaretButtonOpen = await menuItem.getAttribute('show-children');
|
|
123
129
|
if (isCaretButtonOpen === null) {
|
|
124
130
|
await this.clickMediaCaretButtonForName(name);
|
|
@@ -140,43 +146,46 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
140
146
|
});
|
|
141
147
|
}
|
|
142
148
|
async isMediaGridViewVisible(isVisible = true) {
|
|
143
|
-
|
|
149
|
+
return (0, test_1.expect)(this.mediaGridView).toBeVisible({ visible: isVisible });
|
|
144
150
|
}
|
|
145
151
|
async isMediaListViewVisible(isVisible = true) {
|
|
146
|
-
|
|
152
|
+
return (0, test_1.expect)(this.mediaListView).toBeVisible({ visible: isVisible });
|
|
147
153
|
}
|
|
148
154
|
async doesMediaWorkspaceHaveText(text) {
|
|
149
|
-
|
|
155
|
+
return (0, test_1.expect)(this.mediaWorkspace).toContainText(text);
|
|
150
156
|
}
|
|
151
157
|
async clickBulkTrashButton() {
|
|
152
|
-
await this.click(
|
|
158
|
+
await this.bulkTrashBtn.click();
|
|
153
159
|
}
|
|
154
160
|
async clickBulkMoveToButton() {
|
|
155
|
-
await this.click(
|
|
161
|
+
await this.bulkMoveToBtn.click();
|
|
156
162
|
}
|
|
157
163
|
async clickModalTextByName(name) {
|
|
158
|
-
await this.
|
|
164
|
+
await this.sidebarModal.getByLabel(name, { exact: true }).click();
|
|
159
165
|
}
|
|
160
166
|
async reloadMediaTree() {
|
|
161
|
-
await
|
|
162
|
-
await this.click(
|
|
167
|
+
await (0, test_1.expect)(this.mediaHeader).toBeVisible();
|
|
168
|
+
await this.mediaHeader.click();
|
|
169
|
+
await (0, test_1.expect)(this.mediaHeaderActionsMenu).toBeVisible();
|
|
170
|
+
await this.mediaHeaderActionsMenu.click({ force: true });
|
|
163
171
|
await this.clickReloadChildrenActionMenuOption();
|
|
164
172
|
}
|
|
165
173
|
async isMediaTreeItemVisible(name, isVisible = true) {
|
|
166
|
-
return
|
|
174
|
+
return (0, test_1.expect)(this.mediaTreeItem.getByLabel(name, { exact: true })).toBeVisible({ visible: isVisible });
|
|
167
175
|
}
|
|
168
176
|
async doesMediaItemInTreeHaveThumbnail(name, thumbnailIconName) {
|
|
169
|
-
const mediaThumbnailIconLocator = this.page.locator(
|
|
170
|
-
await
|
|
177
|
+
const mediaThumbnailIconLocator = this.page.locator('umb-media-tree-item [label="' + name + '"]').locator('#icon-container #icon');
|
|
178
|
+
await (0, test_1.expect)(mediaThumbnailIconLocator).toHaveAttribute('name', thumbnailIconName);
|
|
171
179
|
}
|
|
172
180
|
async isChildMediaVisible(parentName, childName, isVisible = true) {
|
|
173
|
-
return
|
|
181
|
+
return (0, test_1.expect)(this.mediaTreeItem.filter({ hasText: parentName }).getByText(childName, { exact: true })).toBeVisible({ visible: isVisible });
|
|
174
182
|
}
|
|
175
183
|
async clickCaretButtonForMediaName(name) {
|
|
176
|
-
await this.
|
|
184
|
+
await this.mediaTreeItem.filter({ hasText: name }).last().locator('#caret-button').last().click();
|
|
177
185
|
}
|
|
178
186
|
async goToMediaWithName(mediaName) {
|
|
179
|
-
await
|
|
187
|
+
await (0, test_1.expect)(this.mediaTreeItem.getByText(mediaName, { exact: true })).toBeVisible();
|
|
188
|
+
await this.mediaTreeItem.getByText(mediaName, { exact: true }).click();
|
|
180
189
|
}
|
|
181
190
|
}
|
|
182
191
|
exports.MediaUiHelper = MediaUiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class MediaUiHelper extends UiBaseLocators {\n private readonly createMediaItemBtn: Locator;\n private readonly mediaNameTxt: Locator;\n private readonly actionModalCreateBtn: Locator;\n private readonly mediaSearchTxt: Locator;\n private readonly trashBtn: Locator;\n private readonly restoreThreeDotsBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly mediaCreateBtn: Locator;\n private readonly mediaListHeader: Locator;\n private readonly mediaCardItemsValues: Locator;\n private readonly mediaListView: Locator;\n private readonly mediaGridView: Locator;\n private readonly mediaListNameValues: Locator;\n private readonly bulkTrashBtn: Locator;\n private readonly bulkMoveToBtn: Locator;\n private readonly mediaHeader: Locator;\n private readonly mediaHeaderActionsMenu: Locator;\n private readonly emptyRecycleBinBtn: Locator;\n private readonly mediaTreeItem: Locator;\n private readonly mediaPopoverLayout: Locator;\n private readonly mediaWorkspace: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');\n this.mediaNameTxt = page.locator('#name-input #input');\n this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');\n this.mediaSearchTxt = page.getByLabel('Search', {exact: true});\n this.trashBtn = page.getByLabel(/^Trash(…)?$/);\n this.restoreThreeDotsBtn = page.getByRole('button', {name: 'Restore…'});\n this.confirmEmptyRecycleBinBtn = page.locator('#confirm').getByLabel('Empty Recycle Bin', {exact: true});\n this.mediaCreateBtn = this.page.locator('umb-collection-toolbar').getByLabel('Create');\n this.mediaListView = this.page.locator('umb-media-table-collection-view');\n this.mediaGridView = this.page.locator('umb-media-grid-collection-view');\n this.mediaListHeader = this.mediaListView.locator('uui-table-head-cell span');\n this.mediaCardItemsValues = this.mediaCardItems.locator('span');\n this.mediaListNameValues = this.mediaListView.locator('umb-media-table-column-name span');\n this.bulkTrashBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Trash'});\n this.bulkMoveToBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Move to'});\n this.mediaHeader = page.getByRole('heading', {name: 'Media'});\n this.mediaHeaderActionsMenu = page.locator('#header #action-modal');\n this.emptyRecycleBinBtn = page.locator('[label=\"Empty Recycle Bin\"]').locator('svg');\n this.mediaTreeItem = page.locator('umb-media-tree-item');\n this.mediaPopoverLayout = page.locator('umb-popover-layout');\n this.mediaWorkspace = page.locator('umb-media-workspace-editor');\n }\n\n async clickCreateMediaItemButton() {\n await this.click(this.createMediaItemBtn);\n }\n\n async enterMediaItemName(name: string) {\n await this.enterText(this.mediaNameTxt, name, {verify: true});\n }\n\n async clickMediaTypeWithNameButton(mediaTypeName: string) {\n await this.click(this.page.getByLabel(mediaTypeName, {exact: true}));\n }\n\n async searchForMediaItemByName(name: string) {\n await this.enterText(this.mediaSearchTxt, name);\n }\n\n async doesMediaCardsContainAmount(count: number) {\n await this.hasCount(this.mediaCardItems, count);\n }\n\n async doesMediaCardContainText(name: string) {\n await this.containsText(this.mediaCardItems, name);\n }\n\n async clickTrashButton() {\n await this.click(this.trashBtn);\n }\n\n async restoreMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.click(this.restoreThreeDotsBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.medium);\n await this.clickRestoreButton();\n }\n\n async waitForMediaToBeTrashed() {\n await this.waitForLoadState();\n }\n\n async waitForRecycleBinToBeEmptied() {\n await this.waitForLoadState();\n }\n\n async waitForMediaToBeMoved() {\n await this.waitForLoadState();\n }\n\n async waitForMediaItemToBeCreated() {\n await this.waitForLoadState();\n }\n\n async deleteMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.clickDeleteActionMenuOption();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickCreateMediaWithType(mediaTypeName: string) {\n await this.click(this.mediaCreateBtn);\n await this.clickMediaTypeInPopoverByName(mediaTypeName);\n }\n\n async clickMediaTypeName(mediaTypeName: string) {\n await this.click(this.documentTypeNode.filter({hasText: mediaTypeName}));\n }\n\n async clickMediaTypeInPopoverByName(mediaTypeName: string) {\n await this.click(this.mediaPopoverLayout.getByLabel(mediaTypeName));\n }\n\n async clickEmptyRecycleBinButton() {\n // Force click is needed\n await this.hoverAndClick(this.recycleBinMenuItem, this.emptyRecycleBinBtn, {force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.click(this.confirmEmptyRecycleBinBtn);\n }\n\n async clickCreateModalButton() {\n await this.click(this.actionModalCreateBtn);\n }\n\n async clickMediaCaretButtonForName(name: string) {\n await this.click(this.page.locator(`umb-media-tree-item [label=\"${name}\"]`).locator('#caret-button'));\n }\n\n async openMediaCaretButtonForName(name: string) {\n const menuItem = this.page.locator(`umb-media-tree-item [label=\"${name}\"]`);\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n await this.clickMediaCaretButtonForName(name);\n }\n }\n \n async doesMediaGridValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaCardItemsValues.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListHeaderValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListHeader.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListNameValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListNameValues.nth(index)).toHaveText(text);\n });\n }\n\n async isMediaGridViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.mediaGridView, isVisible);\n }\n\n async isMediaListViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.mediaListView, isVisible);\n }\n\n async doesMediaWorkspaceHaveText(text: string) {\n await this.containsText(this.mediaWorkspace, text);\n }\n\n async clickBulkTrashButton() {\n await this.click(this.bulkTrashBtn);\n }\n\n async clickBulkMoveToButton() {\n await this.click(this.bulkMoveToBtn);\n }\n\n async clickModalTextByName(name: string) {\n await this.click(this.sidebarModal.getByLabel(name, {exact: true}));\n }\n\n async reloadMediaTree() {\n await this.click(this.mediaHeader);\n await this.click(this.mediaHeaderActionsMenu, {force: true});\n await this.clickReloadChildrenActionMenuOption();\n }\n\n async isMediaTreeItemVisible(name: string, isVisible: boolean = true) {\n return await this.isVisible(this.mediaTreeItem.getByLabel(name, {exact: true}), isVisible);\n }\n\n async doesMediaItemInTreeHaveThumbnail(name: string, thumbnailIconName: string) {\n const mediaThumbnailIconLocator = this.page.locator(`umb-media-tree-item [label=\"${name}\"]`).locator('#icon-container #icon');\n await this.hasAttribute(mediaThumbnailIconLocator, 'name', thumbnailIconName);\n }\n\n async isChildMediaVisible(parentName: string, childName: string, isVisible: boolean = true) {\n return await this.isVisible(this.mediaTreeItem.filter({hasText: parentName}).getByText(childName, {exact: true}), isVisible);\n }\n\n async clickCaretButtonForMediaName(name: string) {\n await this.click(this.mediaTreeItem.filter({hasText: name}).last().locator('#caret-button').last());\n }\n\n async goToMediaWithName(mediaName: string) {\n await this.click(this.mediaTreeItem.getByText(mediaName, {exact: true}));\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"MediaUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class MediaUiHelper extends UiBaseLocators {\n private readonly createMediaItemBtn: Locator;\n private readonly mediaNameTxt: Locator;\n private readonly actionModalCreateBtn: Locator;\n private readonly mediaSearchTxt: Locator;\n private readonly trashBtn: Locator;\n private readonly restoreThreeDotsBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly mediaCreateBtn: Locator;\n private readonly mediaListHeader: Locator;\n private readonly mediaCardItemsValues: Locator;\n private readonly mediaListView: Locator;\n private readonly mediaGridView: Locator;\n private readonly mediaListNameValues: Locator;\n private readonly bulkTrashBtn: Locator;\n private readonly bulkMoveToBtn: Locator;\n private readonly mediaHeader: Locator;\n private readonly mediaHeaderActionsMenu: Locator;\n private readonly emptyRecycleBinBtn: Locator;\n private readonly mediaTreeItem: Locator;\n private readonly mediaPopoverLayout: Locator;\n private readonly mediaWorkspace: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');\n this.mediaNameTxt = page.locator('#name-input #input');\n this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');\n this.mediaSearchTxt = page.getByLabel('Search', {exact: true});\n this.trashBtn = page.getByLabel(/^Trash(…)?$/);\n this.restoreThreeDotsBtn = page.getByRole('button', {name: 'Restore…'});\n this.confirmEmptyRecycleBinBtn = page.locator('#confirm').getByLabel('Empty Recycle Bin', {exact: true});\n this.mediaCreateBtn = this.page.locator('umb-collection-toolbar').getByLabel('Create');\n this.mediaListView = this.page.locator('umb-media-table-collection-view');\n this.mediaGridView = this.page.locator('umb-media-grid-collection-view');\n this.mediaListHeader = this.mediaListView.locator('uui-table-head-cell span');\n this.mediaCardItemsValues = this.mediaCardItems.locator('span');\n this.mediaListNameValues = this.mediaListView.locator('umb-media-table-column-name span');\n this.bulkTrashBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Trash'});\n this.bulkMoveToBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Move to'});\n this.mediaHeader = page.getByRole('heading', {name: 'Media'});\n this.mediaHeaderActionsMenu = page.locator('#header #action-modal');\n this.emptyRecycleBinBtn = page.locator('[label=\"Empty Recycle Bin\"]').locator('svg');\n this.mediaTreeItem = page.locator('umb-media-tree-item');\n this.mediaPopoverLayout = page.locator('umb-popover-layout');\n this.mediaWorkspace = page.locator('umb-media-workspace-editor');\n }\n\n async clickCreateMediaItemButton() {\n await this.createMediaItemBtn.click();\n }\n\n async enterMediaItemName(name: string) {\n await expect(this.mediaNameTxt).toBeVisible();\n await this.mediaNameTxt.clear();\n await this.mediaNameTxt.fill(name);\n await expect(this.mediaNameTxt).toHaveValue(name);\n }\n\n async clickMediaTypeWithNameButton(mediaTypeName: string) {\n await this.page.getByLabel(mediaTypeName, {exact: true}).click();\n }\n\n async searchForMediaItemByName(name: string) {\n await this.mediaSearchTxt.clear();\n await this.mediaSearchTxt.fill(name);\n }\n\n async doesMediaCardsContainAmount(count: number) {\n await expect(this.mediaCardItems).toHaveCount(count);\n }\n\n async doesMediaCardContainText(name: string) {\n await expect(this.mediaCardItems).toContainText(name);\n }\n\n async clickTrashButton() {\n await this.trashBtn.click();\n }\n\n async restoreMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.restoreThreeDotsBtn.click();\n await this.page.waitForTimeout(1000);\n await this.clickRestoreButton();\n }\n\n async waitForMediaToBeTrashed() {\n await this.page.waitForLoadState();\n }\n\n async waitForRecycleBinToBeEmptied() {\n await this.page.waitForLoadState();\n }\n\n async waitForMediaToBeMoved() {\n await this.page.waitForLoadState();\n }\n\n async waitForMediaItemToBeCreated() {\n await this.page.waitForLoadState();\n }\n\n async deleteMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.clickDeleteActionMenuOption();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickCreateMediaWithType(mediaTypeName: string) {\n await expect(this.mediaCreateBtn).toBeVisible();\n await this.mediaCreateBtn.click();\n await this.clickMediaTypeInPopoverByName(mediaTypeName);\n }\n\n async clickMediaTypeName(mediaTypeName: string) {\n await this.documentTypeNode.filter({hasText: mediaTypeName}).click();\n }\n\n async clickMediaTypeInPopoverByName(mediaTypeName: string) {\n await this.mediaPopoverLayout.getByLabel(mediaTypeName).click();\n }\n\n async clickEmptyRecycleBinButton() {\n await this.recycleBinMenuItem.hover();\n await expect(this.emptyRecycleBinBtn).toBeVisible();\n // Force click is needed\n await this.emptyRecycleBinBtn.click({force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.confirmEmptyRecycleBinBtn.click();\n }\n\n async clickCreateModalButton() {\n await this.actionModalCreateBtn.click();\n }\n\n async clickMediaCaretButtonForName(name: string) {\n await this.page.locator('umb-media-tree-item [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async openMediaCaretButtonForName(name: string) {\n const menuItem = this.page.locator('umb-media-tree-item [label=\"' + name + '\"]')\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n await this.clickMediaCaretButtonForName(name);\n }\n }\n \n async doesMediaGridValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaCardItemsValues.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListHeaderValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListHeader.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListNameValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListNameValues.nth(index)).toHaveText(text);\n });\n }\n\n async isMediaGridViewVisible(isVisible: boolean = true) {\n return expect(this.mediaGridView).toBeVisible({visible: isVisible});\n }\n\n async isMediaListViewVisible(isVisible: boolean = true) {\n return expect(this.mediaListView).toBeVisible({visible: isVisible});\n }\n\n async doesMediaWorkspaceHaveText(text: string) {\n return expect(this.mediaWorkspace).toContainText(text);\n }\n\n async clickBulkTrashButton() {\n await this.bulkTrashBtn.click();\n }\n\n async clickBulkMoveToButton() {\n await this.bulkMoveToBtn.click();\n }\n\n async clickModalTextByName(name: string) {\n await this.sidebarModal.getByLabel(name, {exact: true}).click();\n }\n\n async reloadMediaTree() {\n await expect(this.mediaHeader).toBeVisible();\n await this.mediaHeader.click();\n await expect(this.mediaHeaderActionsMenu).toBeVisible();\n await this.mediaHeaderActionsMenu.click({force: true});\n await this.clickReloadChildrenActionMenuOption();\n }\n\n async isMediaTreeItemVisible(name: string, isVisible: boolean = true) {\n return expect(this.mediaTreeItem.getByLabel(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async doesMediaItemInTreeHaveThumbnail(name: string, thumbnailIconName: string) {\n const mediaThumbnailIconLocator = this.page.locator('umb-media-tree-item [label=\"' + name + '\"]').locator('#icon-container #icon');\n await expect(mediaThumbnailIconLocator).toHaveAttribute('name', thumbnailIconName);\n }\n\n async isChildMediaVisible(parentName: string, childName: string, isVisible: boolean = true) {\n return expect(this.mediaTreeItem.filter({hasText: parentName}).getByText(childName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async clickCaretButtonForMediaName(name: string) {\n await this.mediaTreeItem.filter({hasText: name}).last().locator('#caret-button').last().click();\n }\n\n async goToMediaWithName(mediaName: string) {\n await expect(this.mediaTreeItem.getByText(mediaName, {exact: true})).toBeVisible();\n await this.mediaTreeItem.getByText(mediaName, {exact: true}).click();\n }\n}"]}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class MemberApiHelper {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
get(id: string): Promise<any>;
|
|
6
|
-
create(member: any): Promise<string | undefined>;
|
|
7
|
-
delete(id: string): Promise<number | undefined>;
|
|
8
|
-
getAll(): Promise<import("playwright-core").APIResponse>;
|
|
1
|
+
import { VariantBasedApiHelper } from "./VariantBasedApiHelper";
|
|
2
|
+
export declare class MemberApiHelper extends VariantBasedApiHelper {
|
|
3
|
+
protected resourcePath: string;
|
|
4
|
+
protected filterPath: string;
|
|
9
5
|
filterByMemberTypeId(memberTypeId: string): Promise<import("playwright-core").APIResponse>;
|
|
10
|
-
doesExist(id: string): Promise<boolean>;
|
|
11
|
-
doesNameExist(name: string): Promise<any>;
|
|
12
|
-
getByName(name: string): Promise<any>;
|
|
13
|
-
ensureNameNotExists(name: string): Promise<number | null | undefined>;
|
|
14
6
|
createDefaultMember(memberName: string, memberTypeId: string, email: string, username: string, password: string): Promise<string | undefined>;
|
|
15
7
|
createMemberWithMemberGroup(memberName: string, memberTypeId: string, email: string, username: string, password: string, memberGroupId: string): Promise<string | undefined>;
|
|
16
8
|
}
|
|
@@ -1,62 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MemberApiHelper = void 0;
|
|
4
|
+
const VariantBasedApiHelper_1 = require("./VariantBasedApiHelper");
|
|
4
5
|
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
5
|
-
class MemberApiHelper {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
async get(id) {
|
|
11
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
|
|
12
|
-
return await response.json();
|
|
13
|
-
}
|
|
14
|
-
async create(member) {
|
|
15
|
-
if (member == null) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member', member);
|
|
19
|
-
return response.headers().location.split("v1/member/").pop();
|
|
20
|
-
}
|
|
21
|
-
async delete(id) {
|
|
22
|
-
if (id == null) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
|
|
26
|
-
return response.status();
|
|
27
|
-
}
|
|
28
|
-
async getAll() {
|
|
29
|
-
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/member?skip=0&take=1000');
|
|
30
|
-
}
|
|
6
|
+
class MemberApiHelper extends VariantBasedApiHelper_1.VariantBasedApiHelper {
|
|
7
|
+
resourcePath = 'member';
|
|
8
|
+
filterPath = 'filter/member';
|
|
9
|
+
// Member-specific filter
|
|
31
10
|
async filterByMemberTypeId(memberTypeId) {
|
|
32
|
-
return await this.api.get(this.
|
|
33
|
-
}
|
|
34
|
-
async doesExist(id) {
|
|
35
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
|
|
36
|
-
return response.status() === 200;
|
|
37
|
-
}
|
|
38
|
-
async doesNameExist(name) {
|
|
39
|
-
return await this.getByName(name);
|
|
40
|
-
}
|
|
41
|
-
async getByName(name) {
|
|
42
|
-
const rootMembers = await this.getAll();
|
|
43
|
-
const jsonMembers = await rootMembers.json();
|
|
44
|
-
for (const member of jsonMembers.items) {
|
|
45
|
-
if (member.variants[0].name === name) {
|
|
46
|
-
return await this.get(member.id);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
async ensureNameNotExists(name) {
|
|
52
|
-
const rootMembers = await this.getAll();
|
|
53
|
-
const jsonMembers = await rootMembers.json();
|
|
54
|
-
for (const member of jsonMembers.items) {
|
|
55
|
-
if (member.variants[0].name === name) {
|
|
56
|
-
return await this.delete(member.id);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
11
|
+
return await this.api.get(this.buildFilterUrl('?memberTypeId=' + memberTypeId + '&orderBy=username&skip=0&take=100'));
|
|
60
12
|
}
|
|
61
13
|
async createDefaultMember(memberName, memberTypeId, email, username, password) {
|
|
62
14
|
await this.ensureNameNotExists(memberName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberApiHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MemberApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberApiHelper.ts"],"names":[],"mappings":";;;AAAA,mEAA8D;AAC9D,wEAA4D;AAE5D,MAAa,eAAgB,SAAQ,6CAAqB;IAC9C,YAAY,GAAG,QAAQ,CAAC;IACxB,UAAU,GAAG,eAAe,CAAC;IAEvC,yBAAyB;IACzB,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,YAAY,GAAG,mCAAmC,CAAC,CAAC,CAAC;IACxH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAgB;QACnH,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,IAAI,oCAAa,EAAE;aAC/B,UAAU,EAAE;aACV,QAAQ,CAAC,UAAU,CAAC;aACpB,IAAI,EAAE;aACR,SAAS,CAAC,KAAK,CAAC;aAChB,YAAY,CAAC,QAAQ,CAAC;aACtB,YAAY,CAAC,QAAQ,CAAC;aACtB,gBAAgB,CAAC,YAAY,CAAC;aAC9B,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAgB,EAAE,aAAqB;QAClJ,MAAM,MAAM,GAAG,IAAI,oCAAa,EAAE;aAC/B,UAAU,EAAE;aACV,QAAQ,CAAC,UAAU,CAAC;aACpB,IAAI,EAAE;aACR,SAAS,CAAC,KAAK,CAAC;aAChB,YAAY,CAAC,QAAQ,CAAC;aACtB,YAAY,CAAC,QAAQ,CAAC;aACtB,gBAAgB,CAAC,YAAY,CAAC;aAC9B,QAAQ,CAAC,aAAa,CAAC;aACvB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;AArCD,0CAqCC","sourcesContent":["import {VariantBasedApiHelper} from \"./VariantBasedApiHelper\";\nimport {MemberBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MemberApiHelper extends VariantBasedApiHelper {\n protected resourcePath = 'member';\n protected filterPath = 'filter/member';\n\n // Member-specific filter\n async filterByMemberTypeId(memberTypeId: string) {\n return await this.api.get(this.buildFilterUrl('?memberTypeId=' + memberTypeId + '&orderBy=username&skip=0&take=100'));\n }\n\n async createDefaultMember(memberName: string, memberTypeId: string, email: string, username: string, password: string) {\n await this.ensureNameNotExists(memberName);\n\n const member = new MemberBuilder()\n .addVariant()\n .withName(memberName)\n .done()\n .withEmail(email)\n .withUsername(username)\n .withPassword(password)\n .withMemberTypeId(memberTypeId)\n .build();\n return await this.create(member);\n }\n\n async createMemberWithMemberGroup(memberName: string, memberTypeId: string, email: string, username: string, password: string, memberGroupId: string) {\n const member = new MemberBuilder()\n .addVariant()\n .withName(memberName)\n .done()\n .withEmail(email)\n .withUsername(username)\n .withPassword(password)\n .withMemberTypeId(memberTypeId)\n .addGroup(memberGroupId)\n .build();\n return await this.create(member);\n }\n}"]}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class MemberGroupApiHelper {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
create(name: string, id?: string): Promise<string | undefined>;
|
|
1
|
+
import { TreeApiHelper } from "./TreeApiHelper";
|
|
2
|
+
export declare class MemberGroupApiHelper extends TreeApiHelper {
|
|
3
|
+
protected resourcePath: string;
|
|
4
|
+
protected treePath: string;
|
|
5
|
+
createMemberGroup(name: string, id?: string): Promise<string | undefined>;
|
|
7
6
|
rename(id: string, name: string): Promise<import("playwright-core").APIResponse>;
|
|
8
|
-
delete(id: string): Promise<import("playwright-core").APIResponse>;
|
|
9
|
-
getAll(): Promise<import("playwright-core").APIResponse>;
|
|
10
|
-
doesExist(id: string): Promise<boolean>;
|
|
11
|
-
doesNameExist(name: string): Promise<any>;
|
|
12
7
|
getByName(name: string): Promise<any>;
|
|
13
|
-
ensureNameNotExists(name: string): Promise<
|
|
8
|
+
ensureNameNotExists(name: string): Promise<any>;
|
|
14
9
|
}
|
|
@@ -1,58 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MemberGroupApiHelper = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
async
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
|
|
11
|
-
return await response.json();
|
|
12
|
-
}
|
|
13
|
-
async create(name, id) {
|
|
4
|
+
const TreeApiHelper_1 = require("./TreeApiHelper");
|
|
5
|
+
class MemberGroupApiHelper extends TreeApiHelper_1.TreeApiHelper {
|
|
6
|
+
resourcePath = 'member-group';
|
|
7
|
+
treePath = 'tree/member-group';
|
|
8
|
+
// MemberGroup-specific create with optional id
|
|
9
|
+
async createMemberGroup(name, id) {
|
|
14
10
|
const memberGroupData = {
|
|
15
11
|
"name": name,
|
|
16
12
|
"id": id ? id : null,
|
|
17
13
|
};
|
|
18
|
-
const response = await this.api.post(this.
|
|
14
|
+
const response = await this.api.post(this.buildUrl(), memberGroupData);
|
|
19
15
|
return response.headers().location.split("v1/member-group/").pop();
|
|
20
16
|
}
|
|
21
17
|
async rename(id, name) {
|
|
22
18
|
const memberGroupData = {
|
|
23
19
|
"name": name
|
|
24
20
|
};
|
|
25
|
-
return await this.api.put(this.
|
|
26
|
-
}
|
|
27
|
-
async delete(id) {
|
|
28
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
|
|
29
|
-
}
|
|
30
|
-
async getAll() {
|
|
31
|
-
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-group/root?skip=0&take=10000');
|
|
32
|
-
}
|
|
33
|
-
async doesExist(id) {
|
|
34
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
|
|
35
|
-
return response.status() === 200;
|
|
36
|
-
}
|
|
37
|
-
async doesNameExist(name) {
|
|
38
|
-
return await this.getByName(name);
|
|
21
|
+
return await this.api.put(this.buildUrl('/' + id), memberGroupData);
|
|
39
22
|
}
|
|
23
|
+
// Override - MemberGroup has no folders
|
|
40
24
|
async getByName(name) {
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
for (const
|
|
44
|
-
if (
|
|
45
|
-
return this.get(
|
|
25
|
+
const rootItems = await this.getAllAtRoot();
|
|
26
|
+
const jsonItems = await rootItems.json();
|
|
27
|
+
for (const item of jsonItems.items) {
|
|
28
|
+
if (item.name === name) {
|
|
29
|
+
return this.get(item.id);
|
|
46
30
|
}
|
|
47
31
|
}
|
|
48
32
|
return false;
|
|
49
33
|
}
|
|
34
|
+
// Override - MemberGroup has no folders
|
|
50
35
|
async ensureNameNotExists(name) {
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
for (const
|
|
54
|
-
if (
|
|
55
|
-
return this.delete(
|
|
36
|
+
const rootItems = await this.getAllAtRoot();
|
|
37
|
+
const jsonItems = await rootItems.json();
|
|
38
|
+
for (const item of jsonItems.items) {
|
|
39
|
+
if (item.name === name) {
|
|
40
|
+
return this.delete(item.id);
|
|
56
41
|
}
|
|
57
42
|
}
|
|
58
43
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupApiHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MemberGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupApiHelper.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAE9C,MAAa,oBAAqB,SAAQ,6BAAa;IAC3C,YAAY,GAAG,cAAc,CAAC;IAC9B,QAAQ,GAAG,mBAAmB,CAAC;IAEzC,+CAA+C;IAC/C,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,EAAW;QAC/C,MAAM,eAAe,GAAG;YACtB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY;QACnC,MAAM,eAAe,GAAG;YACtB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC1B;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9CD,oDA8CC","sourcesContent":["import {TreeApiHelper} from \"./TreeApiHelper\";\n\nexport class MemberGroupApiHelper extends TreeApiHelper {\n protected resourcePath = 'member-group';\n protected treePath = 'tree/member-group';\n\n // MemberGroup-specific create with optional id\n async createMemberGroup(name: string, id?: string) {\n const memberGroupData = {\n \"name\": name,\n \"id\": id ? id : null,\n };\n const response = await this.api.post(this.buildUrl(), memberGroupData);\n return response.headers().location.split(\"v1/member-group/\").pop();\n }\n\n async rename(id: string, name: string) {\n const memberGroupData = {\n \"name\": name\n };\n return await this.api.put(this.buildUrl('/' + id), memberGroupData);\n }\n\n // Override - MemberGroup has no folders\n async getByName(name: string): Promise<any> {\n const rootItems = await this.getAllAtRoot();\n const jsonItems = await rootItems.json();\n\n for (const item of jsonItems.items) {\n if (item.name === name) {\n return this.get(item.id);\n }\n }\n return false;\n }\n\n // Override - MemberGroup has no folders\n async ensureNameNotExists(name: string): Promise<any> {\n const rootItems = await this.getAllAtRoot();\n const jsonItems = await rootItems.json();\n\n for (const item of jsonItems.items) {\n if (item.name === name) {\n return this.delete(item.id);\n }\n }\n return null;\n }\n}"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MemberGroupUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
4
5
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
6
|
const ConstantHelper_1 = require("./ConstantHelper");
|
|
6
7
|
class MemberGroupUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
@@ -24,35 +25,37 @@ class MemberGroupUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
24
25
|
this.memberGroupsSidebarBtn = this.membersSidebar.locator('uui-menu-item').filter({ hasText: 'Member Groups' });
|
|
25
26
|
}
|
|
26
27
|
async clickMemberGroupsTab() {
|
|
27
|
-
await
|
|
28
|
-
await this.page.waitForTimeout(
|
|
29
|
-
await this.click(
|
|
30
|
-
await
|
|
28
|
+
await (0, test_1.expect)(this.memberGroupsTab).toBeVisible();
|
|
29
|
+
await this.page.waitForTimeout(500);
|
|
30
|
+
await this.memberGroupsTab.click();
|
|
31
|
+
await (0, test_1.expect)(this.activeMemberGroupsTab).toBeVisible();
|
|
31
32
|
}
|
|
32
33
|
async clickMemberGroupCreateButton() {
|
|
33
|
-
await this.click(
|
|
34
|
+
await this.createMemberGroupBtn.click();
|
|
34
35
|
}
|
|
35
36
|
async clickMemberGroupsSidebarButton() {
|
|
36
|
-
await
|
|
37
|
+
await (0, test_1.expect)(this.memberGroupsSidebarBtn).toBeVisible();
|
|
38
|
+
await this.memberGroupsSidebarBtn.click();
|
|
37
39
|
}
|
|
38
40
|
async enterMemberGroupName(name) {
|
|
39
|
-
await
|
|
41
|
+
await (0, test_1.expect)(this.memberGroupNameTxt).toBeVisible();
|
|
42
|
+
await this.memberGroupNameTxt.clear();
|
|
43
|
+
await this.memberGroupNameTxt.fill(name);
|
|
40
44
|
}
|
|
41
45
|
async clickMemberGroupLinkByName(memberGroupName) {
|
|
42
|
-
await this.
|
|
46
|
+
await this.page.getByRole('link', { name: memberGroupName }).click();
|
|
43
47
|
}
|
|
44
48
|
async isMemberGroupNameVisible(memberGroupName, isVisible = true) {
|
|
45
|
-
|
|
46
|
-
return await this.isVisible(memberGroupNameLocator, isVisible, ConstantHelper_1.ConstantHelper.wait.short);
|
|
49
|
+
return (0, test_1.expect)(this.memberGroupView.filter({ hasText: memberGroupName })).toBeVisible({ visible: isVisible, timeout: 500 });
|
|
47
50
|
}
|
|
48
51
|
async clickMemberGroupsMenu() {
|
|
49
|
-
await this.click(
|
|
52
|
+
await this.memberGroupsMenu.click();
|
|
50
53
|
}
|
|
51
54
|
async waitForMemberGroupToBeCreated() {
|
|
52
|
-
await this.waitForLoadState();
|
|
55
|
+
await this.page.waitForLoadState();
|
|
53
56
|
}
|
|
54
57
|
async waitForMemberGroupToBeDeleted() {
|
|
55
|
-
await this.waitForLoadState();
|
|
58
|
+
await this.page.waitForLoadState();
|
|
56
59
|
}
|
|
57
60
|
async goToMemberGroups() {
|
|
58
61
|
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.members);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupUiHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MemberGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class MemberGroupUiHelper extends UiBaseLocators {\n private readonly memberGroupsTab: Locator;\n private readonly memberGroupNameTxt: Locator;\n private readonly memberGroupView: Locator;\n private readonly activeMemberGroupsTab: Locator;\n private readonly createMemberGroupBtn: Locator;\n private readonly memberGroupsMenu: Locator;\n private readonly membersSidebar: Locator;\n private readonly memberGroupsSidebarBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.memberGroupsTab = page.locator('uui-tab[label=\"Member Groups\"]');\n this.memberGroupNameTxt = page.locator('input#input');\n this.memberGroupView = page.locator('umb-member-group-table-collection-view');\n this.activeMemberGroupsTab = page.locator('uui-tab[label=\"Member Groups\"][active]');\n this.createMemberGroupBtn = page.getByTestId('collection-action:Umb.CollectionAction.MemberGroup.Create').getByLabel('Create', {exact: true});\n this.memberGroupsMenu = page.locator('umb-menu').getByLabel('Member Groups', {exact: true});\n this.membersSidebar = page.getByTestId('section-sidebar:Umb.SectionSidebarApp.Menu.MemberManagement');\n this.memberGroupsSidebarBtn = this.membersSidebar.locator('uui-menu-item').filter({hasText: 'Member Groups'});\n }\n\n async clickMemberGroupsTab() {\n await expect(this.memberGroupsTab).toBeVisible();\n await this.page.waitForTimeout(500);\n await this.memberGroupsTab.click();\n await expect(this.activeMemberGroupsTab).toBeVisible();\n }\n\n async clickMemberGroupCreateButton() {\n await this.createMemberGroupBtn.click();\n }\n\n async clickMemberGroupsSidebarButton() {\n await expect(this.memberGroupsSidebarBtn).toBeVisible();\n await this.memberGroupsSidebarBtn.click();\n }\n\n async enterMemberGroupName(name: string) {\n await expect(this.memberGroupNameTxt).toBeVisible();\n await this.memberGroupNameTxt.clear();\n await this.memberGroupNameTxt.fill(name);\n }\n\n async clickMemberGroupLinkByName(memberGroupName: string) {\n await this.page.getByRole('link', {name: memberGroupName}).click();\n }\n\n async isMemberGroupNameVisible(memberGroupName: string, isVisible: boolean = true) {\n return expect(this.memberGroupView.filter({hasText: memberGroupName})).toBeVisible({visible: isVisible, timeout: 500});\n }\n\n async clickMemberGroupsMenu() {\n await this.memberGroupsMenu.click();\n }\n\n async waitForMemberGroupToBeCreated() {\n await this.page.waitForLoadState();\n }\n\n async waitForMemberGroupToBeDeleted() {\n await this.page.waitForLoadState();\n }\n \n async goToMemberGroups() {\n await this.goToSection(ConstantHelper.sections.members);\n await this.clickMemberGroupsMenu();\n }\n}\n"]}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class MemberTypeApiHelper {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
ensureNameNotExists(name: string): Promise<
|
|
6
|
-
create(memberType: any): Promise<string | undefined>;
|
|
7
|
-
update(id: string, updatedMemberType: any): Promise<import("playwright-core").APIResponse | undefined>;
|
|
8
|
-
get(id: string): Promise<any>;
|
|
9
|
-
delete(id: string): Promise<number | undefined>;
|
|
10
|
-
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
1
|
+
import { TreeApiHelper } from "./TreeApiHelper";
|
|
2
|
+
export declare class MemberTypeApiHelper extends TreeApiHelper {
|
|
3
|
+
protected resourcePath: string;
|
|
4
|
+
protected treePath: string;
|
|
5
|
+
ensureNameNotExists(name: string): Promise<any>;
|
|
11
6
|
getByName(name: string): Promise<any>;
|
|
12
|
-
doesExist(id: string): Promise<boolean>;
|
|
13
|
-
doesNameExist(name: string): Promise<any>;
|
|
14
7
|
createDefaultMemberType(memberTypeName: string): Promise<string | undefined>;
|
|
15
8
|
createMemberTypeWithPropertyEditor(memberTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string): Promise<string | undefined>;
|
|
16
9
|
createMemberTypeWithTwoPropertyEditors(memberTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
|