@umbraco/playwright-testhelpers 2.0.0-beta.3 → 2.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/helpers/ApiHelpers.d.ts +20 -4
- package/dist/lib/helpers/ApiHelpers.js +28 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.d.ts +11 -0
- package/dist/lib/helpers/ConstantHelper.js +16 -0
- package/dist/lib/helpers/ConstantHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +14 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +114 -133
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +140 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +439 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
- package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +31 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +92 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +2 -0
- package/dist/lib/helpers/DocumentApiHelper.js +17 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +25 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +223 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +23 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +62 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
- package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
- package/dist/lib/helpers/IndexerApiHelper.js +19 -0
- package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
- package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
- package/dist/lib/helpers/LanguageApiHelper.js +46 -26
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
- package/dist/lib/helpers/LanguageUiHelper.js +64 -0
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
- package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
- package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
- package/dist/lib/helpers/LoginUiHelper.js +30 -0
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +7 -0
- package/dist/lib/helpers/MediaApiHelper.js +28 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +194 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +15 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +39 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +27 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
- package/dist/lib/helpers/PackageApiHelper.js +6 -3
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
- package/dist/lib/helpers/PackageUiHelper.js +134 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
- package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PartialViewUiHelper.js +57 -0
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +15 -10
- package/dist/lib/helpers/ScriptApiHelper.js +144 -97
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +16 -0
- package/dist/lib/helpers/ScriptUiHelper.js +51 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +15 -10
- package/dist/lib/helpers/StylesheetApiHelper.js +139 -103
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -0
- package/dist/lib/helpers/StylesheetUiHelper.js +68 -0
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplateApiHelper.d.ts +7 -5
- package/dist/lib/helpers/TemplateApiHelper.js +75 -51
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +21 -0
- package/dist/lib/helpers/TemplateUiHelper.js +66 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +163 -0
- package/dist/lib/helpers/UiBaseLocators.js +487 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +48 -6
- package/dist/lib/helpers/UiHelpers.js +75 -16
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +7 -3
- package/dist/lib/helpers/UserApiHelper.js +35 -13
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
- package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/UserUiHelper.d.ts +41 -0
- package/dist/lib/helpers/UserUiHelper.js +116 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
- package/dist/lib/helpers/index.d.ts +1 -0
- package/dist/lib/helpers/index.js +3 -1
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/umbraco.config.js +1 -1
- package/dist/umbraco.config.js.map +1 -1
- package/package.json +9 -7
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -6,131 +6,178 @@ class ScriptApiHelper {
|
|
|
6
6
|
constructor(api) {
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
|
-
async ensureNameNotExistsAtRoot(name) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');
|
|
11
|
-
const json = await response.json();
|
|
12
|
-
for (const sb of json.items) {
|
|
13
|
-
if (sb.name === name) {
|
|
14
|
-
if (sb.isFolder == false) {
|
|
15
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + sb.path);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
if (sb.hasChildren == true) {
|
|
19
|
-
return await this.recurseFolderChildren(sb.path);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + sb.path);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
async nameExistsAtRoot(name) {
|
|
30
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');
|
|
31
|
-
const json = await response.json();
|
|
32
|
-
for (const sb of json.items) {
|
|
33
|
-
if (sb.name === name) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
async exists(path) {
|
|
40
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);
|
|
41
|
-
return response.status() === 200;
|
|
42
|
-
}
|
|
43
9
|
async get(path) {
|
|
44
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
45
11
|
return await response.json();
|
|
46
12
|
}
|
|
47
|
-
async
|
|
48
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/
|
|
49
|
-
|
|
50
|
-
for (const sb of json.items) {
|
|
51
|
-
if (sb.name === name) {
|
|
52
|
-
if (sb.isFolder === false) {
|
|
53
|
-
const script = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + sb.path);
|
|
54
|
-
return await script.json();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const scriptFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + sb.path);
|
|
58
|
-
return await scriptFolder.json();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
13
|
+
async doesExist(path) {
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
15
|
+
return response.status() === 200;
|
|
63
16
|
}
|
|
64
|
-
async create(name, content, parentPath = "") {
|
|
17
|
+
async create(name, content, parentPath = "/") {
|
|
65
18
|
const scriptData = {
|
|
66
19
|
"name": name,
|
|
67
|
-
"
|
|
68
|
-
|
|
20
|
+
"parent": {
|
|
21
|
+
"path": parentPath
|
|
22
|
+
},
|
|
23
|
+
"content": content
|
|
69
24
|
};
|
|
70
25
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);
|
|
71
26
|
// Returns the path of the created Script
|
|
72
|
-
|
|
27
|
+
const path = response.headers().location.split("/v1/script/").pop();
|
|
28
|
+
return decodeURIComponent(path);
|
|
73
29
|
}
|
|
74
|
-
async
|
|
30
|
+
async updateName(path, newName) {
|
|
75
31
|
const scriptData = {
|
|
76
|
-
"name":
|
|
77
|
-
"content": script.content,
|
|
78
|
-
"existingPath": script.path
|
|
32
|
+
"name": newName
|
|
79
33
|
};
|
|
80
|
-
|
|
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;
|
|
81
41
|
}
|
|
82
|
-
async
|
|
83
|
-
|
|
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);
|
|
84
47
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);
|
|
88
|
-
return await response.json();
|
|
48
|
+
async delete(path) {
|
|
49
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));
|
|
89
50
|
}
|
|
90
|
-
async
|
|
91
|
-
const response = await this.api.get(this.api.baseUrl
|
|
92
|
-
|
|
51
|
+
async getChildren(path) {
|
|
52
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?parentPath=${encodeURIComponent(path)}&skip=0&take=10000`);
|
|
53
|
+
const items = await response.json();
|
|
54
|
+
return items.items;
|
|
93
55
|
}
|
|
94
|
-
async
|
|
95
|
-
|
|
56
|
+
async getItems(paths) {
|
|
57
|
+
let pathArray = 'path=' + paths[0];
|
|
58
|
+
let i;
|
|
59
|
+
for (i = 1; i < paths.length; ++i) {
|
|
60
|
+
pathArray += '&path=' + paths[i];
|
|
61
|
+
}
|
|
62
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/item?' + pathArray);
|
|
96
63
|
const json = await response.json();
|
|
97
64
|
if (json !== null) {
|
|
98
65
|
return json;
|
|
99
66
|
}
|
|
100
67
|
return null;
|
|
101
68
|
}
|
|
102
|
-
async
|
|
103
|
-
|
|
104
|
-
"name": name,
|
|
105
|
-
"parentPath": parentPath
|
|
106
|
-
};
|
|
107
|
-
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);
|
|
108
|
-
// Returns the id of the created scriptFolder
|
|
109
|
-
const json = await response.json();
|
|
110
|
-
return json.path;
|
|
69
|
+
async getAllAtRoot() {
|
|
70
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');
|
|
111
71
|
}
|
|
112
|
-
async
|
|
113
|
-
return await this.
|
|
114
|
-
}
|
|
115
|
-
async
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
for (const
|
|
119
|
-
if (
|
|
120
|
-
if (
|
|
121
|
-
|
|
122
|
-
await this.recurseFolderChildren(child.path);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + child.path);
|
|
126
|
-
}
|
|
72
|
+
async doesNameExist(name) {
|
|
73
|
+
return await this.getByName(name);
|
|
74
|
+
}
|
|
75
|
+
async getByName(name) {
|
|
76
|
+
const rootScripts = await this.getAllAtRoot();
|
|
77
|
+
const jsonScripts = await rootScripts.json();
|
|
78
|
+
for (const script of jsonScripts.items) {
|
|
79
|
+
if (script.name === name) {
|
|
80
|
+
if (script.isFolder) {
|
|
81
|
+
return this.getFolder(script.path);
|
|
127
82
|
}
|
|
128
83
|
else {
|
|
129
|
-
|
|
84
|
+
return this.get(script.path);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (script.isFolder && script.hasChildren) {
|
|
88
|
+
const result = await this.recurseChildren(name, script.path, false);
|
|
89
|
+
if (result) {
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
async recurseDeleteChildren(scriptFolder) {
|
|
97
|
+
if (!scriptFolder.hasChildren) {
|
|
98
|
+
return await this.deleteFolder(scriptFolder.path);
|
|
99
|
+
}
|
|
100
|
+
const items = await this.getChildren(scriptFolder.path);
|
|
101
|
+
for (const child of items) {
|
|
102
|
+
if (child.hasChildren) {
|
|
103
|
+
await this.recurseDeleteChildren(child);
|
|
104
|
+
}
|
|
105
|
+
else if (child.isFolder) {
|
|
106
|
+
await this.deleteFolder(child.path);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
await this.delete(child.path);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return await this.deleteFolder(scriptFolder.path);
|
|
113
|
+
}
|
|
114
|
+
async recurseChildren(name, path, toDelete) {
|
|
115
|
+
const items = await this.getChildren(path);
|
|
116
|
+
for (const child of items) {
|
|
117
|
+
if (child.name === name) {
|
|
118
|
+
if (!toDelete) {
|
|
119
|
+
if (child.isFolder) {
|
|
120
|
+
return await this.getFolder(child.path);
|
|
121
|
+
}
|
|
122
|
+
return await this.get(child.path);
|
|
123
|
+
}
|
|
124
|
+
if (child.isFolder) {
|
|
125
|
+
return await this.recurseDeleteChildren(child);
|
|
126
|
+
}
|
|
127
|
+
return await this.delete(child.path);
|
|
128
|
+
}
|
|
129
|
+
else if (child.hasChildren) {
|
|
130
|
+
return await this.recurseChildren(name, child.path, toDelete);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
async ensureNameNotExists(name) {
|
|
136
|
+
const rootScripts = await this.getAllAtRoot();
|
|
137
|
+
const jsonScripts = await rootScripts.json();
|
|
138
|
+
for (const script of jsonScripts.items) {
|
|
139
|
+
if (script.name === name) {
|
|
140
|
+
if (script.isFolder) {
|
|
141
|
+
return await this.recurseDeleteChildren(script);
|
|
130
142
|
}
|
|
143
|
+
return await this.delete(script.path);
|
|
144
|
+
}
|
|
145
|
+
else if (script.hasChildren) {
|
|
146
|
+
await this.recurseChildren(name, script.path, true);
|
|
131
147
|
}
|
|
132
148
|
}
|
|
133
|
-
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
// Folder
|
|
152
|
+
async getFolder(path) {
|
|
153
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));
|
|
154
|
+
return await response.json();
|
|
155
|
+
}
|
|
156
|
+
async doesFolderExist(path) {
|
|
157
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));
|
|
158
|
+
return response.status() === 200;
|
|
159
|
+
}
|
|
160
|
+
async createFolder(name, parentPath = "/") {
|
|
161
|
+
const scriptFolderData = {
|
|
162
|
+
"name": name,
|
|
163
|
+
"parent": {
|
|
164
|
+
"path": parentPath
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);
|
|
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;
|
|
174
|
+
}
|
|
175
|
+
async deleteFolder(path) {
|
|
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");
|
|
134
181
|
}
|
|
135
182
|
}
|
|
136
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 ensureNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + sb.path);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.path);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + sb.path);\n }\n }\n }\n }\n return null;\n }\n\n async nameExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async exists(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 get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n return await response.json();\n }\n\n async getByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder === false) {\n const script = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + sb.path);\n return await script.json();\n } else {\n const scriptFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + sb.path);\n return await scriptFolder.json();\n }\n }\n }\n return null;\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 // 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 folderExists(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 getFolderChildren(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 json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\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 id 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\n async recurseFolderChildren(path: string) {\n const parentScript = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/children?path=' + path + '&skip=0&take=10000');\n const itemsJson = await parentScript.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + child.path);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/?path=' + child.path);\n }\n }\n }\n 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,16 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class ScriptUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly insertScriptName;
|
|
5
|
+
private readonly newJavascriptFileBtn;
|
|
6
|
+
constructor(page: Page);
|
|
7
|
+
clickActionsMenuForScript(name: string): Promise<void>;
|
|
8
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
9
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
10
|
+
clickNewJavascriptFileButton(): Promise<void>;
|
|
11
|
+
goToScript(scriptName: string): Promise<void>;
|
|
12
|
+
enterScriptName(scriptContent: string): Promise<void>;
|
|
13
|
+
enterScriptContent(scriptContent: string): Promise<void>;
|
|
14
|
+
openScriptAtRoot(scriptName: string): Promise<void>;
|
|
15
|
+
deleteScript(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
insertScriptName;
|
|
9
|
+
newJavascriptFileBtn;
|
|
10
|
+
constructor(page) {
|
|
11
|
+
super(page);
|
|
12
|
+
this.insertScriptName = page.getByLabel('Script name');
|
|
13
|
+
this.newJavascriptFileBtn = page.getByLabel('New Javascript file');
|
|
14
|
+
}
|
|
15
|
+
async clickActionsMenuForScript(name) {
|
|
16
|
+
await this.clickActionsMenuForName(name);
|
|
17
|
+
}
|
|
18
|
+
async clickActionsMenuAtRoot() {
|
|
19
|
+
await this.clickActionsMenuForScript("Scripts");
|
|
20
|
+
}
|
|
21
|
+
async clickRootFolderCaretButton() {
|
|
22
|
+
await this.clickCaretButtonForName("Scripts");
|
|
23
|
+
}
|
|
24
|
+
async clickNewJavascriptFileButton() {
|
|
25
|
+
await this.newJavascriptFileBtn.click();
|
|
26
|
+
}
|
|
27
|
+
// Will only work for root scripts
|
|
28
|
+
async goToScript(scriptName) {
|
|
29
|
+
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
30
|
+
await this.clickActionsMenuAtRoot();
|
|
31
|
+
await this.page.getByLabel(scriptName).click({ force: true });
|
|
32
|
+
}
|
|
33
|
+
async enterScriptName(scriptContent) {
|
|
34
|
+
await this.insertScriptName.fill(scriptContent);
|
|
35
|
+
}
|
|
36
|
+
async enterScriptContent(scriptContent) {
|
|
37
|
+
await (0, test_1.expect)(this.textAreaInputArea).toBeVisible();
|
|
38
|
+
await this.textAreaInputArea.clear();
|
|
39
|
+
await this.textAreaInputArea.fill(scriptContent);
|
|
40
|
+
}
|
|
41
|
+
async openScriptAtRoot(scriptName) {
|
|
42
|
+
await this.clickRootFolderCaretButton();
|
|
43
|
+
await this.page.getByLabel(scriptName).click({ force: true });
|
|
44
|
+
}
|
|
45
|
+
async deleteScript() {
|
|
46
|
+
await this.clickDeleteThreeDotsButton();
|
|
47
|
+
await this.clickConfirmToDeleteButton();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ScriptUiHelper = ScriptUiHelper;
|
|
51
|
+
//# 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,gBAAgB,CAAU;IAC1B,oBAAoB,CAAU;IAE/C,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACrE,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,sBAAsB,EAAE,CAAC;QACpC,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,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,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,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC1C,CAAC;CACF;AApDD,wCAoDC","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 insertScriptName: Locator;\n private readonly newJavascriptFileBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.insertScriptName = page.getByLabel('Script name');\n this.newJavascriptFileBtn = page.getByLabel('New Javascript file');\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.clickActionsMenuAtRoot();\n await this.page.getByLabel(scriptName).click({force: true});\n }\n\n async enterScriptName(scriptContent: string) {\n await this.insertScriptName.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.clickRootFolderCaretButton();\n await this.page.getByLabel(scriptName).click({force: true});\n }\n\n async deleteScript() {\n await this.clickDeleteThreeDotsButton();\n await this.clickConfirmToDeleteButton();\n }\n}"]}
|
|
@@ -2,18 +2,23 @@ import { ApiHelpers } from "./ApiHelpers";
|
|
|
2
2
|
export declare class StylesheetApiHelper {
|
|
3
3
|
api: ApiHelpers;
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
|
-
ensureNameNotExistsAtRoot(name: string): Promise<void | import("playwright-core").APIResponse | null>;
|
|
6
|
-
nameExistsAtRoot(name: string): Promise<boolean>;
|
|
7
|
-
exists(path: string): Promise<boolean>;
|
|
8
5
|
get(path: string): Promise<any>;
|
|
9
|
-
|
|
10
|
-
create(name: string, content: string, parentPath?: string): Promise<string
|
|
11
|
-
|
|
6
|
+
doesExist(path: string): Promise<boolean>;
|
|
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>;
|
|
12
10
|
delete(path: string): Promise<import("playwright-core").APIResponse>;
|
|
11
|
+
getChildren(path: string): Promise<any>;
|
|
12
|
+
doesNameExist(name: string): Promise<any>;
|
|
13
|
+
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
14
|
+
getByName(name: string): Promise<any>;
|
|
15
|
+
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
16
|
+
private recurseChildren;
|
|
17
|
+
private recurseDeleteChildren;
|
|
13
18
|
getFolder(path: string): Promise<any>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
createFolder(name: string, parentPath?: string): Promise<any>;
|
|
19
|
+
doesFolderExist(path: string): Promise<boolean>;
|
|
20
|
+
createFolder(name: string, parentPath?: string): Promise<string | undefined>;
|
|
17
21
|
deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
|
|
18
|
-
|
|
22
|
+
doesRuleNameExist(path: string, name: string): Promise<boolean>;
|
|
23
|
+
createDefaultStylesheet(name: string): Promise<string>;
|
|
19
24
|
}
|