@umbraco/playwright-testhelpers 2.0.0-beta.92 → 2.0.0-beta.94
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/ConstantHelper.d.ts +5 -0
- package/dist/lib/helpers/ConstantHelper.js +5 -0
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/ContentUiHelper.d.ts +11 -2
- package/dist/lib/helpers/ContentUiHelper.js +32 -4
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentApiHelper.d.ts +6 -0
- package/dist/lib/helpers/DocumentApiHelper.js +32 -1
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageApiHelper.d.ts +1 -0
- package/dist/lib/helpers/LanguageApiHelper.js +3 -0
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/NotificationConstantHelper.d.ts +1 -0
- package/dist/lib/helpers/NotificationConstantHelper.js +2 -1
- package/dist/lib/helpers/NotificationConstantHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +5 -0
- package/dist/lib/helpers/UiBaseLocators.js +14 -1
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +12 -1
- package/dist/lib/helpers/UserGroupApiHelper.js +98 -1
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +31 -5
- package/dist/lib/helpers/UserGroupUiHelper.js +90 -15
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/UserUiHelper.d.ts +0 -5
- package/dist/lib/helpers/UserUiHelper.js +0 -13
- package/dist/lib/helpers/UserUiHelper.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -68,16 +68,34 @@ class UserGroupApiHelper {
|
|
|
68
68
|
}
|
|
69
69
|
return false;
|
|
70
70
|
}
|
|
71
|
+
async doesUserGroupContainLanguage(userGroupName, languageName) {
|
|
72
|
+
const userGroup = await this.getByName(userGroupName);
|
|
73
|
+
return userGroup.languages.includes(languageName);
|
|
74
|
+
}
|
|
75
|
+
async doesUserGroupContainAccessToAllLanguages(userGroupName) {
|
|
76
|
+
const userGroup = await this.getByName(userGroupName);
|
|
77
|
+
return userGroup.hasAccessToAllLanguages;
|
|
78
|
+
}
|
|
79
|
+
async doesUserGroupContainDocumentRootAccess(userGroupName) {
|
|
80
|
+
const userGroup = await this.getByName(userGroupName);
|
|
81
|
+
return userGroup.documentRootAccess;
|
|
82
|
+
}
|
|
83
|
+
async doesUserGroupContainMediaRootAccess(userGroupName) {
|
|
84
|
+
const userGroup = await this.getByName(userGroupName);
|
|
85
|
+
return userGroup.mediaRootAccess;
|
|
86
|
+
}
|
|
71
87
|
async delete(id) {
|
|
72
88
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);
|
|
73
89
|
}
|
|
74
90
|
async createEmptyUserGroup(name) {
|
|
91
|
+
await this.ensureNameNotExists(name);
|
|
75
92
|
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
76
93
|
.withName(name)
|
|
77
94
|
.build();
|
|
78
95
|
return await this.create(userGroup);
|
|
79
96
|
}
|
|
80
97
|
async createSimpleUserGroupWithContentSection(name) {
|
|
98
|
+
await this.ensureNameNotExists(name);
|
|
81
99
|
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
82
100
|
.withName(name)
|
|
83
101
|
.addSection('Umb.Section.Content')
|
|
@@ -88,6 +106,7 @@ class UserGroupApiHelper {
|
|
|
88
106
|
return await this.create(userGroup);
|
|
89
107
|
}
|
|
90
108
|
async createUserGroupWithMediaSection(name) {
|
|
109
|
+
await this.ensureNameNotExists(name);
|
|
91
110
|
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
92
111
|
.withName(name)
|
|
93
112
|
.addSection('Umb.Section.Media')
|
|
@@ -98,13 +117,15 @@ class UserGroupApiHelper {
|
|
|
98
117
|
return await this.create(userGroup);
|
|
99
118
|
}
|
|
100
119
|
async createUserGroupWithDocumentAccess(name) {
|
|
120
|
+
await this.ensureNameNotExists(name);
|
|
101
121
|
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
102
122
|
.withName(name)
|
|
103
123
|
.withDocumentRootAccess(true)
|
|
104
124
|
.build();
|
|
105
125
|
return await this.create(userGroup);
|
|
106
126
|
}
|
|
107
|
-
async
|
|
127
|
+
async createUserGroupWithDocumentStartNode(name, startNodeId) {
|
|
128
|
+
await this.ensureNameNotExists(name);
|
|
108
129
|
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
109
130
|
.withName(name)
|
|
110
131
|
.addSection('Umb.Section.Content')
|
|
@@ -116,6 +137,82 @@ class UserGroupApiHelper {
|
|
|
116
137
|
.build();
|
|
117
138
|
return await this.create(userGroup);
|
|
118
139
|
}
|
|
140
|
+
async createUserGroupWithMediaStartNode(name, startNodeId) {
|
|
141
|
+
await this.ensureNameNotExists(name);
|
|
142
|
+
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
143
|
+
.withName(name)
|
|
144
|
+
.addSection('Umb.Section.Media')
|
|
145
|
+
.withMediaRootAccess(false)
|
|
146
|
+
.withMediaStartNodeId(startNodeId)
|
|
147
|
+
.addFallbackPermission()
|
|
148
|
+
.withBrowseNodePermission(true)
|
|
149
|
+
.done()
|
|
150
|
+
.build();
|
|
151
|
+
return await this.create(userGroup);
|
|
152
|
+
}
|
|
153
|
+
async createUserGroupWithLanguage(name, languageName) {
|
|
154
|
+
await this.ensureNameNotExists(name);
|
|
155
|
+
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
156
|
+
.withName(name)
|
|
157
|
+
.addLanguage(languageName)
|
|
158
|
+
.build();
|
|
159
|
+
return await this.create(userGroup);
|
|
160
|
+
}
|
|
161
|
+
async createUserGroupWithLanguageAndContentSection(name, languageName) {
|
|
162
|
+
await this.ensureNameNotExists(name);
|
|
163
|
+
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
164
|
+
.withName(name)
|
|
165
|
+
.addSection('Umb.Section.Content')
|
|
166
|
+
.addLanguage(languageName)
|
|
167
|
+
.withDocumentRootAccess(true)
|
|
168
|
+
.addFallbackPermission()
|
|
169
|
+
.withBrowseNodePermission(true)
|
|
170
|
+
.withUpdatePermission(true)
|
|
171
|
+
.done()
|
|
172
|
+
.build();
|
|
173
|
+
return await this.create(userGroup);
|
|
174
|
+
}
|
|
175
|
+
async createUserGroupWithPermissionsForSpecificDocumentWithBrowseNode(name, documentId) {
|
|
176
|
+
await this.ensureNameNotExists(name);
|
|
177
|
+
const userGroup = new json_models_builders_1.UserGroupBuilder()
|
|
178
|
+
.withName(name)
|
|
179
|
+
.addPermission()
|
|
180
|
+
.withDocumentId(documentId)
|
|
181
|
+
.addVerbs()
|
|
182
|
+
.withBrowseNodePermission(true)
|
|
183
|
+
.done()
|
|
184
|
+
.done()
|
|
185
|
+
.build();
|
|
186
|
+
return await this.create(userGroup);
|
|
187
|
+
}
|
|
188
|
+
async doesUserGroupContainContentStartNodeId(userGroupName, documentStartNodeId) {
|
|
189
|
+
const userGroup = await this.getByName(userGroupName);
|
|
190
|
+
if (userGroup.documentStartNode === null) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
return userGroup.documentStartNode.id.includes(documentStartNodeId);
|
|
194
|
+
}
|
|
195
|
+
async doesUserGroupContainMediaStartNodeId(userGroupName, mediaStartNodeId) {
|
|
196
|
+
const userGroup = await this.getByName(userGroupName);
|
|
197
|
+
if (userGroup.mediaStartNode === null) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
return userGroup.mediaStartNode.id.includes(mediaStartNodeId);
|
|
201
|
+
}
|
|
202
|
+
async doesUserGroupContainGranularPermissionsForDocument(userGroupName, documentId, granularPermissions) {
|
|
203
|
+
const userGroup = await this.getByName(userGroupName);
|
|
204
|
+
for (const permission of userGroup.permissions) {
|
|
205
|
+
if (permission.document.id === documentId) {
|
|
206
|
+
for (const verb of permission.verbs) {
|
|
207
|
+
if (!granularPermissions.includes(verb)) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
119
216
|
}
|
|
120
217
|
exports.UserGroupApiHelper = UserGroupApiHelper;
|
|
121
218
|
//# sourceMappingURL=UserGroupApiHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserGroupBuilder} from \"@umbraco/json-models-builders\";\n\n\nexport class UserGroupApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n return response.status() === 200;\n }\n\n async create(userGroupData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user-group', userGroupData);\n // Returns the id of the userGroup\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, userGroup) {\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id, userGroup);\n return response.text();\n }\n\n async doesNameExist(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n }\n\n async createEmptyUserGroup(name: string) {\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithContentSection(name: string) {\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithMediaSection(name: string) {\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDocumentAccess(name: string) {\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .withDocumentRootAccess(true)\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDocumentAccessAndStartNode(name: string, startNodeId: string) {\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(false)\n .withDocumentStartNodeId(startNodeId)\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserGroupBuilder} from \"@umbraco/json-models-builders\";\n\n\nexport class UserGroupApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n return response.status() === 200;\n }\n\n async create(userGroupData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user-group', userGroupData);\n // Returns the id of the userGroup\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, userGroup) {\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id, userGroup);\n return response.text();\n }\n\n async doesNameExist(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n \n async doesUserGroupContainLanguage(userGroupName: string, languageName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.languages.includes(languageName);\n }\n\n async doesUserGroupContainAccessToAllLanguages(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.hasAccessToAllLanguages;\n }\n\n async doesUserGroupContainDocumentRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.documentRootAccess;\n }\n\n async doesUserGroupContainMediaRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.mediaRootAccess;\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n }\n\n async createEmptyUserGroup(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithContentSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithMediaSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDocumentAccess(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .withDocumentRootAccess(true)\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDocumentStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(false)\n .withDocumentStartNodeId(startNodeId)\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMediaStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .withMediaRootAccess(false)\n .withMediaStartNodeId(startNodeId)\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithLanguage(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addLanguage(languageName)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithLanguageAndContentSection(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n \n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addLanguage(languageName)\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withBrowseNodePermission(true)\n .withUpdatePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPermissionsForSpecificDocumentWithBrowseNode(name: string, documentId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withBrowseNodePermission(true)\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async doesUserGroupContainContentStartNodeId(userGroupName: string, documentStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.documentStartNode === null) {\n return false;\n }\n return userGroup.documentStartNode.id.includes(documentStartNodeId);\n }\n\n async doesUserGroupContainMediaStartNodeId(userGroupName: string, mediaStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.mediaStartNode === null) {\n return false;\n }\n return userGroup.mediaStartNode.id.includes(mediaStartNodeId);\n }\n \n async doesUserGroupContainGranularPermissionsForDocument(userGroupName: string, documentId: string, granularPermissions : string[]) {\n const userGroup = await this.getByName(userGroupName);\n for (const permission of userGroup.permissions) {\n if (permission.document.id === documentId) {\n for (const verb of permission.verbs) {\n if (!granularPermissions.includes(verb)) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n}"]}
|
|
@@ -2,19 +2,45 @@ import { Page } from "@playwright/test";
|
|
|
2
2
|
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
3
|
export declare class UserGroupUiHelper extends UiBaseLocators {
|
|
4
4
|
private readonly userGroupsTabBtn;
|
|
5
|
-
private readonly
|
|
6
|
-
private readonly
|
|
5
|
+
private readonly chooseSectionBtn;
|
|
6
|
+
private readonly languageInput;
|
|
7
|
+
private readonly chooseLanguageBtn;
|
|
7
8
|
private readonly permissionVerbBtn;
|
|
9
|
+
private readonly userGroupCreateBtn;
|
|
10
|
+
private readonly allowAccessToAllLanguagesBtn;
|
|
11
|
+
private readonly allowAccessToAllDocumentsBtn;
|
|
12
|
+
private readonly allowAccessToAllMediaBtn;
|
|
13
|
+
private readonly contentStartNode;
|
|
14
|
+
private readonly mediaStartNode;
|
|
15
|
+
private readonly section;
|
|
16
|
+
private readonly granularPermission;
|
|
17
|
+
private readonly addGranularPermissionBtn;
|
|
18
|
+
private readonly granularPermissionsModal;
|
|
19
|
+
private readonly iconChecked;
|
|
8
20
|
constructor(page: Page);
|
|
9
21
|
clickUserGroupsTabButton(): Promise<void>;
|
|
10
22
|
enterUserGroupName(name: string): Promise<void>;
|
|
23
|
+
addLanguageToUserGroup(languageName: string): Promise<void>;
|
|
24
|
+
clickAllowAccessToAllLanguages(): Promise<void>;
|
|
25
|
+
clickAllowAccessToAllDocuments(): Promise<void>;
|
|
26
|
+
clickAllowAccessToAllMedia(): Promise<void>;
|
|
27
|
+
clickCreateUserGroupButton(): Promise<void>;
|
|
28
|
+
clickRemoveLanguageFromUserGroup(languageName: string): Promise<void>;
|
|
11
29
|
isUserGroupWithNameVisible(name: string, isVisible?: boolean): Promise<void>;
|
|
12
30
|
clickUserGroupWithName(name: string): Promise<void>;
|
|
13
|
-
|
|
31
|
+
clickPermissionsByName(permissionName: string[]): Promise<void>;
|
|
32
|
+
clickGranularPermissionsByName(permissionName: string[]): Promise<void>;
|
|
14
33
|
doesUserGroupHavePermission(permissionName: string, hasPermission?: boolean): Promise<void>;
|
|
34
|
+
doesUserGroupHaveGranularPermission(permissionName: string, hasPermission?: boolean): Promise<void>;
|
|
15
35
|
addSectionWithNameToUserGroup(sectionName: string): Promise<void>;
|
|
16
|
-
|
|
36
|
+
clickChooseSectionButton(): Promise<void>;
|
|
17
37
|
doesUserGroupHaveSection(userGroupName: string, sectionName: string, hasSection?: boolean): Promise<void>;
|
|
18
|
-
|
|
38
|
+
doesUserGroupContainLanguage(languageName: string, isVisible?: boolean): Promise<void>;
|
|
39
|
+
clickRemoveSectionFromUserGroup(sectionName: string): Promise<void>;
|
|
40
|
+
clickRemoveContentStartNodeFromUserGroup(contentStartNodeName: string): Promise<void>;
|
|
41
|
+
clickRemoveMediaStartNodeFromUserGroup(mediaStartNodeName: string): Promise<void>;
|
|
19
42
|
doesUserGroupHavePermissionEnabled(permissionName: string[]): Promise<void[]>;
|
|
43
|
+
clickGranularPermissionWithName(permissionName: string): Promise<void>;
|
|
44
|
+
clickAddGranularPermission(): Promise<void>;
|
|
45
|
+
clickRemoveGranularPermissionWithName(permissionName: string): Promise<void>;
|
|
20
46
|
}
|
|
@@ -5,52 +5,127 @@ const test_1 = require("@playwright/test");
|
|
|
5
5
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
6
|
class UserGroupUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
7
|
userGroupsTabBtn;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
chooseSectionBtn;
|
|
9
|
+
languageInput;
|
|
10
|
+
chooseLanguageBtn;
|
|
10
11
|
permissionVerbBtn;
|
|
12
|
+
userGroupCreateBtn;
|
|
13
|
+
allowAccessToAllLanguagesBtn;
|
|
14
|
+
allowAccessToAllDocumentsBtn;
|
|
15
|
+
allowAccessToAllMediaBtn;
|
|
16
|
+
contentStartNode;
|
|
17
|
+
mediaStartNode;
|
|
18
|
+
section;
|
|
19
|
+
granularPermission;
|
|
20
|
+
addGranularPermissionBtn;
|
|
21
|
+
granularPermissionsModal;
|
|
22
|
+
iconChecked;
|
|
11
23
|
constructor(page) {
|
|
12
24
|
super(page);
|
|
13
25
|
this.userGroupsTabBtn = page.getByRole('tab', { name: 'User Groups' });
|
|
14
|
-
this.userGroupNameTxt = page.getByLabel('Name', { exact: true });
|
|
15
26
|
this.permissionVerbBtn = page.locator('umb-input-user-permission-verb');
|
|
16
|
-
this.
|
|
27
|
+
this.chooseSectionBtn = page.locator('umb-input-section').getByLabel('Choose');
|
|
28
|
+
this.languageInput = page.locator('umb-input-language');
|
|
29
|
+
this.chooseLanguageBtn = this.languageInput.getByLabel('Choose');
|
|
30
|
+
this.userGroupCreateBtn = page.getByLabel('Create');
|
|
31
|
+
this.allowAccessToAllLanguagesBtn = page.getByText('Allow access to all languages');
|
|
32
|
+
this.allowAccessToAllDocumentsBtn = page.getByText('Allow access to all documents');
|
|
33
|
+
this.allowAccessToAllMediaBtn = page.getByText('Allow access to all media');
|
|
34
|
+
this.contentStartNode = page.locator('umb-input-document');
|
|
35
|
+
this.mediaStartNode = page.locator('umb-input-media');
|
|
36
|
+
this.section = page.locator('umb-ref-section');
|
|
37
|
+
this.granularPermission = page.locator('umb-input-document-granular-user-permission');
|
|
38
|
+
this.addGranularPermissionBtn = this.granularPermission.getByLabel('Add');
|
|
39
|
+
this.granularPermissionsModal = page.locator('umb-entity-user-permission-settings-modal');
|
|
40
|
+
this.iconChecked = page.locator('uui-toggle').locator('#icon-checked').getByRole('img');
|
|
17
41
|
}
|
|
18
42
|
async clickUserGroupsTabButton() {
|
|
19
|
-
await this.
|
|
43
|
+
await this.page.waitForTimeout(500);
|
|
44
|
+
await this.userGroupsTabBtn.click({ force: true });
|
|
45
|
+
await this.page.waitForTimeout(500);
|
|
20
46
|
}
|
|
21
47
|
async enterUserGroupName(name) {
|
|
22
|
-
await this.
|
|
23
|
-
await this.
|
|
48
|
+
await this.enterAName.clear();
|
|
49
|
+
await this.enterAName.fill(name);
|
|
50
|
+
}
|
|
51
|
+
async addLanguageToUserGroup(languageName) {
|
|
52
|
+
await this.chooseLanguageBtn.click();
|
|
53
|
+
await this.page.getByLabel(languageName, { exact: true }).click();
|
|
54
|
+
await this.clickSubmitButton();
|
|
55
|
+
}
|
|
56
|
+
async clickAllowAccessToAllLanguages() {
|
|
57
|
+
await this.allowAccessToAllLanguagesBtn.click();
|
|
58
|
+
}
|
|
59
|
+
async clickAllowAccessToAllDocuments() {
|
|
60
|
+
await this.allowAccessToAllDocumentsBtn.click();
|
|
61
|
+
}
|
|
62
|
+
async clickAllowAccessToAllMedia() {
|
|
63
|
+
await this.allowAccessToAllMediaBtn.click();
|
|
64
|
+
}
|
|
65
|
+
async clickCreateUserGroupButton() {
|
|
66
|
+
await this.userGroupCreateBtn.click();
|
|
67
|
+
}
|
|
68
|
+
async clickRemoveLanguageFromUserGroup(languageName) {
|
|
69
|
+
await this.page.locator('uui-ref-node').filter({ hasText: languageName }).getByLabel('Remove').click();
|
|
24
70
|
}
|
|
25
71
|
async isUserGroupWithNameVisible(name, isVisible = true) {
|
|
26
72
|
return await (0, test_1.expect)(this.page.locator('uui-table-row', { hasText: name })).toBeVisible({ visible: isVisible });
|
|
27
73
|
}
|
|
28
74
|
async clickUserGroupWithName(name) {
|
|
29
75
|
await this.page.getByRole('link', { name: name }).click();
|
|
76
|
+
await this.page.waitForTimeout(200);
|
|
30
77
|
}
|
|
31
|
-
async
|
|
78
|
+
async clickPermissionsByName(permissionName) {
|
|
32
79
|
for (let i = 0; i < permissionName.length; i++) {
|
|
33
80
|
await this.permissionVerbBtn.getByText(permissionName[i], { exact: true }).click();
|
|
34
81
|
}
|
|
35
82
|
}
|
|
83
|
+
async clickGranularPermissionsByName(permissionName) {
|
|
84
|
+
for (let i = 0; i < permissionName.length; i++) {
|
|
85
|
+
await this.granularPermissionsModal.getByText(permissionName[i], { exact: true }).click();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
36
88
|
async doesUserGroupHavePermission(permissionName, hasPermission = true) {
|
|
37
|
-
|
|
89
|
+
await (0, test_1.expect)(this.permissionVerbBtn.filter({ has: this.page.getByLabel(permissionName, { exact: true }) }).filter({ has: this.iconChecked })).toBeVisible({ visible: hasPermission });
|
|
90
|
+
}
|
|
91
|
+
async doesUserGroupHaveGranularPermission(permissionName, hasPermission = true) {
|
|
92
|
+
await (0, test_1.expect)(this.granularPermissionsModal.filter({ has: this.page.getByLabel(permissionName, { exact: true }) }).filter({ has: this.iconChecked })).toBeVisible({ visible: hasPermission });
|
|
38
93
|
}
|
|
39
94
|
async addSectionWithNameToUserGroup(sectionName) {
|
|
40
|
-
await this.
|
|
95
|
+
await this.clickChooseSectionButton();
|
|
96
|
+
await this.page.getByLabel(sectionName, { exact: true }).click();
|
|
97
|
+
await this.clickSubmitButton();
|
|
41
98
|
}
|
|
42
|
-
async
|
|
43
|
-
await this.
|
|
99
|
+
async clickChooseSectionButton() {
|
|
100
|
+
await this.chooseSectionBtn.click();
|
|
44
101
|
}
|
|
45
102
|
async doesUserGroupHaveSection(userGroupName, sectionName, hasSection = true) {
|
|
46
|
-
|
|
103
|
+
await (0, test_1.expect)(this.page.locator('uui-table-row', { hasText: userGroupName }).locator('umb-user-group-table-sections-column-layout', { hasText: sectionName })).toBeVisible({ visible: hasSection });
|
|
104
|
+
}
|
|
105
|
+
async doesUserGroupContainLanguage(languageName, isVisible = true) {
|
|
106
|
+
await (0, test_1.expect)(this.languageInput.filter({ hasText: languageName })).toBeVisible({ visible: isVisible });
|
|
107
|
+
}
|
|
108
|
+
async clickRemoveSectionFromUserGroup(sectionName) {
|
|
109
|
+
await this.section.filter({ hasText: sectionName }).getByLabel('Remove').click();
|
|
47
110
|
}
|
|
48
|
-
async
|
|
49
|
-
await this.
|
|
111
|
+
async clickRemoveContentStartNodeFromUserGroup(contentStartNodeName) {
|
|
112
|
+
await this.contentStartNode.filter({ hasText: contentStartNodeName }).getByLabel('Remove').click();
|
|
113
|
+
}
|
|
114
|
+
async clickRemoveMediaStartNodeFromUserGroup(mediaStartNodeName) {
|
|
115
|
+
await this.mediaStartNode.filter({ hasText: mediaStartNodeName }).getByLabel('Remove').click({ force: true });
|
|
50
116
|
}
|
|
51
117
|
async doesUserGroupHavePermissionEnabled(permissionName) {
|
|
52
118
|
return await Promise.all(permissionName.map(permission => this.doesUserGroupHavePermission(permission)));
|
|
53
119
|
}
|
|
120
|
+
async clickGranularPermissionWithName(permissionName) {
|
|
121
|
+
await this.granularPermission.getByText(permissionName).click();
|
|
122
|
+
}
|
|
123
|
+
async clickAddGranularPermission() {
|
|
124
|
+
await this.addGranularPermissionBtn.click();
|
|
125
|
+
}
|
|
126
|
+
async clickRemoveGranularPermissionWithName(permissionName) {
|
|
127
|
+
await this.granularPermission.filter({ hasText: permissionName }).getByLabel('Remove').click();
|
|
128
|
+
}
|
|
54
129
|
}
|
|
55
130
|
exports.UserGroupUiHelper = UserGroupUiHelper;
|
|
56
131
|
//# sourceMappingURL=UserGroupUiHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class UserGroupUiHelper extends UiBaseLocators {\n private readonly userGroupsTabBtn: Locator;\n private readonly userGroupNameTxt: Locator;\n private readonly addSectionsBtn: Locator;\n private readonly permissionVerbBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.userGroupsTabBtn = page.getByRole('tab', {name: 'User Groups'});\n this.userGroupNameTxt = page.getByLabel('Name', {exact: true});\n this.permissionVerbBtn = page.locator('umb-input-user-permission-verb');\n this.addSectionsBtn = page.locator('[label=\"Sections\"]').getByLabel('open', {exact: true});\n }\n\n async clickUserGroupsTabButton() {\n await this.userGroupsTabBtn.click();\n }\n\n async enterUserGroupName(name: string) {\n await this.userGroupNameTxt.clear();\n await this.userGroupNameTxt.fill(name);\n }\n\n async isUserGroupWithNameVisible(name: string, isVisible = true) {\n return await expect(this.page.locator('uui-table-row', {hasText: name})).toBeVisible({visible: isVisible});\n }\n\n async clickUserGroupWithName(name: string) {\n await this.page.getByRole('link', {name: name}).click();\n }\n\n async clickPermissionByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.permissionVerbBtn.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async doesUserGroupHavePermission(permissionName: string, hasPermission = true) {\n return await expect(this.permissionVerbBtn.filter({has: this.page.getByText(permissionName, {exact: true})}).locator('uui-toggle').locator('#icon-checked').getByRole('img')).toBeVisible({visible: hasPermission});\n }\n\n async addSectionWithNameToUserGroup(sectionName: string) {\n await this.page.getByLabel(sectionName).click();\n }\n\n async clickAddSectionsButton() {\n await this.addSectionsBtn.click();\n }\n\n async doesUserGroupHaveSection(userGroupName: string, sectionName: string, hasSection = true) {\n return await expect(this.page.locator('uui-table-row', {hasText: userGroupName}).locator('umb-user-group-table-sections-column-layout', {hasText: sectionName})).toBeVisible({visible: hasSection});\n }\n\n async removeSectionFromUserGroup(sectionName: string) {\n await this.page.locator('umb-ref-section', {hasText: sectionName}).getByText('Remove').click();\n }\n\n async doesUserGroupHavePermissionEnabled(permissionName: string[]) {\n return await Promise.all(\n permissionName.map(permission => this.doesUserGroupHavePermission(permission))\n );\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class UserGroupUiHelper extends UiBaseLocators {\n private readonly userGroupsTabBtn: Locator;\n private readonly chooseSectionBtn: Locator;\n private readonly languageInput: Locator;\n private readonly chooseLanguageBtn: Locator;\n private readonly permissionVerbBtn: Locator;\n private readonly userGroupCreateBtn: Locator;\n private readonly allowAccessToAllLanguagesBtn: Locator;\n private readonly allowAccessToAllDocumentsBtn: Locator;\n private readonly allowAccessToAllMediaBtn: Locator;\n private readonly contentStartNode: Locator;\n private readonly mediaStartNode: Locator;\n private readonly section: Locator;\n private readonly granularPermission: Locator;\n private readonly addGranularPermissionBtn: Locator;\n private readonly granularPermissionsModal: Locator;\n private readonly iconChecked: Locator;\n\n constructor(page: Page) {\n super(page);\n this.userGroupsTabBtn = page.getByRole('tab', {name: 'User Groups'});\n this.permissionVerbBtn = page.locator('umb-input-user-permission-verb');\n this.chooseSectionBtn = page.locator('umb-input-section').getByLabel('Choose');\n this.languageInput = page.locator('umb-input-language');\n this.chooseLanguageBtn = this.languageInput.getByLabel('Choose');\n this.userGroupCreateBtn = page.getByLabel('Create');\n this.allowAccessToAllLanguagesBtn = page.getByText('Allow access to all languages');\n this.allowAccessToAllDocumentsBtn = page.getByText('Allow access to all documents');\n this.allowAccessToAllMediaBtn = page.getByText('Allow access to all media');\n this.contentStartNode = page.locator('umb-input-document');\n this.mediaStartNode = page.locator('umb-input-media');\n this.section = page.locator('umb-ref-section');\n this.granularPermission = page.locator('umb-input-document-granular-user-permission');\n this.addGranularPermissionBtn = this.granularPermission.getByLabel('Add');\n this.granularPermissionsModal = page.locator('umb-entity-user-permission-settings-modal');\n this.iconChecked = page.locator('uui-toggle').locator('#icon-checked').getByRole('img');\n }\n\n async clickUserGroupsTabButton() {\n await this.page.waitForTimeout(500);\n await this.userGroupsTabBtn.click({force: true});\n await this.page.waitForTimeout(500);\n }\n\n async enterUserGroupName(name: string) {\n await this.enterAName.clear();\n await this.enterAName.fill(name);\n }\n\n async addLanguageToUserGroup(languageName: string) {\n await this.chooseLanguageBtn.click();\n await this.page.getByLabel(languageName, {exact: true}).click();\n await this.clickSubmitButton();\n }\n\n async clickAllowAccessToAllLanguages() {\n await this.allowAccessToAllLanguagesBtn.click();\n }\n\n async clickAllowAccessToAllDocuments() {\n await this.allowAccessToAllDocumentsBtn.click();\n }\n\n async clickAllowAccessToAllMedia() {\n await this.allowAccessToAllMediaBtn.click();\n }\n\n async clickCreateUserGroupButton() {\n await this.userGroupCreateBtn.click();\n }\n\n async clickRemoveLanguageFromUserGroup(languageName: string) {\n await this.page.locator('uui-ref-node').filter({hasText: languageName}).getByLabel('Remove').click();\n }\n\n async isUserGroupWithNameVisible(name: string, isVisible = true) {\n return await expect(this.page.locator('uui-table-row', {hasText: name})).toBeVisible({visible: isVisible});\n }\n\n async clickUserGroupWithName(name: string) {\n await this.page.getByRole('link', {name: name}).click();\n await this.page.waitForTimeout(200);\n }\n\n async clickPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.permissionVerbBtn.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async clickGranularPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.granularPermissionsModal.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async doesUserGroupHavePermission(permissionName: string, hasPermission = true) {\n await expect(this.permissionVerbBtn.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async doesUserGroupHaveGranularPermission(permissionName: string, hasPermission = true) {\n await expect(this.granularPermissionsModal.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async addSectionWithNameToUserGroup(sectionName: string) {\n await this.clickChooseSectionButton();\n await this.page.getByLabel(sectionName, {exact: true}).click();\n await this.clickSubmitButton();\n }\n\n async clickChooseSectionButton() {\n await this.chooseSectionBtn.click();\n }\n\n async doesUserGroupHaveSection(userGroupName: string, sectionName: string, hasSection = true) {\n await expect(this.page.locator('uui-table-row', {hasText: userGroupName}).locator('umb-user-group-table-sections-column-layout', {hasText: sectionName})).toBeVisible({visible: hasSection});\n }\n\n async doesUserGroupContainLanguage(languageName: string, isVisible = true) {\n await expect(this.languageInput.filter({hasText: languageName})).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveSectionFromUserGroup(sectionName: string) {\n await this.section.filter({hasText: sectionName}).getByLabel('Remove').click();\n }\n\n async clickRemoveContentStartNodeFromUserGroup(contentStartNodeName: string) {\n await this.contentStartNode.filter({hasText: contentStartNodeName}).getByLabel('Remove').click();\n }\n\n async clickRemoveMediaStartNodeFromUserGroup(mediaStartNodeName: string) {\n await this.mediaStartNode.filter({hasText: mediaStartNodeName}).getByLabel('Remove').click({force: true});\n }\n\n async doesUserGroupHavePermissionEnabled(permissionName: string[]) {\n return await Promise.all(\n permissionName.map(permission => this.doesUserGroupHavePermission(permission))\n );\n }\n\n async clickGranularPermissionWithName(permissionName: string) {\n await this.granularPermission.getByText(permissionName).click();\n }\n\n async clickAddGranularPermission() {\n await this.addGranularPermissionBtn.click();\n }\n\n async clickRemoveGranularPermissionWithName(permissionName: string) {\n await this.granularPermission.filter({hasText: permissionName}).getByLabel('Remove').click();\n }\n}"]}
|
|
@@ -20,8 +20,6 @@ export declare class UserUiHelper extends UiBaseLocators {
|
|
|
20
20
|
private readonly chooseUserGroupsBtn;
|
|
21
21
|
private readonly allowAccessToAllDocumentsBtn;
|
|
22
22
|
private readonly allowAccessToAllMediaBtn;
|
|
23
|
-
private readonly chooseDocumentInputBtn;
|
|
24
|
-
private readonly chooseMediaInputBtn;
|
|
25
23
|
private readonly documentInput;
|
|
26
24
|
private readonly mediaInput;
|
|
27
25
|
private readonly chooseContainerBtn;
|
|
@@ -55,13 +53,10 @@ export declare class UserUiHelper extends UiBaseLocators {
|
|
|
55
53
|
filterByStatusName(statusName: string): Promise<void>;
|
|
56
54
|
filterByGroupName(groupName: string): Promise<void>;
|
|
57
55
|
isPasswordUpdatedForUserWithId(userId: string): Promise<void>;
|
|
58
|
-
clickChooseContentStartNodeButton(): Promise<void>;
|
|
59
|
-
clickChooseMediaStartNodeButton(): Promise<void>;
|
|
60
56
|
clickChooseContainerButton(): Promise<void>;
|
|
61
57
|
selectUserLanguage(language: string): Promise<void>;
|
|
62
58
|
clickRemoveButtonForContentNodeWithName(name: string): Promise<void>;
|
|
63
59
|
clickRemoveButtonForMediaNodeWithName(name: string): Promise<void>;
|
|
64
|
-
clickMediaCardWithName(name: string): Promise<void>;
|
|
65
60
|
clickAllowAccessToAllDocumentsSlider(): Promise<void>;
|
|
66
61
|
clickAllowAccessToAllMediaSlider(): Promise<void>;
|
|
67
62
|
isUserDisabledTextVisible(): Promise<void>;
|
|
@@ -24,8 +24,6 @@ class UserUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
24
24
|
chooseUserGroupsBtn;
|
|
25
25
|
allowAccessToAllDocumentsBtn;
|
|
26
26
|
allowAccessToAllMediaBtn;
|
|
27
|
-
chooseDocumentInputBtn;
|
|
28
|
-
chooseMediaInputBtn;
|
|
29
27
|
documentInput;
|
|
30
28
|
mediaInput;
|
|
31
29
|
chooseContainerBtn;
|
|
@@ -57,8 +55,6 @@ class UserUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
57
55
|
this.groupBtn = page.locator('uui-button', { hasText: 'Groups' });
|
|
58
56
|
this.allowAccessToAllDocumentsBtn = page.locator('umb-property-layout').filter({ hasText: 'Allow access to all documents' }).locator('#slider');
|
|
59
57
|
this.allowAccessToAllMediaBtn = page.locator('umb-property-layout').filter({ hasText: 'Allow access to all media' }).locator('#slider');
|
|
60
|
-
this.chooseDocumentInputBtn = page.locator('umb-input-document').getByLabel('Choose');
|
|
61
|
-
this.chooseMediaInputBtn = page.locator('umb-input-media').getByLabel('Choose');
|
|
62
58
|
this.documentInput = page.locator('umb-input-document');
|
|
63
59
|
this.mediaInput = page.locator('umb-input-media');
|
|
64
60
|
this.chooseContainerBtn = page.locator('#container').getByLabel('Choose');
|
|
@@ -148,12 +144,6 @@ class UserUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
148
144
|
await this.clickConfirmButton()
|
|
149
145
|
]);
|
|
150
146
|
}
|
|
151
|
-
async clickChooseContentStartNodeButton() {
|
|
152
|
-
await this.chooseDocumentInputBtn.click();
|
|
153
|
-
}
|
|
154
|
-
async clickChooseMediaStartNodeButton() {
|
|
155
|
-
await this.chooseMediaInputBtn.click({ force: true });
|
|
156
|
-
}
|
|
157
147
|
async clickChooseContainerButton() {
|
|
158
148
|
await this.chooseContainerBtn.click();
|
|
159
149
|
}
|
|
@@ -166,9 +156,6 @@ class UserUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
166
156
|
async clickRemoveButtonForMediaNodeWithName(name) {
|
|
167
157
|
await this.mediaInput.locator('[name="' + name + '"]').locator('[label="Remove"]').click();
|
|
168
158
|
}
|
|
169
|
-
async clickMediaCardWithName(name) {
|
|
170
|
-
await this.mediaCardItems.filter({ hasText: name }).locator('umb-icon').click();
|
|
171
|
-
}
|
|
172
159
|
async clickAllowAccessToAllDocumentsSlider() {
|
|
173
160
|
await this.allowAccessToAllDocumentsBtn.click();
|
|
174
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {umbracoConfig} from \"../../umbraco.config\";\n\nexport class UserUiHelper extends UiBaseLocators {\n private readonly usersTabBtn: Locator;\n private readonly createUserBtn: Locator;\n private readonly nameOfTheUserTxt: Locator;\n private readonly userEmailTxt: Locator;\n private readonly addUserGroupsBtn: Locator;\n private readonly openUserGroupsBtn: Locator;\n private readonly updatedNameOfTheUserTxt: Locator;\n private readonly changePasswordBtn: Locator;\n private readonly newPasswordTxt: Locator;\n private readonly confirmPasswordTxt: Locator;\n private readonly changePhotoBtn: Locator;\n private readonly removePhotoBtn: Locator;\n private readonly searchInUserSectionTxt: Locator;\n private readonly userSectionCard: Locator;\n private readonly statusBtn: Locator;\n private readonly groupBtn: Locator;\n private readonly chooseUserGroupsBtn: Locator;\n private readonly allowAccessToAllDocumentsBtn: Locator;\n private readonly allowAccessToAllMediaBtn: Locator;\n private readonly chooseDocumentInputBtn: Locator;\n private readonly chooseMediaInputBtn: Locator;\n private readonly documentInput: Locator;\n private readonly mediaInput: Locator;\n private readonly chooseContainerBtn: Locator;\n private readonly languageBtn: Locator;\n private readonly disabledTxt: Locator;\n private readonly activeTxt: Locator;\n private readonly orderByBtn: Locator;\n private readonly orderByNewestBtn: Locator;\n private readonly documentStartNode: Locator;\n private readonly mediaStartNode: Locator;\n\n constructor(page: Page) {\n super(page);\n this.usersTabBtn = page.locator('#views').getByRole('tab', {name: 'Users'});\n this.createUserBtn = page.getByLabel('Create user');\n this.nameOfTheUserTxt = page.getByLabel('name', {exact: true});\n this.userEmailTxt = page.getByLabel('email');\n this.addUserGroupsBtn = page.locator('#userGroups').getByLabel('open', {exact: true});\n this.openUserGroupsBtn = page.locator('[label=\"Groups\"]').getByLabel('open', {exact: true});\n this.chooseUserGroupsBtn = page.locator('umb-user-group-input').getByLabel('Choose');\n this.updatedNameOfTheUserTxt = page.locator('#name #input');\n this.changePasswordBtn = page.getByLabel('Change your password');\n this.newPasswordTxt = page.locator('input[name=\"newPassword\"]');\n this.confirmPasswordTxt = page.locator('input[name=\"confirmPassword\"]');\n this.changePhotoBtn = page.getByLabel('Change photo');\n this.removePhotoBtn = page.getByLabel('Remove photo');\n this.searchInUserSectionTxt = page.getByLabel('Search the users section');\n this.userSectionCard = page.locator('uui-card-user');\n this.statusBtn = page.locator('uui-button', {hasText: 'Status'});\n this.groupBtn = page.locator('uui-button', {hasText: 'Groups'});\n this.allowAccessToAllDocumentsBtn = page.locator('umb-property-layout').filter({hasText: 'Allow access to all documents'}).locator('#slider');\n this.allowAccessToAllMediaBtn = page.locator('umb-property-layout').filter({hasText: 'Allow access to all media'}).locator('#slider');\n this.chooseDocumentInputBtn = page.locator('umb-input-document').getByLabel('Choose');\n this.chooseMediaInputBtn = page.locator('umb-input-media').getByLabel('Choose');\n this.documentInput = page.locator('umb-input-document');\n this.mediaInput = page.locator('umb-input-media');\n this.chooseContainerBtn = page.locator('#container').getByLabel('Choose');\n this.languageBtn = page.locator('[label=\"UI Culture\"] select');\n this.disabledTxt = page.getByText('Disabled', {exact: true});\n this.activeTxt = page.getByText('Active', {exact: true});\n this.orderByBtn = page.getByLabel('order by');\n this.orderByNewestBtn = page.getByLabel('Newest');\n this.documentStartNode = page.locator('umb-user-document-start-node');\n this.mediaStartNode = page.locator('umb-user-media-start-node');\n }\n\n async clickUsersTabButton() {\n await this.usersTabBtn.click({force: true});\n }\n\n async clickCreateUserButton() {\n await this.createUserBtn.click();\n }\n\n async enterNameOfTheUser(name: string) {\n await this.nameOfTheUserTxt.fill(name);\n }\n\n async enterUserEmail(email: string) {\n await this.userEmailTxt.fill(email);\n }\n\n async clickAddUserGroupsButton() {\n await this.addUserGroupsBtn.click();\n // This wait is necessary to avoid the click on the user group button to be ignored\n await this.page.waitForTimeout(200);\n }\n\n async clickChooseUserGroupsButton() {\n await this.chooseUserGroupsBtn.click();\n }\n\n async clickOpenUserGroupsButton() {\n await this.openUserGroupsBtn.click();\n }\n\n async enterUpdatedNameOfUser(name: string) {\n await this.updatedNameOfTheUserTxt.fill(name);\n }\n\n async clickUserWithName(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 clickChangePasswordButton() {\n await this.changePasswordBtn.click();\n }\n\n async updatePassword(newPassword: string) {\n await this.newPasswordTxt.fill(newPassword);\n await this.confirmPasswordTxt.fill(newPassword);\n }\n\n async isUserVisible(name: string, isVisible = true) {\n return await expect(this.page.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async clickChangePhotoButton() {\n await this.changePhotoBtn.click();\n }\n\n async clickRemoveButtonForUserGroupWithName(userGroupName: string) {\n await this.page.locator('umb-user-group-ref', {hasText: userGroupName}).locator('[label=\"Remove\"]').click();\n }\n\n async clickRemovePhotoButton() {\n await this.removePhotoBtn.click();\n }\n\n async changePhotoWithFileChooser(filePath: string) {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.clickChangePhotoButton();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async searchInUserSection(name: string) {\n await this.searchInUserSectionTxt.fill(name);\n }\n\n async doesUserSectionContainUserAmount(amount: number) {\n return await expect(this.userSectionCard).toHaveCount(amount);\n }\n\n async doesUserSectionContainUserWithText(name: string) {\n return await expect(this.userSectionCard).toContainText(name);\n }\n\n async filterByStatusName(statusName: string) {\n await this.statusBtn.click();\n await this.page.locator('label').filter({hasText: statusName}).click();\n }\n\n async filterByGroupName(groupName: string) {\n await this.groupBtn.click();\n await this.page.locator('label').filter({hasText: groupName}).click();\n }\n\n async isPasswordUpdatedForUserWithId(userId: string) {\n await Promise.all([\n this.page.waitForResponse(resp => resp.url().includes(umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password') && resp.status() === 200),\n await this.clickConfirmButton()\n ]);\n }\n\n async clickChooseContentStartNodeButton() {\n await this.chooseDocumentInputBtn.click();\n }\n\n async clickChooseMediaStartNodeButton() {\n await this.chooseMediaInputBtn.click({force: true});\n }\n\n async clickChooseContainerButton() {\n await this.chooseContainerBtn.click();\n }\n\n async selectUserLanguage(language: string) {\n await this.languageBtn.selectOption(language);\n }\n\n async clickRemoveButtonForContentNodeWithName(name: string) {\n await this.documentInput.locator('[name=\"' + name + '\"]').locator('[label=\"Remove\"]').click();\n }\n\n async clickRemoveButtonForMediaNodeWithName(name: string) {\n await this.mediaInput.locator('[name=\"' + name + '\"]').locator('[label=\"Remove\"]').click();\n }\n\n async clickMediaCardWithName(name: string) {\n await this.mediaCardItems.filter({hasText: name}).locator('umb-icon').click();\n }\n\n async clickAllowAccessToAllDocumentsSlider() {\n await this.allowAccessToAllDocumentsBtn.click();\n }\n\n async clickAllowAccessToAllMediaSlider() {\n await this.allowAccessToAllMediaBtn.click();\n }\n\n async isUserDisabledTextVisible() {\n return await expect(this.disabledTxt).toBeVisible();\n }\n\n async isUserActiveTextVisible() {\n return await expect(this.activeTxt).toBeVisible();\n }\n\n async orderByNewestUser() {\n await this.orderByBtn.click({force: true});\n await this.orderByNewestBtn.click();\n }\n\n async isUserWithNameTheFirstUserInList(name: string) {\n await expect(this.userSectionCard.first()).toContainText(name);\n }\n\n async doesUserHaveAccessToContentNode(name: string) {\n return await expect(this.documentStartNode.locator('[name=\"' + name + '\"]')).toBeVisible();\n }\n\n async doesUserHaveAccessToMediaNode(name: string) {\n return await expect(this.mediaStartNode.locator('[name=\"' + name + '\"]')).toBeVisible();\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {umbracoConfig} from \"../../umbraco.config\";\n\nexport class UserUiHelper extends UiBaseLocators {\n private readonly usersTabBtn: Locator;\n private readonly createUserBtn: Locator;\n private readonly nameOfTheUserTxt: Locator;\n private readonly userEmailTxt: Locator;\n private readonly addUserGroupsBtn: Locator;\n private readonly openUserGroupsBtn: Locator;\n private readonly updatedNameOfTheUserTxt: Locator;\n private readonly changePasswordBtn: Locator;\n private readonly newPasswordTxt: Locator;\n private readonly confirmPasswordTxt: Locator;\n private readonly changePhotoBtn: Locator;\n private readonly removePhotoBtn: Locator;\n private readonly searchInUserSectionTxt: Locator;\n private readonly userSectionCard: Locator;\n private readonly statusBtn: Locator;\n private readonly groupBtn: Locator;\n private readonly chooseUserGroupsBtn: Locator;\n private readonly allowAccessToAllDocumentsBtn: Locator;\n private readonly allowAccessToAllMediaBtn: Locator;\n private readonly documentInput: Locator;\n private readonly mediaInput: Locator;\n private readonly chooseContainerBtn: Locator;\n private readonly languageBtn: Locator;\n private readonly disabledTxt: Locator;\n private readonly activeTxt: Locator;\n private readonly orderByBtn: Locator;\n private readonly orderByNewestBtn: Locator;\n private readonly documentStartNode: Locator;\n private readonly mediaStartNode: Locator;\n\n constructor(page: Page) {\n super(page);\n this.usersTabBtn = page.locator('#views').getByRole('tab', {name: 'Users'});\n this.createUserBtn = page.getByLabel('Create user');\n this.nameOfTheUserTxt = page.getByLabel('name', {exact: true});\n this.userEmailTxt = page.getByLabel('email');\n this.addUserGroupsBtn = page.locator('#userGroups').getByLabel('open', {exact: true});\n this.openUserGroupsBtn = page.locator('[label=\"Groups\"]').getByLabel('open', {exact: true});\n this.chooseUserGroupsBtn = page.locator('umb-user-group-input').getByLabel('Choose');\n this.updatedNameOfTheUserTxt = page.locator('#name #input');\n this.changePasswordBtn = page.getByLabel('Change your password');\n this.newPasswordTxt = page.locator('input[name=\"newPassword\"]');\n this.confirmPasswordTxt = page.locator('input[name=\"confirmPassword\"]');\n this.changePhotoBtn = page.getByLabel('Change photo');\n this.removePhotoBtn = page.getByLabel('Remove photo');\n this.searchInUserSectionTxt = page.getByLabel('Search the users section');\n this.userSectionCard = page.locator('uui-card-user');\n this.statusBtn = page.locator('uui-button', {hasText: 'Status'});\n this.groupBtn = page.locator('uui-button', {hasText: 'Groups'});\n this.allowAccessToAllDocumentsBtn = page.locator('umb-property-layout').filter({hasText: 'Allow access to all documents'}).locator('#slider');\n this.allowAccessToAllMediaBtn = page.locator('umb-property-layout').filter({hasText: 'Allow access to all media'}).locator('#slider');\n this.documentInput = page.locator('umb-input-document');\n this.mediaInput = page.locator('umb-input-media');\n this.chooseContainerBtn = page.locator('#container').getByLabel('Choose');\n this.languageBtn = page.locator('[label=\"UI Culture\"] select');\n this.disabledTxt = page.getByText('Disabled', {exact: true});\n this.activeTxt = page.getByText('Active', {exact: true});\n this.orderByBtn = page.getByLabel('order by');\n this.orderByNewestBtn = page.getByLabel('Newest');\n this.documentStartNode = page.locator('umb-user-document-start-node');\n this.mediaStartNode = page.locator('umb-user-media-start-node');\n }\n\n async clickUsersTabButton() {\n await this.usersTabBtn.click({force: true});\n }\n\n async clickCreateUserButton() {\n await this.createUserBtn.click();\n }\n\n async enterNameOfTheUser(name: string) {\n await this.nameOfTheUserTxt.fill(name);\n }\n\n async enterUserEmail(email: string) {\n await this.userEmailTxt.fill(email);\n }\n\n async clickAddUserGroupsButton() {\n await this.addUserGroupsBtn.click();\n // This wait is necessary to avoid the click on the user group button to be ignored\n await this.page.waitForTimeout(200);\n }\n\n async clickChooseUserGroupsButton() {\n await this.chooseUserGroupsBtn.click();\n }\n\n async clickOpenUserGroupsButton() {\n await this.openUserGroupsBtn.click();\n }\n\n async enterUpdatedNameOfUser(name: string) {\n await this.updatedNameOfTheUserTxt.fill(name);\n }\n\n async clickUserWithName(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 clickChangePasswordButton() {\n await this.changePasswordBtn.click();\n }\n\n async updatePassword(newPassword: string) {\n await this.newPasswordTxt.fill(newPassword);\n await this.confirmPasswordTxt.fill(newPassword);\n }\n\n async isUserVisible(name: string, isVisible = true) {\n return await expect(this.page.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async clickChangePhotoButton() {\n await this.changePhotoBtn.click();\n }\n\n async clickRemoveButtonForUserGroupWithName(userGroupName: string) {\n await this.page.locator('umb-user-group-ref', {hasText: userGroupName}).locator('[label=\"Remove\"]').click();\n }\n\n async clickRemovePhotoButton() {\n await this.removePhotoBtn.click();\n }\n\n async changePhotoWithFileChooser(filePath: string) {\n const fileChooserPromise = this.page.waitForEvent('filechooser');\n await this.clickChangePhotoButton();\n const fileChooser = await fileChooserPromise;\n await fileChooser.setFiles(filePath);\n }\n\n async searchInUserSection(name: string) {\n await this.searchInUserSectionTxt.fill(name);\n }\n\n async doesUserSectionContainUserAmount(amount: number) {\n return await expect(this.userSectionCard).toHaveCount(amount);\n }\n\n async doesUserSectionContainUserWithText(name: string) {\n return await expect(this.userSectionCard).toContainText(name);\n }\n\n async filterByStatusName(statusName: string) {\n await this.statusBtn.click();\n await this.page.locator('label').filter({hasText: statusName}).click();\n }\n\n async filterByGroupName(groupName: string) {\n await this.groupBtn.click();\n await this.page.locator('label').filter({hasText: groupName}).click();\n }\n\n async isPasswordUpdatedForUserWithId(userId: string) {\n await Promise.all([\n this.page.waitForResponse(resp => resp.url().includes(umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password') && resp.status() === 200),\n await this.clickConfirmButton()\n ]);\n }\n\n async clickChooseContainerButton() {\n await this.chooseContainerBtn.click();\n }\n\n async selectUserLanguage(language: string) {\n await this.languageBtn.selectOption(language);\n }\n\n async clickRemoveButtonForContentNodeWithName(name: string) {\n await this.documentInput.locator('[name=\"' + name + '\"]').locator('[label=\"Remove\"]').click();\n }\n\n async clickRemoveButtonForMediaNodeWithName(name: string) {\n await this.mediaInput.locator('[name=\"' + name + '\"]').locator('[label=\"Remove\"]').click();\n }\n\n async clickAllowAccessToAllDocumentsSlider() {\n await this.allowAccessToAllDocumentsBtn.click();\n }\n\n async clickAllowAccessToAllMediaSlider() {\n await this.allowAccessToAllMediaBtn.click();\n }\n\n async isUserDisabledTextVisible() {\n return await expect(this.disabledTxt).toBeVisible();\n }\n\n async isUserActiveTextVisible() {\n return await expect(this.activeTxt).toBeVisible();\n }\n\n async orderByNewestUser() {\n await this.orderByBtn.click({force: true});\n await this.orderByNewestBtn.click();\n }\n\n async isUserWithNameTheFirstUserInList(name: string) {\n await expect(this.userSectionCard.first()).toContainText(name);\n }\n\n async doesUserHaveAccessToContentNode(name: string) {\n return await expect(this.documentStartNode.locator('[name=\"' + name + '\"]')).toBeVisible();\n }\n\n async doesUserHaveAccessToMediaNode(name: string) {\n return await expect(this.mediaStartNode.locator('[name=\"' + name + '\"]')).toBeVisible();\n }\n}"]}
|