@umbraco/playwright-testhelpers 2.0.0-beta.3 → 2.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/helpers/ApiHelpers.d.ts +20 -4
- package/dist/lib/helpers/ApiHelpers.js +28 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.d.ts +11 -0
- package/dist/lib/helpers/ConstantHelper.js +16 -0
- package/dist/lib/helpers/ConstantHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +14 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +114 -133
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +140 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +439 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
- package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +31 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +92 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +2 -0
- package/dist/lib/helpers/DocumentApiHelper.js +17 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +25 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +223 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +23 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +62 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
- package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
- package/dist/lib/helpers/IndexerApiHelper.js +19 -0
- package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
- package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
- package/dist/lib/helpers/LanguageApiHelper.js +46 -26
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
- package/dist/lib/helpers/LanguageUiHelper.js +64 -0
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
- package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
- package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
- package/dist/lib/helpers/LoginUiHelper.js +30 -0
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +7 -0
- package/dist/lib/helpers/MediaApiHelper.js +28 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +194 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +15 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +39 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +27 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
- package/dist/lib/helpers/PackageApiHelper.js +6 -3
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
- package/dist/lib/helpers/PackageUiHelper.js +134 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
- package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PartialViewUiHelper.js +57 -0
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +15 -10
- package/dist/lib/helpers/ScriptApiHelper.js +144 -97
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +16 -0
- package/dist/lib/helpers/ScriptUiHelper.js +51 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +15 -10
- package/dist/lib/helpers/StylesheetApiHelper.js +139 -103
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -0
- package/dist/lib/helpers/StylesheetUiHelper.js +68 -0
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplateApiHelper.d.ts +7 -5
- package/dist/lib/helpers/TemplateApiHelper.js +75 -51
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +21 -0
- package/dist/lib/helpers/TemplateUiHelper.js +66 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +163 -0
- package/dist/lib/helpers/UiBaseLocators.js +487 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +48 -6
- package/dist/lib/helpers/UiHelpers.js +75 -16
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +7 -3
- package/dist/lib/helpers/UserApiHelper.js +35 -13
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
- package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/UserUiHelper.d.ts +41 -0
- package/dist/lib/helpers/UserUiHelper.js +116 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
- package/dist/lib/helpers/index.d.ts +1 -0
- package/dist/lib/helpers/index.js +3 -1
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/umbraco.config.js +1 -1
- package/dist/umbraco.config.js.map +1 -1
- package/package.json +9 -7
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentTypeApiHelper = void 0;
|
|
4
|
+
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
5
|
+
const AliasHelper_1 = require("./AliasHelper");
|
|
6
|
+
class DocumentTypeApiHelper {
|
|
7
|
+
api;
|
|
8
|
+
constructor(api) {
|
|
9
|
+
this.api = api;
|
|
10
|
+
}
|
|
11
|
+
async ensureNameNotExists(name) {
|
|
12
|
+
const rootDocumentTypes = await this.getAllAtRoot();
|
|
13
|
+
const jsonDocumentTypes = await rootDocumentTypes.json();
|
|
14
|
+
for (const documentType of jsonDocumentTypes.items) {
|
|
15
|
+
if (documentType.name === name) {
|
|
16
|
+
if (documentType.isFolder) {
|
|
17
|
+
return await this.recurseDeleteChildren(documentType);
|
|
18
|
+
}
|
|
19
|
+
return await this.delete(documentType.id);
|
|
20
|
+
}
|
|
21
|
+
else if (documentType.hasChildren) {
|
|
22
|
+
await this.recurseChildren(name, documentType.id, true);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
async getAllAtRoot() {
|
|
28
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document-type/root?skip=0&take=10000&foldersOnly=false');
|
|
29
|
+
}
|
|
30
|
+
async recurseChildren(name, id, toDelete) {
|
|
31
|
+
const items = await this.getChildren(id);
|
|
32
|
+
for (const child of items) {
|
|
33
|
+
if (child.name === name) {
|
|
34
|
+
if (!toDelete) {
|
|
35
|
+
if (child.isFolder) {
|
|
36
|
+
return await this.getFolder(child.id);
|
|
37
|
+
}
|
|
38
|
+
return await this.get(child.id);
|
|
39
|
+
}
|
|
40
|
+
if (child.isFolder) {
|
|
41
|
+
return await this.recurseDeleteChildren(child);
|
|
42
|
+
}
|
|
43
|
+
return await this.delete(child.id);
|
|
44
|
+
}
|
|
45
|
+
else if (child.hasChildren) {
|
|
46
|
+
return await this.recurseChildren(name, child.id, toDelete);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
async recurseDeleteChildren(documentTypeFolder) {
|
|
52
|
+
if (!documentTypeFolder.hasChildren) {
|
|
53
|
+
return await this.deleteFolder(documentTypeFolder.id);
|
|
54
|
+
}
|
|
55
|
+
const items = await this.getChildren(documentTypeFolder.id);
|
|
56
|
+
for (const child of items) {
|
|
57
|
+
if (child.hasChildren) {
|
|
58
|
+
await this.recurseDeleteChildren(child);
|
|
59
|
+
}
|
|
60
|
+
else if (child.isFolder) {
|
|
61
|
+
await this.deleteFolder(child.id);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
await this.delete(child.id);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return await this.deleteFolder(documentTypeFolder.id);
|
|
68
|
+
}
|
|
69
|
+
async getChildren(id) {
|
|
70
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document-type/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);
|
|
71
|
+
const items = await response.json();
|
|
72
|
+
return items.items;
|
|
73
|
+
}
|
|
74
|
+
async create(documentType) {
|
|
75
|
+
if (documentType == null) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-type', documentType);
|
|
79
|
+
return response.headers().location.split("/").pop();
|
|
80
|
+
}
|
|
81
|
+
async get(id) {
|
|
82
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-type/' + id);
|
|
83
|
+
const json = await response.json();
|
|
84
|
+
if (json !== null) {
|
|
85
|
+
return json;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
async getByName(name) {
|
|
90
|
+
const rootDocumentTypes = await this.getAllAtRoot();
|
|
91
|
+
const jsonDocumentTypes = await rootDocumentTypes.json();
|
|
92
|
+
for (const documentType of jsonDocumentTypes.items) {
|
|
93
|
+
if (documentType.name === name) {
|
|
94
|
+
if (documentType.isFolder) {
|
|
95
|
+
return this.getFolder(documentType.id);
|
|
96
|
+
}
|
|
97
|
+
return this.get(documentType.id);
|
|
98
|
+
}
|
|
99
|
+
else if (documentType.hasChildren) {
|
|
100
|
+
const result = await this.recurseChildren(name, documentType.id, false);
|
|
101
|
+
if (result) {
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
async doesNameExist(name) {
|
|
109
|
+
return await this.getByName(name);
|
|
110
|
+
}
|
|
111
|
+
async delete(id) {
|
|
112
|
+
if (id == null) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-type/' + id);
|
|
116
|
+
return response.status();
|
|
117
|
+
}
|
|
118
|
+
// FOLDER
|
|
119
|
+
async getFolder(id) {
|
|
120
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + id);
|
|
121
|
+
return await response.json();
|
|
122
|
+
}
|
|
123
|
+
async deleteFolder(id) {
|
|
124
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + id);
|
|
125
|
+
}
|
|
126
|
+
async createFolder(name, parentId) {
|
|
127
|
+
const folder = {
|
|
128
|
+
name: name,
|
|
129
|
+
parentId: parentId
|
|
130
|
+
};
|
|
131
|
+
return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder', folder);
|
|
132
|
+
}
|
|
133
|
+
async renameFolder(folderId, folderName) {
|
|
134
|
+
const folder = {
|
|
135
|
+
name: folderName
|
|
136
|
+
};
|
|
137
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + folderId, folder);
|
|
138
|
+
}
|
|
139
|
+
async createDefaultDocumentType(documentTypeName) {
|
|
140
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
141
|
+
.withName(documentTypeName)
|
|
142
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
143
|
+
.build();
|
|
144
|
+
return await this.create(documentType);
|
|
145
|
+
}
|
|
146
|
+
async createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeId, groupName = "GroupTest", varyByCulture = false) {
|
|
147
|
+
const crypto = require('crypto');
|
|
148
|
+
const containerId = crypto.randomUUID();
|
|
149
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
150
|
+
.withName(documentTypeName)
|
|
151
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
152
|
+
.addContainer()
|
|
153
|
+
.withName(groupName)
|
|
154
|
+
.withId(containerId)
|
|
155
|
+
.withType("Group")
|
|
156
|
+
.done()
|
|
157
|
+
.addProperty()
|
|
158
|
+
.withContainerId(containerId)
|
|
159
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
|
|
160
|
+
.withName(dataTypeName)
|
|
161
|
+
.withDataTypeId(dataTypeId)
|
|
162
|
+
.done()
|
|
163
|
+
.withVariesByCulture(varyByCulture)
|
|
164
|
+
.build();
|
|
165
|
+
return await this.create(documentType);
|
|
166
|
+
}
|
|
167
|
+
async createDocumentTypeWithTwoPropertyEditors(documentTypeName, dataTypeNameOne, dataTypeIdOne, dataTypeNameTwo, dataTypeIdTwo, groupName = "GroupTest") {
|
|
168
|
+
const crypto = require('crypto');
|
|
169
|
+
const containerId = crypto.randomUUID();
|
|
170
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
171
|
+
.withName(documentTypeName)
|
|
172
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
173
|
+
.addContainer()
|
|
174
|
+
.withName(groupName)
|
|
175
|
+
.withId(containerId)
|
|
176
|
+
.withType("Group")
|
|
177
|
+
.done()
|
|
178
|
+
.addProperty()
|
|
179
|
+
.withContainerId(containerId)
|
|
180
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameOne))
|
|
181
|
+
.withName(dataTypeNameOne)
|
|
182
|
+
.withDataTypeId(dataTypeIdOne)
|
|
183
|
+
.done()
|
|
184
|
+
.addProperty()
|
|
185
|
+
.withContainerId(containerId)
|
|
186
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameTwo))
|
|
187
|
+
.withName(dataTypeNameTwo)
|
|
188
|
+
.withDataTypeId(dataTypeIdTwo)
|
|
189
|
+
.done()
|
|
190
|
+
.build();
|
|
191
|
+
return await this.create(documentType);
|
|
192
|
+
}
|
|
193
|
+
async createDefaultDocumentTypeWithAllowAsRoot(documentTypeName) {
|
|
194
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
195
|
+
.withName(documentTypeName)
|
|
196
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
197
|
+
.withAllowedAsRoot(true)
|
|
198
|
+
.build();
|
|
199
|
+
return await this.create(documentType);
|
|
200
|
+
}
|
|
201
|
+
async createDocumentTypeWithAllowedChildNode(documentTypeName, allowedChildNodeId) {
|
|
202
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
203
|
+
.withName(documentTypeName)
|
|
204
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
205
|
+
.addAllowedDocumentType()
|
|
206
|
+
.withId(allowedChildNodeId)
|
|
207
|
+
.done()
|
|
208
|
+
.build();
|
|
209
|
+
return await this.create(documentType);
|
|
210
|
+
}
|
|
211
|
+
async createDocumentTypeWithAllowedTemplate(documentTypeName, allowedTemplateId) {
|
|
212
|
+
const documentType = new json_models_builders_1.DocumentTypeBuilder()
|
|
213
|
+
.withName(documentTypeName)
|
|
214
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(documentTypeName))
|
|
215
|
+
.addAllowedTemplateId()
|
|
216
|
+
.withId(allowedTemplateId)
|
|
217
|
+
.done()
|
|
218
|
+
.build();
|
|
219
|
+
return await this.create(documentType);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
exports.DocumentTypeApiHelper = DocumentTypeApiHelper;
|
|
223
|
+
//# sourceMappingURL=DocumentTypeApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentTypeBuilder} from \"@umbraco/json-models-builders\";\nimport {AliasHelper} from \"./AliasHelper\";\n\nexport class DocumentTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDocumentTypes = await this.getAllAtRoot();\n const jsonDocumentTypes = await rootDocumentTypes.json();\n\n for (const documentType of jsonDocumentTypes.items) {\n if (documentType.name === name) {\n if (documentType.isFolder) {\n return await this.recurseDeleteChildren(documentType);\n }\n return await this.delete(documentType.id);\n } else if (documentType.hasChildren) {\n await this.recurseChildren(name, documentType.id, true);\n }\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(documentTypeFolder) {\n if (!documentTypeFolder.hasChildren) {\n return await this.deleteFolder(documentTypeFolder.id);\n }\n const items = await this.getChildren(documentTypeFolder.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(documentTypeFolder.id);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document-type/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);\n const items = await response.json();\n return items.items;\n }\n \n async create(documentType) {\n if (documentType == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-type', documentType)\n return response.headers().location.split(\"/\").pop();\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-type/' + id);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n \n async getByName(name: string) {\n const rootDocumentTypes = await this.getAllAtRoot();\n const jsonDocumentTypes = await rootDocumentTypes.json();\n\n for (const documentType of jsonDocumentTypes.items) {\n if (documentType.name === name) {\n if (documentType.isFolder) {\n return this.getFolder(documentType.id);\n }\n return this.get(documentType.id);\n } else if (documentType.hasChildren) {\n const result = await this.recurseChildren(name, documentType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n \n async doesNameExist(name: string) {\n return await this.getByName(name)\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-type/' + id);\n return response.status();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + id);\n return await response.json();\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + id);\n }\n \n async createFolder(name: string, parentId? : string) {\n const folder = {\n name: name,\n parentId: parentId\n }\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder', folder);\n }\n \n async renameFolder(folderId: string, folderName: string) {\n const folder = {\n name: folderName\n }\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document-type/folder/' + folderId, folder);\n }\n \n async createDefaultDocumentType(documentTypeName: string){\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .build();\n return await this.create(documentType);\n }\n \n async createDocumentTypeWithPropertyEditor(documentTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string = \"GroupTest\", varyByCulture: boolean = false) \n {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .addContainer()\n .withName(groupName)\n .withId(containerId)\n .withType(\"Group\")\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withName(dataTypeName)\n .withDataTypeId(dataTypeId)\n .done()\n .withVariesByCulture(varyByCulture)\n .build();\n return await this.create(documentType);\n }\n \n async createDocumentTypeWithTwoPropertyEditors(documentTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName: string = \"GroupTest\")\n {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .addContainer()\n .withName(groupName)\n .withId(containerId)\n .withType(\"Group\")\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeNameOne))\n .withName(dataTypeNameOne)\n .withDataTypeId(dataTypeIdOne)\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeNameTwo))\n .withName(dataTypeNameTwo)\n .withDataTypeId(dataTypeIdTwo)\n .done()\n .build();\n return await this.create(documentType);\n }\n \n async createDefaultDocumentTypeWithAllowAsRoot(documentTypeName: string) {\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .withAllowedAsRoot(true)\n .build();\n return await this.create(documentType);\n }\n \n async createDocumentTypeWithAllowedChildNode(documentTypeName: string, allowedChildNodeId: string) {\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .addAllowedDocumentType()\n .withId(allowedChildNodeId)\n .done()\n .build();\n return await this.create(documentType);\n }\n \n async createDocumentTypeWithAllowedTemplate(documentTypeName: string, allowedTemplateId: string) {\n const documentType = new DocumentTypeBuilder()\n .withName(documentTypeName)\n .withAlias(AliasHelper.toAlias(documentTypeName))\n .addAllowedTemplateId()\n .withId(allowedTemplateId)\n .done()\n .build();\n return await this.create(documentType);\n }\n}"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
2
|
+
import { Page } from "@playwright/test";
|
|
3
|
+
export declare class DocumentTypeUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly newDocumentTypeBtn;
|
|
5
|
+
private readonly documentNameTxt;
|
|
6
|
+
private readonly varyByCultureSlider;
|
|
7
|
+
private readonly documentTypeSettingsTabBtn;
|
|
8
|
+
private readonly documentTypeTemplatesTabBtn;
|
|
9
|
+
private readonly varyBySegmentsBtn;
|
|
10
|
+
private readonly varyByCultureBtn;
|
|
11
|
+
constructor(page: Page);
|
|
12
|
+
clickActionsMenuForDocumentType(name: string): Promise<void>;
|
|
13
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
14
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
15
|
+
clickNewDocumentTypeButton(): Promise<void>;
|
|
16
|
+
clickVaryByCultureSlider(): Promise<void>;
|
|
17
|
+
clickDocumentTypeSettingsTab(): Promise<void>;
|
|
18
|
+
clickDocumentTypeTemplatesTab(): Promise<void>;
|
|
19
|
+
clickVaryBySegmentsButton(): Promise<void>;
|
|
20
|
+
clickVaryByCultureButton(): Promise<void>;
|
|
21
|
+
goToDocumentType(documentTypeName: string): Promise<void>;
|
|
22
|
+
enterDocumentTypeName(documentTypeName: string): Promise<void>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentTypeUiHelper = void 0;
|
|
4
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
|
+
class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
6
|
+
newDocumentTypeBtn;
|
|
7
|
+
documentNameTxt;
|
|
8
|
+
varyByCultureSlider;
|
|
9
|
+
documentTypeSettingsTabBtn;
|
|
10
|
+
documentTypeTemplatesTabBtn;
|
|
11
|
+
varyBySegmentsBtn;
|
|
12
|
+
varyByCultureBtn;
|
|
13
|
+
constructor(page) {
|
|
14
|
+
super(page);
|
|
15
|
+
this.newDocumentTypeBtn = page.getByLabel('New Document Type...');
|
|
16
|
+
this.documentNameTxt = page.getByLabel('name', { exact: true });
|
|
17
|
+
this.varyByCultureSlider = page.locator('label').filter({ hasText: 'Vary by culture' }).locator('#slider');
|
|
18
|
+
this.documentTypeSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', { name: 'Settings' });
|
|
19
|
+
this.documentTypeTemplatesTabBtn = page.getByRole('tab', { name: 'Templates' });
|
|
20
|
+
this.varyBySegmentsBtn = page.getByText('Vary by segments', { exact: true });
|
|
21
|
+
this.varyByCultureBtn = page.getByText('Vary by culture', { exact: true });
|
|
22
|
+
}
|
|
23
|
+
async clickActionsMenuForDocumentType(name) {
|
|
24
|
+
await this.clickActionsMenuForName(name);
|
|
25
|
+
}
|
|
26
|
+
async clickActionsMenuAtRoot() {
|
|
27
|
+
await this.clickActionsMenuForDocumentType("Document Types");
|
|
28
|
+
}
|
|
29
|
+
async clickRootFolderCaretButton() {
|
|
30
|
+
await this.clickCaretButtonForName("Document Types");
|
|
31
|
+
}
|
|
32
|
+
async clickNewDocumentTypeButton() {
|
|
33
|
+
await this.newDocumentTypeBtn.click();
|
|
34
|
+
}
|
|
35
|
+
async clickVaryByCultureSlider() {
|
|
36
|
+
await this.varyByCultureSlider.click();
|
|
37
|
+
}
|
|
38
|
+
async clickDocumentTypeSettingsTab() {
|
|
39
|
+
await this.documentTypeSettingsTabBtn.waitFor({ state: 'visible' });
|
|
40
|
+
await this.documentTypeSettingsTabBtn.click({ force: true });
|
|
41
|
+
}
|
|
42
|
+
async clickDocumentTypeTemplatesTab() {
|
|
43
|
+
await this.documentTypeTemplatesTabBtn.waitFor({ state: 'visible' });
|
|
44
|
+
await this.documentTypeTemplatesTabBtn.click({ force: true });
|
|
45
|
+
}
|
|
46
|
+
async clickVaryBySegmentsButton() {
|
|
47
|
+
await this.varyBySegmentsBtn.click();
|
|
48
|
+
}
|
|
49
|
+
async clickVaryByCultureButton() {
|
|
50
|
+
await this.varyByCultureBtn.click();
|
|
51
|
+
}
|
|
52
|
+
async goToDocumentType(documentTypeName) {
|
|
53
|
+
await this.clickRootFolderCaretButton();
|
|
54
|
+
await this.page.getByLabel(documentTypeName).click();
|
|
55
|
+
}
|
|
56
|
+
async enterDocumentTypeName(documentTypeName) {
|
|
57
|
+
await this.documentNameTxt.waitFor({ state: 'visible' });
|
|
58
|
+
await this.documentNameTxt.fill(documentTypeName);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DocumentTypeUiHelper = DocumentTypeUiHelper;
|
|
62
|
+
//# sourceMappingURL=DocumentTypeUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly documentNameTxt: Locator;\n private readonly varyByCultureSlider: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newDocumentTypeBtn = page.getByLabel('New Document Type...');\n this.documentNameTxt = page.getByLabel('name', {exact: true});\n this.varyByCultureSlider = page.locator('label').filter({hasText: 'Vary by culture'}).locator('#slider');\n this.documentTypeSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.documentTypeTemplatesTabBtn = page.getByRole('tab', {name: 'Templates'})\n this.varyBySegmentsBtn = page.getByText('Vary by segments', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Document Types\");\n }\n\n async clickNewDocumentTypeButton() {\n await this.newDocumentTypeBtn.click();\n }\n\n async clickVaryByCultureSlider() {\n await this.varyByCultureSlider.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n await this.documentTypeSettingsTabBtn.waitFor({state: 'visible'});\n await this.documentTypeSettingsTabBtn.click({force: true});\n }\n\n async clickDocumentTypeTemplatesTab() {\n await this.documentTypeTemplatesTabBtn.waitFor({state: 'visible'});\n await this.documentTypeTemplatesTabBtn.click({force: true});\n }\n\n async clickVaryBySegmentsButton() {\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await this.varyByCultureBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(documentTypeName).click();\n }\n\n async enterDocumentTypeName(documentTypeName: string) {\n await this.documentNameTxt.waitFor({state: 'visible'});\n await this.documentNameTxt.fill(documentTypeName);\n }\n}"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class ExamineManagementUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly examineManagementTab;
|
|
5
|
+
private readonly indexersContent;
|
|
6
|
+
private readonly indexerItems;
|
|
7
|
+
private readonly indexInfoRow;
|
|
8
|
+
constructor(page: Page);
|
|
9
|
+
clickExamineManagementTab(): Promise<void>;
|
|
10
|
+
doesIndexersHaveText(text: string): Promise<void>;
|
|
11
|
+
checkIndexersCount(): Promise<number>;
|
|
12
|
+
clickIndexByName(indexName: string): Promise<void>;
|
|
13
|
+
doesIndexPropertyHaveValue(indexProperty: string, indexValue: string): Promise<void>;
|
|
14
|
+
doesIndexHaveHealthStatus(indexName: string, status: string): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExamineManagementUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
class ExamineManagementUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
|
+
examineManagementTab;
|
|
8
|
+
indexersContent;
|
|
9
|
+
indexerItems;
|
|
10
|
+
indexInfoRow;
|
|
11
|
+
constructor(page) {
|
|
12
|
+
super(page);
|
|
13
|
+
this.examineManagementTab = page.getByRole('tab', { name: 'Examine Management' });
|
|
14
|
+
this.indexersContent = page.locator('[headline="Indexers"]');
|
|
15
|
+
this.indexerItems = this.indexersContent.locator('uui-table-cell a');
|
|
16
|
+
this.indexInfoRow = page.locator('uui-table-row');
|
|
17
|
+
}
|
|
18
|
+
async clickExamineManagementTab() {
|
|
19
|
+
await this.examineManagementTab.click();
|
|
20
|
+
}
|
|
21
|
+
async doesIndexersHaveText(text) {
|
|
22
|
+
return await (0, test_1.expect)(this.indexersContent).toContainText(text);
|
|
23
|
+
}
|
|
24
|
+
checkIndexersCount() {
|
|
25
|
+
return this.indexerItems.count();
|
|
26
|
+
}
|
|
27
|
+
async clickIndexByName(indexName) {
|
|
28
|
+
await this.page.getByRole('link', { name: indexName }).click();
|
|
29
|
+
}
|
|
30
|
+
async doesIndexPropertyHaveValue(indexProperty, indexValue) {
|
|
31
|
+
return (0, test_1.expect)(this.indexInfoRow.filter({ has: this.page.getByText(indexProperty) }).getByRole('cell').last()).toHaveText(indexValue);
|
|
32
|
+
}
|
|
33
|
+
async doesIndexHaveHealthStatus(indexName, status) {
|
|
34
|
+
return (0, test_1.expect)(this.page.locator("[headline='" + indexName + "']").getByText(status)).toBeVisible();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ExamineManagementUiHelper = ExamineManagementUiHelper;
|
|
38
|
+
//# sourceMappingURL=ExamineManagementUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExamineManagementUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ExamineManagementUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,yBAA0B,SAAQ,+BAAc;IAC1C,oBAAoB,CAAU;IAC9B,eAAe,CAAU;IACzB,YAAY,CAAU;IACtB,YAAY,CAAU;IAEvC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,oBAAoB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,aAAqB,EAAE,UAAkB;QACxE,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAiB,EAAE,MAAc;QAC/D,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrG,CAAC;CACF;AArCD,8DAqCC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class ExamineManagementUiHelper extends UiBaseLocators {\n private readonly examineManagementTab: Locator;\n private readonly indexersContent: Locator;\n private readonly indexerItems: Locator;\n private readonly indexInfoRow: Locator;\n\n constructor(page: Page) {\n super(page);\n this.examineManagementTab = page.getByRole('tab', {name: 'Examine Management'});\n this.indexersContent = page.locator('[headline=\"Indexers\"]');\n this.indexerItems = this.indexersContent.locator('uui-table-cell a');\n this.indexInfoRow = page.locator('uui-table-row');\n }\n\n async clickExamineManagementTab() {\n await this.examineManagementTab.click();\n }\n\n async doesIndexersHaveText(text: string) {\n return await expect(this.indexersContent).toContainText(text);\n }\n\n checkIndexersCount() {\n return this.indexerItems.count();\n }\n\n async clickIndexByName(indexName: string) {\n await this.page.getByRole('link', { name: indexName }).click();\n }\n\n async doesIndexPropertyHaveValue(indexProperty: string, indexValue: string) {\n return expect(this.indexInfoRow.filter({has: this.page.getByText(indexProperty)}).getByRole('cell').last()).toHaveText(indexValue);\n }\n\n async doesIndexHaveHealthStatus(indexName: string, status: string) {\n return expect(this.page.locator(\"[headline='\" + indexName + \"']\").getByText(status)).toBeVisible();\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ApiHelpers } from "./ApiHelpers";
|
|
2
|
+
export declare class HealthCheckApiHelper {
|
|
3
|
+
api: ApiHelpers;
|
|
4
|
+
constructor(api: ApiHelpers);
|
|
5
|
+
getAll(): Promise<any>;
|
|
6
|
+
getByName(name: string): Promise<any>;
|
|
7
|
+
checkByName(name: string): Promise<any>;
|
|
8
|
+
getResultsCountByName(name: string): Promise<{
|
|
9
|
+
success: number;
|
|
10
|
+
error: number;
|
|
11
|
+
warning: number;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthCheckApiHelper = void 0;
|
|
4
|
+
class HealthCheckApiHelper {
|
|
5
|
+
api;
|
|
6
|
+
constructor(api) {
|
|
7
|
+
this.api = api;
|
|
8
|
+
}
|
|
9
|
+
async getAll() {
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group?skip=0&take=9999');
|
|
11
|
+
return await response.json();
|
|
12
|
+
}
|
|
13
|
+
async getByName(name) {
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name);
|
|
15
|
+
return await response.json();
|
|
16
|
+
}
|
|
17
|
+
async checkByName(name) {
|
|
18
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name + '/check');
|
|
19
|
+
return await response.json();
|
|
20
|
+
}
|
|
21
|
+
async getResultsCountByName(name) {
|
|
22
|
+
const resultCount = {
|
|
23
|
+
success: 0,
|
|
24
|
+
error: 0,
|
|
25
|
+
warning: 0
|
|
26
|
+
};
|
|
27
|
+
const healthCheckData = await this.checkByName(name);
|
|
28
|
+
healthCheckData.checks.forEach((item) => {
|
|
29
|
+
item.results.forEach((result) => {
|
|
30
|
+
switch (result.resultType) {
|
|
31
|
+
case "Success":
|
|
32
|
+
resultCount.success++;
|
|
33
|
+
break;
|
|
34
|
+
case "Error":
|
|
35
|
+
resultCount.error++;
|
|
36
|
+
break;
|
|
37
|
+
case "Warning":
|
|
38
|
+
resultCount.warning++;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return resultCount;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.HealthCheckApiHelper = HealthCheckApiHelper;
|
|
47
|
+
//# sourceMappingURL=HealthCheckApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthCheckApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/HealthCheckApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAC/B,GAAG,CAAa;IAEhB,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gEAAgE,CAAC,CAAC;QACzH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gDAAgD,GAAG,IAAI,CAAC,CAAC;QAChH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gDAAgD,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;QAC5H,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY;QACtC,MAAM,WAAW,GAAwD;YACvE,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9B,QAAQ,MAAM,CAAC,UAAU,EAAE;oBACzB,KAAK,SAAS;wBACZ,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM;oBACR,KAAK,OAAO;wBACV,WAAW,CAAC,KAAK,EAAE,CAAC;wBACpB,MAAM;oBACR,KAAK,SAAS;wBACZ,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM;iBACT;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAjDD,oDAiDC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class HealthCheckApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group?skip=0&take=9999');\n return await response.json();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name);\n return await response.json();\n }\n\n async checkByName(name: string) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name + '/check');\n return await response.json();\n }\n\n async getResultsCountByName(name: string) {\n const resultCount: { success: number, error: number, warning: number } = {\n success: 0,\n error: 0,\n warning: 0\n };\n \n const healthCheckData = await this.checkByName(name);\n \n healthCheckData.checks.forEach((item) => {\n item.results.forEach((result) => {\n switch (result.resultType) {\n case \"Success\":\n resultCount.success++;\n break;\n case \"Error\":\n resultCount.error++;\n break;\n case \"Warning\":\n resultCount.warning++;\n break;\n }\n });\n });\n \n return resultCount;\n }\n}"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class HealthCheckUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly healthCheckTab;
|
|
5
|
+
private readonly healthCheckGroupBox;
|
|
6
|
+
private readonly performanceAllChecksBtn;
|
|
7
|
+
private readonly positiveTag;
|
|
8
|
+
private readonly warningTag;
|
|
9
|
+
private readonly dangerTag;
|
|
10
|
+
private readonly headline;
|
|
11
|
+
private readonly healthCheckGroup;
|
|
12
|
+
constructor(page: Page);
|
|
13
|
+
clickHealthCheckTab(): Promise<void>;
|
|
14
|
+
checkHealthCheckGroupCount(): Promise<number>;
|
|
15
|
+
clickPerformanceAllChecksButton(): Promise<void>;
|
|
16
|
+
clickHeathCheckGroupByName(groupName: string): Promise<void>;
|
|
17
|
+
isHealthCheckGroupVisible(groupName: string): Promise<void>;
|
|
18
|
+
doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
|
|
19
|
+
doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
|
|
20
|
+
doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
|
|
21
|
+
isCheckNameVisible(name: string): Promise<void>;
|
|
22
|
+
isCheckDescriptionVisible(description: string): Promise<void>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthCheckUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
class HealthCheckUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
|
+
healthCheckTab;
|
|
8
|
+
healthCheckGroupBox;
|
|
9
|
+
performanceAllChecksBtn;
|
|
10
|
+
positiveTag;
|
|
11
|
+
warningTag;
|
|
12
|
+
dangerTag;
|
|
13
|
+
headline;
|
|
14
|
+
healthCheckGroup;
|
|
15
|
+
constructor(page) {
|
|
16
|
+
super(page);
|
|
17
|
+
this.healthCheckTab = page.getByRole('tab', { name: 'Health Check' });
|
|
18
|
+
this.healthCheckGroupBox = page.locator('umb-health-check-group-box-overview');
|
|
19
|
+
this.performanceAllChecksBtn = page.getByLabel('Perform all checks');
|
|
20
|
+
this.positiveTag = 'uui-tag[color="positive"]';
|
|
21
|
+
this.warningTag = 'uui-tag[color="warning"]';
|
|
22
|
+
this.dangerTag = 'uui-tag[color="danger"]';
|
|
23
|
+
this.headline = page.locator('#headline');
|
|
24
|
+
this.healthCheckGroup = page.locator('umb-dashboard-health-check-group');
|
|
25
|
+
}
|
|
26
|
+
async clickHealthCheckTab() {
|
|
27
|
+
await this.healthCheckTab.click();
|
|
28
|
+
}
|
|
29
|
+
async checkHealthCheckGroupCount() {
|
|
30
|
+
await (0, test_1.expect)(this.healthCheckGroupBox.first()).toBeVisible();
|
|
31
|
+
return this.healthCheckGroupBox.count();
|
|
32
|
+
}
|
|
33
|
+
async clickPerformanceAllChecksButton() {
|
|
34
|
+
await this.performanceAllChecksBtn.click();
|
|
35
|
+
}
|
|
36
|
+
async clickHeathCheckGroupByName(groupName) {
|
|
37
|
+
await this.page.getByRole('link', { name: groupName }).click();
|
|
38
|
+
}
|
|
39
|
+
async isHealthCheckGroupVisible(groupName) {
|
|
40
|
+
return await (0, test_1.expect)(this.healthCheckGroupBox.getByText(groupName)).toBeVisible();
|
|
41
|
+
}
|
|
42
|
+
async doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName, count) {
|
|
43
|
+
return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.positiveTag)).toHaveText(count.toString());
|
|
44
|
+
}
|
|
45
|
+
async doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName, count) {
|
|
46
|
+
return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.warningTag)).toHaveText(count.toString());
|
|
47
|
+
}
|
|
48
|
+
async doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName, count) {
|
|
49
|
+
return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.dangerTag)).toHaveText(count.toString());
|
|
50
|
+
}
|
|
51
|
+
async isCheckNameVisible(name) {
|
|
52
|
+
return await (0, test_1.expect)(this.headline.filter({ hasText: name })).toBeVisible();
|
|
53
|
+
}
|
|
54
|
+
async isCheckDescriptionVisible(description) {
|
|
55
|
+
return await (0, test_1.expect)(this.healthCheckGroup.getByText(description)).toBeVisible();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.HealthCheckUiHelper = HealthCheckUiHelper;
|
|
59
|
+
//# sourceMappingURL=HealthCheckUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthCheckUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/HealthCheckUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class HealthCheckUiHelper extends UiBaseLocators {\n private readonly healthCheckTab: Locator;\n private readonly healthCheckGroupBox: Locator;\n private readonly performanceAllChecksBtn: Locator;\n private readonly positiveTag: string;\n private readonly warningTag: string;\n private readonly dangerTag: string;\n private readonly headline: Locator;\n private readonly healthCheckGroup: Locator;\n\n constructor(page: Page) {\n super(page);\n this.healthCheckTab = page.getByRole('tab', {name: 'Health Check'});\n this.healthCheckGroupBox = page.locator('umb-health-check-group-box-overview');\n this.performanceAllChecksBtn = page.getByLabel('Perform all checks');\n this.positiveTag = 'uui-tag[color=\"positive\"]';\n this.warningTag = 'uui-tag[color=\"warning\"]';\n this.dangerTag = 'uui-tag[color=\"danger\"]';\n this.headline = page.locator('#headline');\n this.healthCheckGroup = page.locator('umb-dashboard-health-check-group');\n }\n\n async clickHealthCheckTab() {\n await this.healthCheckTab.click();\n }\n\n async checkHealthCheckGroupCount() {\n await expect(this.healthCheckGroupBox.first()).toBeVisible();\n return this.healthCheckGroupBox.count();\n }\n\n async clickPerformanceAllChecksButton() {\n await this.performanceAllChecksBtn.click();\n }\n\n async clickHeathCheckGroupByName(groupName: string) {\n await this.page.getByRole('link', { name: groupName }).click();\n }\n\n async isHealthCheckGroupVisible(groupName: string) {\n return await expect(this.healthCheckGroupBox.getByText(groupName)).toBeVisible();\n }\n\n async doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.positiveTag)).toHaveText(count.toString());\n }\n\n async doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.warningTag)).toHaveText(count.toString());\n }\n\n async doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.dangerTag)).toHaveText(count.toString());\n }\n\n async isCheckNameVisible(name: string) {\n return await expect(this.headline.filter({hasText: name})).toBeVisible();\n }\n\n async isCheckDescriptionVisible(description: string) {\n return await expect(this.healthCheckGroup.getByText(description)).toBeVisible();\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndexerApiHelper = void 0;
|
|
4
|
+
class IndexerApiHelper {
|
|
5
|
+
api;
|
|
6
|
+
constructor(api) {
|
|
7
|
+
this.api = api;
|
|
8
|
+
}
|
|
9
|
+
async getAll() {
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer?skip=0&take=9999');
|
|
11
|
+
return await response.json();
|
|
12
|
+
}
|
|
13
|
+
async getByIndexName(indexName) {
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer/' + indexName);
|
|
15
|
+
return await response.json();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.IndexerApiHelper = IndexerApiHelper;
|
|
19
|
+
//# sourceMappingURL=IndexerApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexerApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/IndexerApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAC3B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qDAAqD,CAAC,CAAC;QAC9G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,GAAG,SAAS,CAAC,CAAC;QAC1G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;CACF;AAhBD,4CAgBC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class IndexerApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer?skip=0&take=9999');\n return await response.json(); \n }\n\n async getByIndexName(indexName: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer/' + indexName);\n return await response.json(); \n }\n}"]}
|