@umbraco/playwright-testhelpers 2.0.0-beta.9 → 2.0.0-beta.90
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 +53 -4
- package/dist/lib/helpers/ApiHelpers.js +260 -9
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ContentRenderUiHelper.d.ts +8 -0
- package/dist/lib/helpers/ContentRenderUiHelper.js +21 -0
- package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ContentUiHelper.d.ts +190 -0
- package/dist/lib/helpers/ContentUiHelper.js +569 -0
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +95 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +829 -130
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +266 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +850 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +2 -1
- package/dist/lib/helpers/DictionaryApiHelper.js +17 -4
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +7 -9
- package/dist/lib/helpers/DictionaryUiHelper.js +33 -33
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentApiHelper.d.ts +39 -0
- package/dist/lib/helpers/DocumentApiHelper.js +391 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +18 -0
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js +126 -0
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +18 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js +54 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +43 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +577 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +35 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +98 -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 +68 -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/LoginApiHelper.d.ts +17 -0
- package/dist/lib/helpers/LoginApiHelper.js +105 -0
- package/dist/lib/helpers/LoginApiHelper.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 +32 -0
- package/dist/lib/helpers/MediaApiHelper.js +245 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaUiHelper.d.ts +54 -0
- package/dist/lib/helpers/MediaUiHelper.js +158 -0
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
- package/dist/lib/helpers/MemberApiHelper.js +88 -0
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupUiHelper.d.ts +17 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +48 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberUiHelper.d.ts +42 -0
- package/dist/lib/helpers/MemberUiHelper.js +120 -0
- package/dist/lib/helpers/MemberUiHelper.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 +9 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/NotificationConstantHelper.d.ts +30 -0
- package/dist/lib/helpers/NotificationConstantHelper.js +35 -0
- package/dist/lib/helpers/NotificationConstantHelper.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 +50 -0
- package/dist/lib/helpers/PackageUiHelper.js +140 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -4
- package/dist/lib/helpers/PartialViewApiHelper.js +36 -30
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +7 -11
- package/dist/lib/helpers/PartialViewUiHelper.js +27 -36
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- 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/RedirectManagementApiHelper.d.ts +10 -0
- package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
- package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.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 +5 -3
- package/dist/lib/helpers/ScriptApiHelper.js +43 -26
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +8 -12
- package/dist/lib/helpers/ScriptUiHelper.js +31 -40
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
- package/dist/lib/helpers/StylesheetApiHelper.js +48 -41
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +17 -15
- package/dist/lib/helpers/StylesheetUiHelper.js +60 -47
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- 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 +2 -0
- package/dist/lib/helpers/TemplateApiHelper.js +18 -0
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +14 -18
- package/dist/lib/helpers/TemplateUiHelper.js +65 -59
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +17 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +23 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +217 -10
- package/dist/lib/helpers/UiBaseLocators.js +716 -40
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UiHelpers.d.ts +51 -7
- package/dist/lib/helpers/UiHelpers.js +78 -21
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +28 -11
- package/dist/lib/helpers/UserApiHelper.js +123 -21
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +8 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +52 -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 +73 -0
- package/dist/lib/helpers/UserUiHelper.js +199 -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 +5 -0
- 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 -11
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediaTypeApiHelper = void 0;
|
|
4
|
+
const AliasHelper_1 = require("./AliasHelper");
|
|
5
|
+
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
6
|
+
class MediaTypeApiHelper {
|
|
7
|
+
api;
|
|
8
|
+
constructor(api) {
|
|
9
|
+
this.api = api;
|
|
10
|
+
}
|
|
11
|
+
async ensureNameNotExists(name) {
|
|
12
|
+
const rootMediaTypes = await this.getAllAtRoot();
|
|
13
|
+
const jsonMediaTypes = await rootMediaTypes.json();
|
|
14
|
+
for (const mediaType of jsonMediaTypes.items) {
|
|
15
|
+
if (mediaType.name === name) {
|
|
16
|
+
if (mediaType.isFolder) {
|
|
17
|
+
return await this.recurseDeleteChildren(mediaType);
|
|
18
|
+
}
|
|
19
|
+
return await this.delete(mediaType.id);
|
|
20
|
+
}
|
|
21
|
+
else if (mediaType.hasChildren) {
|
|
22
|
+
await this.recurseChildren(name, mediaType.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/media-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(mediaTypeFolder) {
|
|
52
|
+
if (!mediaTypeFolder.hasChildren) {
|
|
53
|
+
return await this.deleteFolder(mediaTypeFolder.id);
|
|
54
|
+
}
|
|
55
|
+
const items = await this.getChildren(mediaTypeFolder.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(mediaTypeFolder.id);
|
|
68
|
+
}
|
|
69
|
+
async getChildren(id) {
|
|
70
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/media-type/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);
|
|
71
|
+
const items = await response.json();
|
|
72
|
+
return items.items;
|
|
73
|
+
}
|
|
74
|
+
async create(mediaType) {
|
|
75
|
+
if (mediaType == null) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type', mediaType);
|
|
79
|
+
return response.headers().location.split("/").pop();
|
|
80
|
+
}
|
|
81
|
+
async delete(id) {
|
|
82
|
+
if (id == null) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);
|
|
86
|
+
return response.status();
|
|
87
|
+
}
|
|
88
|
+
async getByName(name) {
|
|
89
|
+
const rootMediaTypes = await this.getAllAtRoot();
|
|
90
|
+
const jsonMediaTypes = await rootMediaTypes.json();
|
|
91
|
+
for (const mediaType of jsonMediaTypes.items) {
|
|
92
|
+
if (mediaType.name === name) {
|
|
93
|
+
if (mediaType.isFolder) {
|
|
94
|
+
return this.getFolder(mediaType.id);
|
|
95
|
+
}
|
|
96
|
+
return this.get(mediaType.id);
|
|
97
|
+
}
|
|
98
|
+
else if (mediaType.isContainer || mediaType.hasChildren) {
|
|
99
|
+
const result = await this.recurseChildren(name, mediaType.id, false);
|
|
100
|
+
if (result) {
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
async doesNameExist(name) {
|
|
108
|
+
return await this.getByName(name);
|
|
109
|
+
}
|
|
110
|
+
async get(id) {
|
|
111
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);
|
|
112
|
+
const json = await response.json();
|
|
113
|
+
if (json !== null) {
|
|
114
|
+
return json;
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
// Folder
|
|
119
|
+
async getFolder(id) {
|
|
120
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-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/media-type/folder/' + id);
|
|
125
|
+
}
|
|
126
|
+
async createFolder(name, parentId) {
|
|
127
|
+
const folder = {
|
|
128
|
+
"name": name,
|
|
129
|
+
"parent": parentId ? { "id": parentId } : null
|
|
130
|
+
};
|
|
131
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder', folder);
|
|
132
|
+
return response.headers().location.split("/").pop();
|
|
133
|
+
}
|
|
134
|
+
async renameFolder(folderId, folderName) {
|
|
135
|
+
const folder = {
|
|
136
|
+
"name": folderName
|
|
137
|
+
};
|
|
138
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + folderId, folder);
|
|
139
|
+
}
|
|
140
|
+
async createDefaultMediaType(mediaTypeName) {
|
|
141
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
142
|
+
.withName(mediaTypeName)
|
|
143
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
144
|
+
.build();
|
|
145
|
+
return await this.create(mediaType);
|
|
146
|
+
}
|
|
147
|
+
async createMediaTypeWithPropertyEditor(mediaTypeName, dataTypeName, dataTypeId, groupName = "GroupTest") {
|
|
148
|
+
const crypto = require('crypto');
|
|
149
|
+
const containerId = crypto.randomUUID();
|
|
150
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
151
|
+
.withName(mediaTypeName)
|
|
152
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
153
|
+
.addContainer()
|
|
154
|
+
.withName(groupName)
|
|
155
|
+
.withId(containerId)
|
|
156
|
+
.withType("Group")
|
|
157
|
+
.done()
|
|
158
|
+
.addProperty()
|
|
159
|
+
.withContainerId(containerId)
|
|
160
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
|
|
161
|
+
.withName(dataTypeName)
|
|
162
|
+
.withDataTypeId(dataTypeId)
|
|
163
|
+
.done()
|
|
164
|
+
.build();
|
|
165
|
+
return await this.create(mediaType);
|
|
166
|
+
}
|
|
167
|
+
async createMediaTypeWithTwoPropertyEditors(mediaTypeName, dataTypeNameOne, dataTypeIdOne, dataTypeNameTwo, dataTypeIdTwo, groupName = "GroupTest") {
|
|
168
|
+
const crypto = require('crypto');
|
|
169
|
+
const containerId = crypto.randomUUID();
|
|
170
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
171
|
+
.withName(mediaTypeName)
|
|
172
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
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(mediaType);
|
|
192
|
+
}
|
|
193
|
+
async createMediaTypeWithPropertyEditorInTab(mediaTypeName, dataTypeName, dataTypeId, tabName, groupName = "TestGroup", varyByCulture = false) {
|
|
194
|
+
const crypto = require('crypto');
|
|
195
|
+
const tabId = crypto.randomUUID();
|
|
196
|
+
const groupId = crypto.randomUUID();
|
|
197
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
198
|
+
.withName(mediaTypeName)
|
|
199
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
200
|
+
.addContainer()
|
|
201
|
+
.withName(tabName)
|
|
202
|
+
.withId(tabId)
|
|
203
|
+
.withType("Tab")
|
|
204
|
+
.done()
|
|
205
|
+
.addContainer()
|
|
206
|
+
.withName(groupName)
|
|
207
|
+
.withId(groupId)
|
|
208
|
+
.withType("Group")
|
|
209
|
+
.withParentId(tabId)
|
|
210
|
+
.done()
|
|
211
|
+
.addProperty()
|
|
212
|
+
.withContainerId(groupId)
|
|
213
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
|
|
214
|
+
.withName(dataTypeName)
|
|
215
|
+
.withDataTypeId(dataTypeId)
|
|
216
|
+
.done()
|
|
217
|
+
.withVariesByCulture(varyByCulture)
|
|
218
|
+
.build();
|
|
219
|
+
return await this.create(mediaType);
|
|
220
|
+
}
|
|
221
|
+
async createMediaTypeWithTwoGroups(mediaTypeName, dataType, dataTypeId, groupNameOne, groupNameTwo) {
|
|
222
|
+
const crypto = require('crypto');
|
|
223
|
+
const groupOneId = crypto.randomUUID();
|
|
224
|
+
const groupTwoId = crypto.randomUUID();
|
|
225
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
226
|
+
.withName(mediaTypeName)
|
|
227
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
228
|
+
.addContainer()
|
|
229
|
+
.withName(groupNameOne)
|
|
230
|
+
.withId(groupOneId)
|
|
231
|
+
.withType("Group")
|
|
232
|
+
.withSortOrder(0)
|
|
233
|
+
.done()
|
|
234
|
+
.addContainer()
|
|
235
|
+
.withName(groupNameTwo)
|
|
236
|
+
.withId(groupTwoId)
|
|
237
|
+
.withType("Group")
|
|
238
|
+
.withSortOrder(1)
|
|
239
|
+
.done()
|
|
240
|
+
.addProperty()
|
|
241
|
+
.withContainerId(groupOneId)
|
|
242
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataType + "One"))
|
|
243
|
+
.withName(dataType + "One")
|
|
244
|
+
.withDataTypeId(dataTypeId)
|
|
245
|
+
.done()
|
|
246
|
+
.addProperty()
|
|
247
|
+
.withContainerId(groupTwoId)
|
|
248
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataType + "Two"))
|
|
249
|
+
.withName(dataType + "Two")
|
|
250
|
+
.withDataTypeId(dataTypeId)
|
|
251
|
+
.done()
|
|
252
|
+
.build();
|
|
253
|
+
return await this.create(mediaType);
|
|
254
|
+
}
|
|
255
|
+
async createMediaTypeWithTwoTabs(mediaTypeName, dataType, dataTypeId, tabNameOne, tabNameTwo) {
|
|
256
|
+
const crypto = require('crypto');
|
|
257
|
+
const tabOneId = crypto.randomUUID();
|
|
258
|
+
const tabTwoId = crypto.randomUUID();
|
|
259
|
+
const groupOneId = crypto.randomUUID();
|
|
260
|
+
const groupTwoId = crypto.randomUUID();
|
|
261
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
262
|
+
.withName(mediaTypeName)
|
|
263
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
264
|
+
.addContainer()
|
|
265
|
+
.withName(tabNameOne)
|
|
266
|
+
.withId(tabOneId)
|
|
267
|
+
.withType("Tab")
|
|
268
|
+
.withSortOrder(0)
|
|
269
|
+
.done()
|
|
270
|
+
.addContainer()
|
|
271
|
+
.withName(tabNameTwo)
|
|
272
|
+
.withId(tabTwoId)
|
|
273
|
+
.withType("Tab")
|
|
274
|
+
.withSortOrder(1)
|
|
275
|
+
.done()
|
|
276
|
+
.addContainer()
|
|
277
|
+
.withName("GroupTestOne")
|
|
278
|
+
.withId(groupOneId)
|
|
279
|
+
.withType("Group")
|
|
280
|
+
.withParentId(tabOneId)
|
|
281
|
+
.done()
|
|
282
|
+
.addProperty()
|
|
283
|
+
.withContainerId(groupOneId)
|
|
284
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataType + "One"))
|
|
285
|
+
.withName(dataType + "One")
|
|
286
|
+
.withDataTypeId(dataTypeId)
|
|
287
|
+
.done()
|
|
288
|
+
.addContainer()
|
|
289
|
+
.withName("GroupTestTwo")
|
|
290
|
+
.withId(groupTwoId)
|
|
291
|
+
.withType("Group")
|
|
292
|
+
.withParentId(tabTwoId)
|
|
293
|
+
.done()
|
|
294
|
+
.addProperty()
|
|
295
|
+
.withContainerId(groupTwoId)
|
|
296
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(dataType + "Two"))
|
|
297
|
+
.withName(dataType + "Two")
|
|
298
|
+
.withDataTypeId(dataTypeId)
|
|
299
|
+
.done()
|
|
300
|
+
.build();
|
|
301
|
+
return await this.create(mediaType);
|
|
302
|
+
}
|
|
303
|
+
async createMediaTypeWithAllowedChildNode(mediaTypeName, allowedChildNodeId) {
|
|
304
|
+
await this.ensureNameNotExists(mediaTypeName);
|
|
305
|
+
const mediaType = new json_models_builders_1.MediaTypeBuilder()
|
|
306
|
+
.withName(mediaTypeName)
|
|
307
|
+
.withAlias(AliasHelper_1.AliasHelper.toAlias(mediaTypeName))
|
|
308
|
+
.withAllowedAsRoot(true)
|
|
309
|
+
.addAllowedMediaType()
|
|
310
|
+
.withId(allowedChildNodeId)
|
|
311
|
+
.done()
|
|
312
|
+
.build();
|
|
313
|
+
return await this.create(mediaType);
|
|
314
|
+
}
|
|
315
|
+
async doesGroupContainCorrectPropertyEditor(mediaTypeName, dataTypeName, dataTypeId, groupName) {
|
|
316
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
317
|
+
const group = mediaType.containers.find(x => x.name === groupName);
|
|
318
|
+
// Check if group is defined
|
|
319
|
+
if (group) {
|
|
320
|
+
// Check if the media type properties include the specified property, and it belongs to the group
|
|
321
|
+
return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
// Group not found
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
async doesTabContainCorrectPropertyEditorInGroup(mediaTypeName, dataTypeName, dataTypeId, tabName, groupName) {
|
|
329
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
330
|
+
const tab = mediaType.containers.find(x => x.name === tabName);
|
|
331
|
+
// Check if tab is defined
|
|
332
|
+
if (tab) {
|
|
333
|
+
const group = mediaType.containers.find(x => x.name === groupName && x.parent.id === tab.id);
|
|
334
|
+
// Check if group is defined
|
|
335
|
+
if (group) {
|
|
336
|
+
// Check if the media type properties include the specified property, and it belongs to the group
|
|
337
|
+
return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
// Group not found
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
// Tab not found
|
|
346
|
+
return false;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
async doesMediaTypeGroupNameContainCorrectSortOrder(mediaTypeName, groupName, sortOrder) {
|
|
350
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
351
|
+
const group = mediaType.containers.find(x => x.name === groupName);
|
|
352
|
+
// Check if group is defined
|
|
353
|
+
if (group) {
|
|
354
|
+
return group.sortOrder === sortOrder;
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
// Group not found
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
async doesMediaTypeTabNameContainCorrectSortOrder(mediaTypeName, tabName, sortOrder) {
|
|
362
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
363
|
+
const tab = mediaType.containers.find(x => x.name === tabName);
|
|
364
|
+
// Check if tab is defined
|
|
365
|
+
if (tab) {
|
|
366
|
+
return tab.sortOrder === sortOrder;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
// Tab not found
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async doesTabContainerCorrectPropertyEditor(mediaTypeName, tabName, dataTypeId) {
|
|
374
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
375
|
+
const tab = mediaType.containers.find(x => x.name === tabName);
|
|
376
|
+
if (tab) {
|
|
377
|
+
return mediaType.properties.find(x => x.dataType.id === dataTypeId && x.container.id === tab.id);
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
async doesMediaTypeContainAllowedChildNodeIds(mediaTypeName, allowedChildNodeIds) {
|
|
384
|
+
const mediaType = await this.getByName(mediaTypeName);
|
|
385
|
+
const allowedChildNodeIdsArray = mediaType.allowedMediaTypes.map(x => x.mediaType.id);
|
|
386
|
+
return allowedChildNodeIdsArray.every(id => allowedChildNodeIds.includes(id));
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
exports.MediaTypeApiHelper = MediaTypeApiHelper;
|
|
390
|
+
//# sourceMappingURL=MediaTypeApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {MediaTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MediaTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMediaTypes = await this.getAllAtRoot();\n const jsonMediaTypes = await rootMediaTypes.json();\n\n for (const mediaType of jsonMediaTypes.items) {\n if (mediaType.name === name) {\n if (mediaType.isFolder) {\n return await this.recurseDeleteChildren(mediaType);\n }\n return await this.delete(mediaType.id);\n } else if (mediaType.hasChildren) {\n await this.recurseChildren(name, mediaType.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/media-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(mediaTypeFolder) {\n if (!mediaTypeFolder.hasChildren) {\n return await this.deleteFolder(mediaTypeFolder.id);\n }\n const items = await this.getChildren(mediaTypeFolder.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(mediaTypeFolder.id);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/media-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(mediaType) {\n if (mediaType == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type', mediaType);\n return response.headers().location.split(\"/\").pop();\n }\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/media-type/' + id);\n return response.status();\n }\n\n async getByName(name: string) {\n const rootMediaTypes = await this.getAllAtRoot();\n const jsonMediaTypes = await rootMediaTypes.json();\n\n for (const mediaType of jsonMediaTypes.items) {\n if (mediaType.name === name) {\n if (mediaType.isFolder) {\n return this.getFolder(mediaType.id);\n }\n return this.get(mediaType.id);\n } else if (mediaType.isContainer || mediaType.hasChildren) {\n const result = await this.recurseChildren(name, mediaType.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 get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n // Folder\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-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/media-type/folder/' + id);\n }\n\n async createFolder(name: string, parentId?: string) {\n const folder = {\n \"name\": name,\n \"parent\": parentId ? {\"id\": parentId} : null\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder', folder);\n return response.headers().location.split(\"/\").pop();\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/media-type/folder/' + folderId, folder);\n }\n\n async createDefaultMediaType(mediaTypeName: string) {\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string = \"GroupTest\") {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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 .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoPropertyEditors(mediaTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName: string = \"GroupTest\") {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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(mediaType);\n }\n\n async createMediaTypeWithPropertyEditorInTab(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string = \"TestGroup\", varyByCulture: boolean = false) {\n const crypto = require('crypto');\n const tabId = crypto.randomUUID();\n const groupId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabName)\n .withId(tabId)\n .withType(\"Tab\")\n .done()\n .addContainer()\n .withName(groupName)\n .withId(groupId)\n .withType(\"Group\")\n .withParentId(tabId)\n .done()\n .addProperty()\n .withContainerId(groupId)\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withName(dataTypeName)\n .withDataTypeId(dataTypeId)\n .done()\n .withVariesByCulture(varyByCulture)\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoGroups(mediaTypeName: string, dataType: string, dataTypeId: string, groupNameOne: string, groupNameTwo: string) {\n const crypto = require('crypto');\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(groupNameOne)\n .withId(groupOneId)\n .withType(\"Group\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(groupNameTwo)\n .withId(groupTwoId)\n .withType(\"Group\")\n .withSortOrder(1)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoTabs(mediaTypeName: string, dataType: string, dataTypeId: string, tabNameOne: string, tabNameTwo: string) {\n const crypto = require('crypto');\n const tabOneId = crypto.randomUUID();\n const tabTwoId = crypto.randomUUID();\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabNameOne)\n .withId(tabOneId)\n .withType(\"Tab\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(tabNameTwo)\n .withId(tabTwoId)\n .withType(\"Tab\")\n .withSortOrder(1)\n .done()\n .addContainer()\n .withName(\"GroupTestOne\")\n .withId(groupOneId)\n .withType(\"Group\")\n .withParentId(tabOneId)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addContainer()\n .withName(\"GroupTestTwo\")\n .withId(groupTwoId)\n .withType(\"Group\")\n .withParentId(tabTwoId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithAllowedChildNode(mediaTypeName: string, allowedChildNodeId: string) {\n await this.ensureNameNotExists(mediaTypeName);\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .withAllowedAsRoot(true)\n .addAllowedMediaType()\n .withId(allowedChildNodeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async doesGroupContainCorrectPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesTabContainCorrectPropertyEditorInGroup(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n const group = mediaType.containers.find(x => x.name === groupName && x.parent.id === tab.id);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesMediaTypeGroupNameContainCorrectSortOrder(mediaTypeName: string, groupName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n return group.sortOrder === sortOrder;\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesMediaTypeTabNameContainCorrectSortOrder(mediaTypeName: string, tabName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n return tab.sortOrder === sortOrder;\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesTabContainerCorrectPropertyEditor(mediaTypeName: string, tabName: string, dataTypeId: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n if (tab) {\n return mediaType.properties.find(x => x.dataType.id === dataTypeId && x.container.id === tab.id);\n } else {\n return false;\n }\n }\n\n async doesMediaTypeContainAllowedChildNodeIds(mediaTypeName: string, allowedChildNodeIds: string[]) {\n const mediaType = await this.getByName(mediaTypeName);\n const allowedChildNodeIdsArray = mediaType.allowedMediaTypes.map(x => x.mediaType.id);\n return allowedChildNodeIdsArray.every(id => allowedChildNodeIds.includes(id));\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
2
|
+
import { Page } from "@playwright/test";
|
|
3
|
+
export declare class MediaTypeUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly newMediaTypeThreeDotsBtn;
|
|
5
|
+
private readonly mediaEditPropertyWorkspace;
|
|
6
|
+
constructor(page: Page);
|
|
7
|
+
clickActionsMenuForMediaType(name: string): Promise<void>;
|
|
8
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
9
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
10
|
+
clickNewMediaTypeButton(): Promise<void>;
|
|
11
|
+
goToMediaType(mediaTypeName: string): Promise<void>;
|
|
12
|
+
enterMediaTypeName(name: string): Promise<void>;
|
|
13
|
+
enterDescriptionForPropertyEditorWithName(propertyEditorName: string, description: string): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediaTypeUiHelper = void 0;
|
|
4
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
|
+
class MediaTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
6
|
+
newMediaTypeThreeDotsBtn;
|
|
7
|
+
mediaEditPropertyWorkspace;
|
|
8
|
+
constructor(page) {
|
|
9
|
+
super(page);
|
|
10
|
+
this.newMediaTypeThreeDotsBtn = page.getByLabel('New Media Type...');
|
|
11
|
+
this.mediaEditPropertyWorkspace = page.locator('umb-media-type-workspace-view-edit-property');
|
|
12
|
+
}
|
|
13
|
+
async clickActionsMenuForMediaType(name) {
|
|
14
|
+
await this.clickActionsMenuForName(name);
|
|
15
|
+
}
|
|
16
|
+
async clickActionsMenuAtRoot() {
|
|
17
|
+
await this.clickActionsMenuForMediaType("Media Types");
|
|
18
|
+
}
|
|
19
|
+
async clickRootFolderCaretButton() {
|
|
20
|
+
await this.clickCaretButtonForName("Media Types");
|
|
21
|
+
}
|
|
22
|
+
async clickNewMediaTypeButton() {
|
|
23
|
+
await this.newMediaTypeThreeDotsBtn.click();
|
|
24
|
+
}
|
|
25
|
+
async goToMediaType(mediaTypeName) {
|
|
26
|
+
await this.clickRootFolderCaretButton();
|
|
27
|
+
await this.page.getByLabel(mediaTypeName).click();
|
|
28
|
+
}
|
|
29
|
+
async enterMediaTypeName(name) {
|
|
30
|
+
await this.enterAName.waitFor({ state: 'visible' });
|
|
31
|
+
await this.enterAName.fill(name);
|
|
32
|
+
}
|
|
33
|
+
async enterDescriptionForPropertyEditorWithName(propertyEditorName, description) {
|
|
34
|
+
await this.mediaEditPropertyWorkspace.filter({ hasText: propertyEditorName }).getByLabel('description').fill(description);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.MediaTypeUiHelper = MediaTypeUiHelper;
|
|
38
|
+
//# sourceMappingURL=MediaTypeUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeUiHelper.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAGhD,MAAa,iBAAkB,SAAQ,+BAAc;IAClC,wBAAwB,CAAU;IAClC,0BAA0B,CAAU;IAErD,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,IAAY;QAC7C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAAqB;QACvC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,yCAAyC,CAAC,kBAA0B,EAAE,WAAmB;QAC7F,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1H,CAAC;CACF;AAvCD,8CAuCC","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {Locator, Page} from \"@playwright/test\";\n\nexport class MediaTypeUiHelper extends UiBaseLocators {\n private readonly newMediaTypeThreeDotsBtn: Locator;\n private readonly mediaEditPropertyWorkspace: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newMediaTypeThreeDotsBtn = page.getByLabel('New Media Type...');\n this.mediaEditPropertyWorkspace = page.locator('umb-media-type-workspace-view-edit-property');\n }\n\n async clickActionsMenuForMediaType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForMediaType(\"Media Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Media Types\");\n }\n\n async clickNewMediaTypeButton() {\n await this.newMediaTypeThreeDotsBtn.click();\n }\n \n async goToMediaType(mediaTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(mediaTypeName).click();\n }\n\n async enterMediaTypeName(name: string) {\n await this.enterAName.waitFor({state: 'visible'});\n await this.enterAName.fill(name);\n }\n\n async enterDescriptionForPropertyEditorWithName(propertyEditorName: string, description: string) {\n await this.mediaEditPropertyWorkspace.filter({hasText: propertyEditorName}).getByLabel('description').fill(description);\n }\n}"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
2
|
+
import { Page } from "@playwright/test";
|
|
3
|
+
export declare class MediaUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly createMediaItemBtn;
|
|
5
|
+
private readonly mediaNameTxt;
|
|
6
|
+
private readonly actionModalCreateBtn;
|
|
7
|
+
private readonly mediaSearchTxt;
|
|
8
|
+
private readonly trashBtn;
|
|
9
|
+
private readonly restoreThreeDotsBtn;
|
|
10
|
+
private readonly emptyRecycleBinThreeDotsBtn;
|
|
11
|
+
private readonly restoreBtn;
|
|
12
|
+
private readonly confirmEmptyRecycleBinBtn;
|
|
13
|
+
private readonly mediaSectionCreateBtn;
|
|
14
|
+
private readonly mediaListHeader;
|
|
15
|
+
private readonly mediaCardItemsValues;
|
|
16
|
+
private readonly mediaListView;
|
|
17
|
+
private readonly mediaGridView;
|
|
18
|
+
private readonly mediaListNameValues;
|
|
19
|
+
private readonly bulkTrashBtn;
|
|
20
|
+
private readonly bulkMoveToBtn;
|
|
21
|
+
private readonly mediaHeader;
|
|
22
|
+
private readonly mediaHeaderActionsMenu;
|
|
23
|
+
private readonly mediaTreeItem;
|
|
24
|
+
constructor(page: Page);
|
|
25
|
+
clickCreateMediaItemButton(): Promise<void>;
|
|
26
|
+
enterMediaItemName(name: string): Promise<void>;
|
|
27
|
+
clickMediaTypeWithNameButton(mediaTypeName: string): Promise<void>;
|
|
28
|
+
searchForMediaItemByName(name: string): Promise<void>;
|
|
29
|
+
doesMediaCardsContainAmount(count: number): Promise<void>;
|
|
30
|
+
doesMediaCardContainText(name: string): Promise<void>;
|
|
31
|
+
clickTrashButton(): Promise<void>;
|
|
32
|
+
restoreMediaItem(name: string): Promise<void>;
|
|
33
|
+
deleteMediaItem(name: string): Promise<void>;
|
|
34
|
+
clickCreateMediaWithType(mediaTypeName: string): Promise<void>;
|
|
35
|
+
clickMediaTypeName(mediaTypeName: string): Promise<void>;
|
|
36
|
+
clickEmptyRecycleBinButton(): Promise<void>;
|
|
37
|
+
clickConfirmEmptyRecycleBinButton(): Promise<void>;
|
|
38
|
+
clickCreateModalButton(): Promise<void>;
|
|
39
|
+
clickMediaCaretButtonForName(name: string): Promise<void>;
|
|
40
|
+
doesMediaGridValuesMatch(expectedValues: string[]): Promise<void>;
|
|
41
|
+
doesMediaListHeaderValuesMatch(expectedValues: string[]): Promise<void>;
|
|
42
|
+
doesMediaListNameValuesMatch(expectedValues: string[]): Promise<void>;
|
|
43
|
+
isMediaGridViewVisible(isVisible?: boolean): Promise<void>;
|
|
44
|
+
isMediaListViewVisible(isVisible?: boolean): Promise<void>;
|
|
45
|
+
selectMediaByName(name: string): Promise<void>;
|
|
46
|
+
clickBulkTrashButton(): Promise<void>;
|
|
47
|
+
clickBulkMoveToButton(): Promise<void>;
|
|
48
|
+
clickModalTextByName(name: string): Promise<void>;
|
|
49
|
+
reloadMediaTree(): Promise<void>;
|
|
50
|
+
isMediaVisible(name: string, isVisible?: boolean): Promise<void>;
|
|
51
|
+
isChildMediaVisible(parentName: string, childName: string, isVisible?: boolean): Promise<void>;
|
|
52
|
+
clickCaretButtonForMediaName(name: string): Promise<void>;
|
|
53
|
+
goToMediaWithName(mediaName: string): Promise<void>;
|
|
54
|
+
}
|