@umbraco/playwright-testhelpers 2.0.0-beta.8 → 2.0.0-beta.81
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 +41 -4
- package/dist/lib/helpers/ApiHelpers.js +168 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/ContentUiHelper.d.ts +141 -0
- package/dist/lib/helpers/ContentUiHelper.js +429 -0
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +93 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +765 -132
- 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 +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 +32 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +100 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +35 -0
- package/dist/lib/helpers/DocumentApiHelper.js +326 -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 +37 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +464 -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 +15 -0
- package/dist/lib/helpers/LoginApiHelper.js +85 -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 +60 -0
- package/dist/lib/helpers/MediaUiHelper.js +187 -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 +15 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +40 -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/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 +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 +8 -30
- package/dist/lib/helpers/PartialViewUiHelper.js +30 -86
- 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 +44 -26
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +18 -0
- package/dist/lib/helpers/ScriptUiHelper.js +59 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
- package/dist/lib/helpers/StylesheetApiHelper.js +47 -41
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -28
- package/dist/lib/helpers/StylesheetUiHelper.js +72 -75
- 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 +1 -0
- package/dist/lib/helpers/TemplateApiHelper.js +6 -0
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +25 -0
- package/dist/lib/helpers/TemplateUiHelper.js +93 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- 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 +228 -0
- package/dist/lib/helpers/UiBaseLocators.js +720 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +56 -9
- package/dist/lib/helpers/UiHelpers.js +87 -39
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +16 -9
- package/dist/lib/helpers/UserApiHelper.js +64 -19
- 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 +73 -0
- package/dist/lib/helpers/UserUiHelper.js +202 -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/testExtension.js +2 -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
|
@@ -7,40 +7,49 @@ class ScriptApiHelper {
|
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
9
|
async get(path) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script
|
|
11
|
-
|
|
12
|
-
if (json !== null) {
|
|
13
|
-
return json;
|
|
14
|
-
}
|
|
15
|
-
return null;
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
11
|
+
return await response.json();
|
|
16
12
|
}
|
|
17
13
|
async doesExist(path) {
|
|
18
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
19
15
|
return response.status() === 200;
|
|
20
16
|
}
|
|
21
|
-
async create(name, content, parentPath = "") {
|
|
17
|
+
async create(name, content, parentPath = "/") {
|
|
22
18
|
const scriptData = {
|
|
23
19
|
"name": name,
|
|
24
|
-
"
|
|
25
|
-
|
|
20
|
+
"parent": {
|
|
21
|
+
"path": parentPath
|
|
22
|
+
},
|
|
23
|
+
"content": content
|
|
26
24
|
};
|
|
27
25
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);
|
|
28
26
|
// Returns the path of the created Script
|
|
29
|
-
|
|
27
|
+
const path = response.headers().location.split("/v1/script/").pop();
|
|
28
|
+
return decodeURIComponent(path);
|
|
30
29
|
}
|
|
31
|
-
async
|
|
30
|
+
async updateName(path, newName) {
|
|
32
31
|
const scriptData = {
|
|
33
|
-
"name":
|
|
34
|
-
"content": script.content,
|
|
35
|
-
"existingPath": script.path
|
|
32
|
+
"name": newName
|
|
36
33
|
};
|
|
37
|
-
|
|
34
|
+
const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path) + '/rename', scriptData);
|
|
35
|
+
// Returns the path of the created Script
|
|
36
|
+
const newPath = response.headers().location.split("/v1/script/").pop();
|
|
37
|
+
if (newPath !== undefined) {
|
|
38
|
+
return decodeURIComponent(newPath);
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
async updateContent(path, newContent) {
|
|
43
|
+
const scriptData = {
|
|
44
|
+
"content": newContent
|
|
45
|
+
};
|
|
46
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path), scriptData);
|
|
38
47
|
}
|
|
39
48
|
async delete(path) {
|
|
40
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script
|
|
49
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
41
50
|
}
|
|
42
51
|
async getChildren(path) {
|
|
43
|
-
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?
|
|
52
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?parentPath=${encodeURIComponent(path)}&skip=0&take=10000`);
|
|
44
53
|
const items = await response.json();
|
|
45
54
|
return items.items;
|
|
46
55
|
}
|
|
@@ -141,25 +150,34 @@ class ScriptApiHelper {
|
|
|
141
150
|
}
|
|
142
151
|
// Folder
|
|
143
152
|
async getFolder(path) {
|
|
144
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder
|
|
153
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));
|
|
145
154
|
return await response.json();
|
|
146
155
|
}
|
|
147
156
|
async doesFolderExist(path) {
|
|
148
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder
|
|
157
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));
|
|
149
158
|
return response.status() === 200;
|
|
150
159
|
}
|
|
151
|
-
async createFolder(name, parentPath = "") {
|
|
160
|
+
async createFolder(name, parentPath = "/") {
|
|
152
161
|
const scriptFolderData = {
|
|
153
162
|
"name": name,
|
|
154
|
-
"
|
|
163
|
+
"parent": {
|
|
164
|
+
"path": parentPath
|
|
165
|
+
}
|
|
155
166
|
};
|
|
156
167
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);
|
|
157
|
-
// Returns the path of the created
|
|
158
|
-
const
|
|
159
|
-
|
|
168
|
+
// Returns the path of the created Stylesheet folder
|
|
169
|
+
const path = response.headers().location.split("/v1/script/folder/").pop();
|
|
170
|
+
if (path !== undefined) {
|
|
171
|
+
return decodeURIComponent(path);
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
160
174
|
}
|
|
161
175
|
async deleteFolder(path) {
|
|
162
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder
|
|
176
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));
|
|
177
|
+
}
|
|
178
|
+
async createDefaultScript(name) {
|
|
179
|
+
await this.ensureNameNotExists(name);
|
|
180
|
+
return await this.create(name + ".cshtml", "@inherits Umbraco.Web.Mvc.UmbracoViewPage");
|
|
163
181
|
}
|
|
164
182
|
}
|
|
165
183
|
exports.ScriptApiHelper = ScriptApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ScriptApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const scriptData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n // Returns the path of the created Script\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(script) {\n const scriptData = {\n \"name\": script.name,\n \"content\": script.content,\n \"existingPath\": script.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(paths: string[]) {\n let pathArray = 'path=' + paths[0];\n let i: number;\n\n for (i = 1; i < paths.length; ++i) {\n pathArray += '&path=' + paths[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/item?' + pathArray);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return this.getFolder(script.path);\n } else {\n return this.get(script.path);\n }\n } else if (script.isFolder && script.hasChildren) {\n const result = await this.recurseChildren(name, script.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(scriptFolder) {\n if (!scriptFolder.hasChildren) {\n return await this.deleteFolder(scriptFolder.path);\n }\n const items = await this.getChildren(scriptFolder.path);\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.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(scriptFolder.path);\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\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.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return await this.recurseDeleteChildren(script);\n }\n return await this.delete(script.path);\n } else if (script.hasChildren) {\n await this.recurseChildren(name, script.path, true);\n\n }\n }\n return null;\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const scriptFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);\n // Returns the path of the created scriptFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"ScriptApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ScriptApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"/\") {\n const scriptData = {\n \"name\": name,\n \"parent\": {\n \"path\": parentPath\n },\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n // Returns the path of the created Script\n const path = response.headers().location.split(\"/v1/script/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const scriptData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path) + '/rename', scriptData);\n // Returns the path of the created Script\n const newPath = response.headers().location.split(\"/v1/script/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const scriptData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path), scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?parentPath=${encodeURIComponent(path)}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(paths: string[]) {\n let pathArray = 'path=' + paths[0];\n let i: number;\n\n for (i = 1; i < paths.length; ++i) {\n pathArray += '&path=' + paths[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/item?' + pathArray);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return this.getFolder(script.path);\n } else {\n return this.get(script.path);\n }\n } else if (script.isFolder && script.hasChildren) {\n const result = await this.recurseChildren(name, script.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(scriptFolder) {\n if (!scriptFolder.hasChildren) {\n return await this.deleteFolder(scriptFolder.path);\n }\n const items = await this.getChildren(scriptFolder.path);\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.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(scriptFolder.path);\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\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.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return await this.recurseDeleteChildren(script);\n }\n return await this.delete(script.path);\n } else if (script.hasChildren) {\n await this.recurseChildren(name, script.path, true);\n\n }\n }\n return null;\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"/\") {\n const scriptFolderData =\n {\n \"name\": name,\n \"parent\":\n {\n \"path\": parentPath\n }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/script/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultScript(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name + \".cshtml\", \"@inherits Umbraco.Web.Mvc.UmbracoViewPage\");\n }\n}"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class ScriptUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly scriptNameTxt;
|
|
5
|
+
private readonly newJavascriptFileBtn;
|
|
6
|
+
private readonly scriptTree;
|
|
7
|
+
constructor(page: Page);
|
|
8
|
+
clickActionsMenuForScript(name: string): Promise<void>;
|
|
9
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
10
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
11
|
+
clickNewJavascriptFileButton(): Promise<void>;
|
|
12
|
+
goToScript(scriptName: string): Promise<void>;
|
|
13
|
+
enterScriptName(scriptContent: string): Promise<void>;
|
|
14
|
+
enterScriptContent(scriptContent: string): Promise<void>;
|
|
15
|
+
openScriptAtRoot(scriptName: string): Promise<void>;
|
|
16
|
+
reloadScriptTree(): Promise<void>;
|
|
17
|
+
isScriptRootTreeItemVisible(scriptName: string, isVisible?: boolean, toReload?: boolean): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScriptUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
const ConstantHelper_1 = require("./ConstantHelper");
|
|
7
|
+
class ScriptUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
|
+
scriptNameTxt;
|
|
9
|
+
newJavascriptFileBtn;
|
|
10
|
+
scriptTree;
|
|
11
|
+
constructor(page) {
|
|
12
|
+
super(page);
|
|
13
|
+
this.scriptNameTxt = page.getByLabel('Enter a name...');
|
|
14
|
+
this.newJavascriptFileBtn = page.getByLabel('New Javascript file');
|
|
15
|
+
this.scriptTree = page.locator('umb-tree[alias="Umb.Tree.Script"]');
|
|
16
|
+
}
|
|
17
|
+
async clickActionsMenuForScript(name) {
|
|
18
|
+
await this.clickActionsMenuForName(name);
|
|
19
|
+
}
|
|
20
|
+
async clickActionsMenuAtRoot() {
|
|
21
|
+
await this.clickActionsMenuForScript('Scripts');
|
|
22
|
+
}
|
|
23
|
+
async clickRootFolderCaretButton() {
|
|
24
|
+
await this.clickCaretButtonForName('Scripts');
|
|
25
|
+
}
|
|
26
|
+
async clickNewJavascriptFileButton() {
|
|
27
|
+
await this.newJavascriptFileBtn.click();
|
|
28
|
+
}
|
|
29
|
+
// Will only work for root scripts
|
|
30
|
+
async goToScript(scriptName) {
|
|
31
|
+
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
32
|
+
await this.reloadScriptTree();
|
|
33
|
+
await this.page.getByLabel(scriptName).click({ force: true });
|
|
34
|
+
}
|
|
35
|
+
async enterScriptName(scriptContent) {
|
|
36
|
+
await (0, test_1.expect)(this.scriptNameTxt).toBeVisible();
|
|
37
|
+
await this.scriptNameTxt.fill(scriptContent);
|
|
38
|
+
}
|
|
39
|
+
async enterScriptContent(scriptContent) {
|
|
40
|
+
await (0, test_1.expect)(this.textAreaInputArea).toBeVisible();
|
|
41
|
+
await this.textAreaInputArea.clear();
|
|
42
|
+
await this.textAreaInputArea.fill(scriptContent);
|
|
43
|
+
}
|
|
44
|
+
async openScriptAtRoot(scriptName) {
|
|
45
|
+
await this.reloadScriptTree();
|
|
46
|
+
await this.page.getByLabel(scriptName, { exact: true }).click({ force: true });
|
|
47
|
+
}
|
|
48
|
+
async reloadScriptTree() {
|
|
49
|
+
await this.reloadTree('Scripts');
|
|
50
|
+
}
|
|
51
|
+
async isScriptRootTreeItemVisible(scriptName, isVisible = true, toReload = true) {
|
|
52
|
+
if (toReload) {
|
|
53
|
+
await this.reloadScriptTree();
|
|
54
|
+
}
|
|
55
|
+
return (0, test_1.expect)(this.scriptTree.getByText(scriptName, { exact: true })).toBeVisible({ visible: isVisible });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ScriptUiHelper = ScriptUiHelper;
|
|
59
|
+
//# sourceMappingURL=ScriptUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,cAAe,SAAQ,+BAAc;IAC/B,aAAa,CAAU;IACvB,oBAAoB,CAAU;IAC9B,UAAU,CAAU;IAErC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAY;QAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC5C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QACvC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,YAAqB,IAAI,EAAE,WAAoB,IAAI;QACvG,IAAI,QAAQ,EAAE;YACZ,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC/B;QACD,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IACxG,CAAC;CACF;AA7DD,wCA6DC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class ScriptUiHelper extends UiBaseLocators{\n private readonly scriptNameTxt: Locator;\n private readonly newJavascriptFileBtn: Locator;\n private readonly scriptTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.scriptNameTxt = page.getByLabel('Enter a name...');\n this.newJavascriptFileBtn = page.getByLabel('New Javascript file');\n this.scriptTree = page.locator('umb-tree[alias=\"Umb.Tree.Script\"]');\n }\n\n async clickActionsMenuForScript(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForScript('Scripts');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Scripts');\n }\n\n async clickNewJavascriptFileButton() {\n await this.newJavascriptFileBtn.click();\n }\n \n // Will only work for root scripts\n async goToScript(scriptName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName).click({force: true});\n }\n\n async enterScriptName(scriptContent: string) {\n await expect(this.scriptNameTxt).toBeVisible();\n await this.scriptNameTxt.fill(scriptContent);\n }\n\n async enterScriptContent(scriptContent: string) {\n await expect(this.textAreaInputArea).toBeVisible();\n await this.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(scriptContent);\n }\n\n async openScriptAtRoot(scriptName: string) {\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click({force: true});\n }\n\n async reloadScriptTree() {\n await this.reloadTree('Scripts');\n }\n\n async isScriptRootTreeItemVisible(scriptName: string, isVisible: boolean = true, toReload: boolean = true){\n if (toReload) {\n await this.reloadScriptTree();\n }\n return expect(this.scriptTree.getByText(scriptName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -4,8 +4,9 @@ export declare class StylesheetApiHelper {
|
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
5
|
get(path: string): Promise<any>;
|
|
6
6
|
doesExist(path: string): Promise<boolean>;
|
|
7
|
-
create(name: string, content: string, parentPath?: string): Promise<string
|
|
8
|
-
|
|
7
|
+
create(name: string, content: string, parentPath?: string): Promise<string>;
|
|
8
|
+
updateName(path: string, newName: string): Promise<string | undefined>;
|
|
9
|
+
updateContent(path: string, newContent: string): Promise<import("playwright-core").APIResponse>;
|
|
9
10
|
delete(path: string): Promise<import("playwright-core").APIResponse>;
|
|
10
11
|
getChildren(path: string): Promise<any>;
|
|
11
12
|
doesNameExist(name: string): Promise<any>;
|
|
@@ -16,7 +17,8 @@ export declare class StylesheetApiHelper {
|
|
|
16
17
|
private recurseDeleteChildren;
|
|
17
18
|
getFolder(path: string): Promise<any>;
|
|
18
19
|
doesFolderExist(path: string): Promise<boolean>;
|
|
19
|
-
createFolder(name: string, parentPath?: string): Promise<
|
|
20
|
+
createFolder(name: string, parentPath?: string): Promise<string | undefined>;
|
|
20
21
|
deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
|
|
21
|
-
|
|
22
|
+
createDefaultStylesheet(name: string): Promise<string>;
|
|
23
|
+
encodeStylesheetPath(path: string): Promise<string>;
|
|
22
24
|
}
|
|
@@ -7,40 +7,47 @@ class StylesheetApiHelper {
|
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
9
|
async get(path) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet
|
|
11
|
-
|
|
12
|
-
if (json !== null) {
|
|
13
|
-
return json;
|
|
14
|
-
}
|
|
15
|
-
return null;
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
11
|
+
return await response.json();
|
|
16
12
|
}
|
|
17
13
|
async doesExist(path) {
|
|
18
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
19
15
|
return response.status() === 200;
|
|
20
16
|
}
|
|
21
|
-
async create(name, content, parentPath
|
|
17
|
+
async create(name, content, parentPath) {
|
|
22
18
|
const stylesheetData = {
|
|
23
19
|
"name": name,
|
|
24
|
-
"
|
|
25
|
-
"
|
|
20
|
+
"parent": parentPath ? { "path": parentPath } : null,
|
|
21
|
+
"content": content
|
|
26
22
|
};
|
|
27
23
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);
|
|
28
24
|
// Returns the path of the created stylesheet
|
|
29
|
-
|
|
25
|
+
const path = response.headers().location.split("/v1/stylesheet/").pop();
|
|
26
|
+
return decodeURIComponent(path);
|
|
30
27
|
}
|
|
31
|
-
async
|
|
28
|
+
async updateName(path, newName) {
|
|
32
29
|
const stylesheetData = {
|
|
33
|
-
"name":
|
|
34
|
-
"content": stylesheet.content,
|
|
35
|
-
"existingPath": stylesheet.path
|
|
30
|
+
"name": newName
|
|
36
31
|
};
|
|
37
|
-
|
|
32
|
+
const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);
|
|
33
|
+
// Returns the path of the created Stylesheet
|
|
34
|
+
const newPath = response.headers().location.split("/v1/stylesheet/").pop();
|
|
35
|
+
if (newPath !== undefined) {
|
|
36
|
+
return decodeURIComponent(newPath);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
async updateContent(path, newContent) {
|
|
41
|
+
const stylesheetData = {
|
|
42
|
+
"content": newContent
|
|
43
|
+
};
|
|
44
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);
|
|
38
45
|
}
|
|
39
46
|
async delete(path) {
|
|
40
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet
|
|
47
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
41
48
|
}
|
|
42
49
|
async getChildren(path) {
|
|
43
|
-
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?
|
|
50
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);
|
|
44
51
|
const items = await response.json();
|
|
45
52
|
return items.items;
|
|
46
53
|
}
|
|
@@ -128,39 +135,38 @@ class StylesheetApiHelper {
|
|
|
128
135
|
}
|
|
129
136
|
// Folder
|
|
130
137
|
async getFolder(path) {
|
|
131
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
132
|
-
|
|
133
|
-
if (json !== null) {
|
|
134
|
-
return json;
|
|
135
|
-
}
|
|
136
|
-
return null;
|
|
138
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
139
|
+
return await response.json();
|
|
137
140
|
}
|
|
138
141
|
async doesFolderExist(path) {
|
|
139
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
142
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
140
143
|
return response.status() === 200;
|
|
141
144
|
}
|
|
142
|
-
async createFolder(name, parentPath = "") {
|
|
145
|
+
async createFolder(name, parentPath = "/") {
|
|
143
146
|
const stylesheetFolderData = {
|
|
144
147
|
"name": name,
|
|
145
|
-
"parentPath": parentPath
|
|
148
|
+
"parent": parentPath ? { "path": parentPath } : null
|
|
146
149
|
};
|
|
147
150
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);
|
|
148
|
-
// Returns the
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
+
// Returns the path of the created Stylesheet folder
|
|
152
|
+
const path = response.headers().location.split("/v1/stylesheet/folder/").pop();
|
|
153
|
+
if (path !== undefined) {
|
|
154
|
+
return decodeURIComponent(path);
|
|
155
|
+
}
|
|
156
|
+
return undefined;
|
|
151
157
|
}
|
|
152
158
|
async deleteFolder(path) {
|
|
153
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
154
|
-
}
|
|
155
|
-
async
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return
|
|
159
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
160
|
+
}
|
|
161
|
+
async createDefaultStylesheet(name) {
|
|
162
|
+
await this.ensureNameNotExists(name);
|
|
163
|
+
return await this.create(name, "/*\n");
|
|
164
|
+
}
|
|
165
|
+
async encodeStylesheetPath(path) {
|
|
166
|
+
let encodedPath = encodeURIComponent(path);
|
|
167
|
+
// Replace the dot with the required encoding
|
|
168
|
+
encodedPath = encodedPath.replace(/\./g, '%25dot%25');
|
|
169
|
+
return encodedPath;
|
|
164
170
|
}
|
|
165
171
|
}
|
|
166
172
|
exports.StylesheetApiHelper = StylesheetApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const stylesheetData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(stylesheet) {\n const stylesheetData = {\n \"name\": stylesheet.name,\n \"content\": stylesheet.content,\n \"existingPath\": stylesheet.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\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.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.path);\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.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the id of the created stylesheetFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n }\n\n async doesRuleNameExist(path: string, name : string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/rich-text/rules?path=' + path);\n const rulesJson = await response.json();\n\n for (const rule of rulesJson.rules) {\n if (rule.name === name) {\n return true;\n }\n }\n return false; \n }\n}"]}
|
|
1
|
+
{"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath?: string) {\n const stylesheetData = {\n \"name\": name,\n \"parent\": parentPath ? {\"path\": parentPath} : null,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n const path = response.headers().location.split(\"/v1/stylesheet/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const stylesheetData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);\n // Returns the path of the created Stylesheet\n const newPath = response.headers().location.split(\"/v1/stylesheet/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const stylesheetData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\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.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.path);\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.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"/\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parent\": parentPath ? {\"path\": parentPath} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/stylesheet/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultStylesheet(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"/*\\n\");\n }\n\n async encodeStylesheetPath(path: string) {\n let encodedPath = encodeURIComponent(path);\n\n // Replace the dot with the required encoding\n encodedPath = encodedPath.replace(/\\./g, '%25dot%25');\n\n return encodedPath;\n }\n}"]}
|
|
@@ -1,34 +1,28 @@
|
|
|
1
1
|
import { Page } from "@playwright/test";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
private readonly
|
|
5
|
-
private readonly newRTEStylesheetFileBtn;
|
|
6
|
-
private readonly createFolderBtn;
|
|
7
|
-
private readonly saveBtn;
|
|
8
|
-
private readonly submitBtn;
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class StylesheetUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly newStylesheetBtn;
|
|
9
5
|
private readonly stylesheetNameTxt;
|
|
10
|
-
private readonly
|
|
11
|
-
private readonly
|
|
12
|
-
private readonly
|
|
13
|
-
private readonly
|
|
14
|
-
private readonly
|
|
15
|
-
private readonly
|
|
16
|
-
private readonly deleteBtn;
|
|
17
|
-
private readonly confirmToDeleteBtn;
|
|
18
|
-
private readonly removeFolderBtn;
|
|
19
|
-
private readonly confirmCreateFolderBtn;
|
|
6
|
+
private readonly addRTEBtn;
|
|
7
|
+
private readonly styleNameTxt;
|
|
8
|
+
private readonly styleSelectorTxt;
|
|
9
|
+
private readonly styleStylesTxt;
|
|
10
|
+
private readonly newRichTextEditorStylesheetBtn;
|
|
11
|
+
private readonly stylesheetTree;
|
|
20
12
|
constructor(page: Page);
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
clickActionsMenuForStylesheet(name: string): Promise<void>;
|
|
14
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
23
15
|
clickRootFolderCaretButton(): Promise<void>;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
clickNewRTEStylesheetFileButton(): Promise<void>;
|
|
27
|
-
clickSaveButton(): Promise<void>;
|
|
28
|
-
createNewFolder(folderName: string): Promise<void>;
|
|
16
|
+
clickNewStylesheetButton(): Promise<void>;
|
|
17
|
+
clickNewRichTextEditorStylesheetButton(): Promise<void>;
|
|
29
18
|
enterStylesheetName(stylesheetName: string): Promise<void>;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
19
|
+
enterStylesheetContent(stylesheetContent: string): Promise<void>;
|
|
20
|
+
addRTEStyle(styleName: string, styleSelector: string, styleStyles: string): Promise<void>;
|
|
21
|
+
openStylesheetByNameAtRoot(stylesheetName: string): Promise<void>;
|
|
22
|
+
editRTEStyle(styleName: string, newStyleName: string, newStyleSelector: string, newStyleStyles: string): Promise<void>;
|
|
23
|
+
fillRTEStyleForm(styleName: string, styleSelector: string, styleStyles: string): Promise<void>;
|
|
24
|
+
removeRTEStyle(styleName: string): Promise<void>;
|
|
25
|
+
reloadStylesheetTree(): Promise<void>;
|
|
26
|
+
isStylesheetRootTreeItemVisible(stylesheetName: string, isVisible?: boolean, toReload?: boolean): Promise<void>;
|
|
27
|
+
goToStylesheet(stylesheetName: string): Promise<void>;
|
|
34
28
|
}
|