@umbraco/playwright-testhelpers 2.0.0-beta.7 → 2.0.0-beta.71

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.
Files changed (183) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +38 -4
  2. package/dist/lib/helpers/ApiHelpers.js +133 -4
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  5. package/dist/lib/helpers/ContentUiHelper.d.ts +105 -0
  6. package/dist/lib/helpers/ContentUiHelper.js +302 -0
  7. package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
  8. package/dist/lib/helpers/DataTypeApiHelper.d.ts +76 -14
  9. package/dist/lib/helpers/DataTypeApiHelper.js +618 -132
  10. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  11. package/dist/lib/helpers/DataTypeUiHelper.d.ts +260 -0
  12. package/dist/lib/helpers/DataTypeUiHelper.js +827 -0
  13. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
  14. package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
  15. package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
  16. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
  17. package/dist/lib/helpers/DictionaryUiHelper.d.ts +32 -0
  18. package/dist/lib/helpers/DictionaryUiHelper.js +100 -0
  19. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
  20. package/dist/lib/helpers/DocumentApiHelper.d.ts +23 -0
  21. package/dist/lib/helpers/DocumentApiHelper.js +240 -0
  22. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
  23. package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +18 -0
  24. package/dist/lib/helpers/DocumentBlueprintApiHelper.js +126 -0
  25. package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -0
  26. package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +18 -0
  27. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +54 -0
  28. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -0
  29. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +37 -0
  30. package/dist/lib/helpers/DocumentTypeApiHelper.js +464 -0
  31. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
  32. package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +35 -0
  33. package/dist/lib/helpers/DocumentTypeUiHelper.js +98 -0
  34. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
  35. package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
  36. package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
  37. package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
  38. package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
  39. package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
  40. package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
  41. package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
  42. package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
  43. package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
  44. package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
  45. package/dist/lib/helpers/IndexerApiHelper.js +19 -0
  46. package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
  47. package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
  48. package/dist/lib/helpers/LanguageApiHelper.js +46 -26
  49. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
  50. package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
  51. package/dist/lib/helpers/LanguageUiHelper.js +68 -0
  52. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
  53. package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
  54. package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
  55. package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
  56. package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
  57. package/dist/lib/helpers/LoginUiHelper.js +30 -0
  58. package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
  59. package/dist/lib/helpers/MediaApiHelper.d.ts +22 -0
  60. package/dist/lib/helpers/MediaApiHelper.js +168 -0
  61. package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
  62. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
  63. package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
  64. package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
  65. package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
  66. package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
  67. package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
  68. package/dist/lib/helpers/MediaUiHelper.d.ts +36 -0
  69. package/dist/lib/helpers/MediaUiHelper.js +115 -0
  70. package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
  71. package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
  72. package/dist/lib/helpers/MemberApiHelper.js +88 -0
  73. package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
  74. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
  75. package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
  76. package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
  77. package/dist/lib/helpers/MemberGroupUiHelper.d.ts +15 -0
  78. package/dist/lib/helpers/MemberGroupUiHelper.js +40 -0
  79. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
  80. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
  81. package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
  82. package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
  83. package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
  84. package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
  85. package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
  86. package/dist/lib/helpers/MemberUiHelper.d.ts +40 -0
  87. package/dist/lib/helpers/MemberUiHelper.js +114 -0
  88. package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
  89. package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
  90. package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
  91. package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
  92. package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
  93. package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
  94. package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
  95. package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
  96. package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
  97. package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
  98. package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
  99. package/dist/lib/helpers/PackageApiHelper.js +6 -3
  100. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  101. package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
  102. package/dist/lib/helpers/PackageUiHelper.js +134 -0
  103. package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
  104. package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
  105. package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
  106. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  107. package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
  108. package/dist/lib/helpers/PartialViewUiHelper.js +59 -0
  109. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
  110. package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
  111. package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
  112. package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
  113. package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
  114. package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
  115. package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
  116. package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
  117. package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
  118. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
  119. package/dist/lib/helpers/RedirectManagementApiHelper.d.ts +10 -0
  120. package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
  121. package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
  122. package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
  123. package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
  124. package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -0
  125. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
  126. package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
  127. package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
  128. package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
  129. package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
  130. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
  131. package/dist/lib/helpers/ScriptApiHelper.d.ts +5 -3
  132. package/dist/lib/helpers/ScriptApiHelper.js +44 -26
  133. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  134. package/dist/lib/helpers/ScriptUiHelper.d.ts +18 -0
  135. package/dist/lib/helpers/ScriptUiHelper.js +59 -0
  136. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
  137. package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
  138. package/dist/lib/helpers/StylesheetApiHelper.js +47 -41
  139. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  140. package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -28
  141. package/dist/lib/helpers/StylesheetUiHelper.js +72 -75
  142. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  143. package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
  144. package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
  145. package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
  146. package/dist/lib/helpers/TemplateApiHelper.d.ts +1 -0
  147. package/dist/lib/helpers/TemplateApiHelper.js +6 -0
  148. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  149. package/dist/lib/helpers/TemplateUiHelper.d.ts +25 -0
  150. package/dist/lib/helpers/TemplateUiHelper.js +93 -0
  151. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
  152. package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
  153. package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
  154. package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
  155. package/dist/lib/helpers/UiBaseLocators.d.ts +220 -0
  156. package/dist/lib/helpers/UiBaseLocators.js +698 -0
  157. package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
  158. package/dist/lib/helpers/UiHelpers.d.ts +58 -9
  159. package/dist/lib/helpers/UiHelpers.js +90 -39
  160. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  161. package/dist/lib/helpers/UserApiHelper.d.ts +16 -9
  162. package/dist/lib/helpers/UserApiHelper.js +64 -19
  163. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  164. package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
  165. package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
  166. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  167. package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
  168. package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
  169. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
  170. package/dist/lib/helpers/UserUiHelper.d.ts +73 -0
  171. package/dist/lib/helpers/UserUiHelper.js +200 -0
  172. package/dist/lib/helpers/UserUiHelper.js.map +1 -0
  173. package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
  174. package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
  175. package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
  176. package/dist/lib/helpers/testExtension.js +5 -0
  177. package/dist/lib/helpers/testExtension.js.map +1 -1
  178. package/dist/tsconfig.tsbuildinfo +1 -1
  179. package/dist/umbraco.config.js +1 -1
  180. package/dist/umbraco.config.js.map +1 -1
  181. package/package.json +9 -11
  182. package/dist/lib/helpers/RelationType.d.ts +0 -15
  183. package/dist/lib/helpers/RelationType.js.map +0 -1
@@ -2,4 +2,27 @@ import { ApiHelpers } from "./ApiHelpers";
2
2
  export declare class DocumentApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
+ get(id: string): Promise<any>;
6
+ doesExist(id: string): Promise<boolean>;
7
+ create(document: any): Promise<string | undefined>;
8
+ delete(id: string): Promise<number | undefined>;
9
+ update(id: string, document: any): Promise<import("playwright-core").APIResponse | undefined>;
10
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
11
+ getChildren(id: string): Promise<any>;
12
+ doesNameExist(name: string): Promise<any>;
13
+ private recurseDeleteChildren;
14
+ private recurseChildren;
15
+ getByName(name: string): Promise<any>;
16
+ ensureNameNotExists(name: string): Promise<void>;
17
+ publish(id: string, publishSchedulesData: any): Promise<number | undefined>;
18
+ createDefaultDocument(documentName: string, documentTypeId: string): Promise<string | undefined>;
19
+ createDocumentWithTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string): Promise<string | undefined>;
20
+ createDefaultDocumentWithParent(documentName: string, documentTypeId: string, parentId: string): Promise<string | undefined>;
21
+ createDocumentWithTemplate(documentName: string, documentTypeId: string, templateId: string): Promise<string | undefined>;
22
+ createDocumentWithContentPicker(documentName: string, documentTypeId: string, contentPickerId: string): Promise<string | undefined>;
23
+ createDocumentWithOneMediaPicker(documentName: string, documentTypeId: string, mediaPickerId: string): Promise<string | undefined>;
24
+ createDocumentWithTwoMediaPicker(documentName: string, documentTypeId: string, firstMediaPickerId: string, secondMediaPickerId: string, alias?: string): Promise<string | undefined>;
25
+ createDocumentWithMemberPicker(documentName: string, documentTypeId: string, memberId: string): Promise<string | undefined>;
26
+ getDomains(id: string): Promise<any>;
27
+ updateDomains(id: string, domains: any): Promise<import("playwright-core").APIResponse>;
5
28
  }
@@ -1,11 +1,251 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DocumentApiHelper = void 0;
4
+ const AliasHelper_1 = require("./AliasHelper");
5
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
4
6
  class DocumentApiHelper {
5
7
  api;
6
8
  constructor(api) {
7
9
  this.api = api;
8
10
  }
11
+ async get(id) {
12
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);
13
+ return await response.json();
14
+ }
15
+ async doesExist(id) {
16
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);
17
+ return response.status() === 200;
18
+ }
19
+ async create(document) {
20
+ if (document == null) {
21
+ return;
22
+ }
23
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document);
24
+ return response.headers().location.split("v1/document/").pop();
25
+ }
26
+ async delete(id) {
27
+ if (id == null) {
28
+ return;
29
+ }
30
+ const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);
31
+ return response.status();
32
+ }
33
+ async update(id, document) {
34
+ if (document == null) {
35
+ return;
36
+ }
37
+ const variantsData = document.variants.map(variant => ({
38
+ culture: variant.culture,
39
+ segment: variant.segment,
40
+ name: variant.name
41
+ }));
42
+ const updateData = {
43
+ values: document.values,
44
+ variants: variantsData,
45
+ template: document.template
46
+ };
47
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id, updateData);
48
+ }
49
+ async getAllAtRoot() {
50
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document/root?skip=0&take=10000');
51
+ }
52
+ async getChildren(id) {
53
+ const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&skip=0&take=10000`);
54
+ const items = await response.json();
55
+ return items.items;
56
+ }
57
+ async doesNameExist(name) {
58
+ return await this.getByName(name);
59
+ }
60
+ async recurseDeleteChildren(id) {
61
+ const items = await this.getChildren(id);
62
+ for (const child of items) {
63
+ if (child.hasChildren) {
64
+ await this.recurseDeleteChildren(child.id);
65
+ }
66
+ else {
67
+ await this.delete(child.id);
68
+ }
69
+ }
70
+ return await this.delete(id);
71
+ }
72
+ async recurseChildren(name, id, toDelete) {
73
+ const items = await this.getChildren(id);
74
+ for (const child of items) {
75
+ if (child.variants[0].name === name) {
76
+ if (!toDelete) {
77
+ return await this.get(child.id);
78
+ }
79
+ if (child.hasChildren) {
80
+ return await this.recurseDeleteChildren(child.id);
81
+ }
82
+ else {
83
+ return await this.delete(child.id);
84
+ }
85
+ }
86
+ else if (child.hasChildren) {
87
+ await this.recurseChildren(name, child.id, toDelete);
88
+ }
89
+ }
90
+ return false;
91
+ }
92
+ async getByName(name) {
93
+ const rootDocuments = await this.getAllAtRoot();
94
+ const jsonDocuments = await rootDocuments.json();
95
+ for (const document of jsonDocuments.items) {
96
+ if (document.variants[0].name === name) {
97
+ return this.get(document.id);
98
+ }
99
+ else if (document.hasChildren) {
100
+ const result = await this.recurseChildren(name, document.id, false);
101
+ if (result) {
102
+ return result;
103
+ }
104
+ }
105
+ }
106
+ return false;
107
+ }
108
+ async ensureNameNotExists(name) {
109
+ const rootDocuments = await this.getAllAtRoot();
110
+ const jsonDocuments = await rootDocuments.json();
111
+ for (const document of jsonDocuments.items) {
112
+ if (document.variants[0].name === name) {
113
+ if (document.hasChildren) {
114
+ await this.recurseDeleteChildren(document.id);
115
+ }
116
+ await this.delete(document.id);
117
+ }
118
+ else {
119
+ if (document.hasChildren) {
120
+ await this.recurseChildren(name, document.id, true);
121
+ }
122
+ }
123
+ }
124
+ }
125
+ async publish(id, publishSchedulesData) {
126
+ if (id == null) {
127
+ return;
128
+ }
129
+ const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/publish', publishSchedulesData);
130
+ return response.status();
131
+ }
132
+ async createDefaultDocument(documentName, documentTypeId) {
133
+ await this.ensureNameNotExists(documentName);
134
+ const document = new json_models_builders_1.DocumentBuilder()
135
+ .withDocumentTypeId(documentTypeId)
136
+ .addVariant()
137
+ .withName(documentName)
138
+ .done()
139
+ .build();
140
+ return await this.create(document);
141
+ }
142
+ async createDocumentWithTextContent(documentName, documentTypeId, textContent, dataTypeName) {
143
+ await this.ensureNameNotExists(documentName);
144
+ const document = new json_models_builders_1.DocumentBuilder()
145
+ .withDocumentTypeId(documentTypeId)
146
+ .addVariant()
147
+ .withName(documentName)
148
+ .done()
149
+ .addValue()
150
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
151
+ .withValue(textContent)
152
+ .done()
153
+ .build();
154
+ return await this.create(document);
155
+ }
156
+ async createDefaultDocumentWithParent(documentName, documentTypeId, parentId) {
157
+ await this.ensureNameNotExists(documentName);
158
+ const document = new json_models_builders_1.DocumentBuilder()
159
+ .withDocumentTypeId(documentTypeId)
160
+ .withParentId(parentId)
161
+ .addVariant()
162
+ .withName(documentName)
163
+ .done()
164
+ .build();
165
+ return await this.create(document);
166
+ }
167
+ async createDocumentWithTemplate(documentName, documentTypeId, templateId) {
168
+ await this.ensureNameNotExists(documentName);
169
+ const document = new json_models_builders_1.DocumentBuilder()
170
+ .withDocumentTypeId(documentTypeId)
171
+ .addVariant()
172
+ .withName(documentName)
173
+ .done()
174
+ .withTemplateId(templateId)
175
+ .build();
176
+ return await this.create(document);
177
+ }
178
+ async createDocumentWithContentPicker(documentName, documentTypeId, contentPickerId) {
179
+ await this.ensureNameNotExists(documentName);
180
+ const document = new json_models_builders_1.DocumentBuilder()
181
+ .withDocumentTypeId(documentTypeId)
182
+ .addVariant()
183
+ .withName(documentName)
184
+ .done()
185
+ .addValue()
186
+ .withAlias('contentPicker')
187
+ .withValue(contentPickerId)
188
+ .done()
189
+ .build();
190
+ return await this.create(document);
191
+ }
192
+ async createDocumentWithOneMediaPicker(documentName, documentTypeId, mediaPickerId) {
193
+ await this.ensureNameNotExists(documentName);
194
+ const document = new json_models_builders_1.DocumentBuilder()
195
+ .withDocumentTypeId(documentTypeId)
196
+ .addVariant()
197
+ .withName(documentName)
198
+ .done()
199
+ .addValue()
200
+ .withAlias('mediaPicker')
201
+ .addMediaPickerValue()
202
+ .withMediaKey(mediaPickerId)
203
+ .done()
204
+ .done()
205
+ .build();
206
+ return await this.create(document);
207
+ }
208
+ async createDocumentWithTwoMediaPicker(documentName, documentTypeId, firstMediaPickerId, secondMediaPickerId, alias = 'multipleMediaPicker') {
209
+ await this.ensureNameNotExists(documentName);
210
+ const document = new json_models_builders_1.DocumentBuilder()
211
+ .withDocumentTypeId(documentTypeId)
212
+ .addVariant()
213
+ .withName(documentName)
214
+ .done()
215
+ .addValue()
216
+ .withAlias(alias)
217
+ .addMediaPickerValue()
218
+ .withMediaKey(firstMediaPickerId)
219
+ .done()
220
+ .addMediaPickerValue()
221
+ .withMediaKey(secondMediaPickerId)
222
+ .done()
223
+ .done()
224
+ .build();
225
+ return await this.create(document);
226
+ }
227
+ async createDocumentWithMemberPicker(documentName, documentTypeId, memberId) {
228
+ await this.ensureNameNotExists(documentName);
229
+ const document = new json_models_builders_1.DocumentBuilder()
230
+ .withDocumentTypeId(documentTypeId)
231
+ .addVariant()
232
+ .withName(documentName)
233
+ .done()
234
+ .addValue()
235
+ .withAlias('memberPicker')
236
+ .withValue(memberId)
237
+ .done()
238
+ .build();
239
+ return await this.create(document);
240
+ }
241
+ // Domains
242
+ async getDomains(id) {
243
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains');
244
+ return await response.json();
245
+ }
246
+ async updateDomains(id, domains) {
247
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains', domains);
248
+ }
9
249
  }
10
250
  exports.DocumentApiHelper = DocumentApiHelper;
11
251
  //# sourceMappingURL=DocumentApiHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CAEF;AAPD,8CAOC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class DocumentApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n \n}"]}
1
+ {"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAE1C,wEAA8D;AAE9D,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,CAAC;QACpG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAQ;QACnB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,CAAC;QACvG,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAQ;QAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO;SACR;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iEAAiE,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,8DAA8D,EAAE,oBAAoB,CAAC,CAAC;QAC7I,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,EAAU;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5C;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,EAAU,EAAE,QAAiB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;gBACnC,IAAI,CAAC,QAAQ,EAAE;oBACb,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACjC;gBACD,IAAI,KAAK,CAAC,WAAW,EAAE;oBACrB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACnD;qBAAM;oBACL,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACpC;aACF;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aACtD;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC9B;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtC,IAAI,QAAQ,CAAC,WAAW,EAAE;oBACxB,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBAC/C;gBACD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChC;iBAAM;gBACL,IAAI,QAAQ,CAAC,WAAW,EAAE;oBACxB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBACrD;aACF;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,oBAAoB;QAC5C,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,GAAG,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACvI,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,cAAsB;QACtE,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,YAAoB,EAAE,cAAsB,EAAE,WAAmB,EAAE,YAAoB;QACzH,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,SAAS,CAAC,yBAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aAC5C,SAAS,CAAC,WAAW,CAAC;aACtB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,YAAoB,EAAE,cAAsB,EAAE,QAAgB;QAClG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,YAAY,CAAC,QAAQ,CAAC;aACtB,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,YAAoB,EAAE,cAAsB,EAAE,UAAkB;QAC/F,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,cAAc,CAAC,UAAU,CAAC;aAC1B,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,YAAoB,EAAE,cAAsB,EAAE,eAAuB;QACzG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,SAAS,CAAC,eAAe,CAAC;aAC1B,SAAS,CAAC,eAAe,CAAC;aAC1B,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,YAAoB,EAAE,cAAsB,EAAE,aAAqB;QACxG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,SAAS,CAAC,aAAa,CAAC;aACxB,mBAAmB,EAAE;aACnB,YAAY,CAAC,aAAa,CAAC;aAC3B,IAAI,EAAE;aACR,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,YAAoB,EAAE,cAAsB,EAAE,kBAA0B,EAAE,mBAA2B,EAAE,QAAgB,qBAAqB;QACjL,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,SAAS,CAAC,KAAK,CAAC;aAChB,mBAAmB,EAAE;aACnB,YAAY,CAAC,kBAAkB,CAAC;aAChC,IAAI,EAAE;aACR,mBAAmB,EAAE;aACnB,YAAY,CAAC,mBAAmB,CAAC;aACjC,IAAI,EAAE;aACR,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,YAAoB,EAAE,cAAsB,EAAE,QAAgB;QACjG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,SAAS,CAAC,cAAc,CAAC;aACzB,SAAS,CAAC,QAAQ,CAAC;aACnB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,UAAU;IACV,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;QACjH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAO;QACrC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC;IAClH,CAAC;CACF;AA3RD,8CA2RC","sourcesContent":["import {AliasHelper} from \"./AliasHelper\";\nimport {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DocumentApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return await response.json();\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status() === 200;\n }\n\n async create(document) {\n if (document == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document);\n return response.headers().location.split(\"v1/document/\").pop();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id);\n return response.status();\n }\n\n async update(id: string, document) {\n if (document == null) {\n return;\n }\n const variantsData = document.variants.map(variant => ({\n culture: variant.culture,\n segment: variant.segment,\n name: variant.name\n }));\n \n const updateData = {\n values: document.values,\n variants: variantsData,\n template: document.template\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id, updateData);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document/root?skip=0&take=10000');\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document/children?parentId=${id}&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 private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.variants[0].name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n if (document.variants[0].name === name) {\n return this.get(document.id);\n } else if (document.hasChildren) {\n const result = await this.recurseChildren(name, document.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDocuments = await this.getAllAtRoot();\n const jsonDocuments = await rootDocuments.json();\n\n for (const document of jsonDocuments.items) {\n if (document.variants[0].name === name) {\n if (document.hasChildren) {\n await this.recurseDeleteChildren(document.id);\n }\n await this.delete(document.id);\n } else {\n if (document.hasChildren) {\n await this.recurseChildren(name, document.id, true);\n }\n }\n }\n }\n\n async publish(id: string, publishSchedulesData) {\n if (id == null) {\n return;\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/publish', publishSchedulesData);\n return response.status();\n }\n\n async createDefaultDocument(documentName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTextContent(documentName: string, documentTypeId: string, textContent: string, dataTypeName: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withValue(textContent)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDefaultDocumentWithParent(documentName: string, documentTypeId: string, parentId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTemplate(documentName: string, documentTypeId: string, templateId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .withTemplateId(templateId)\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithContentPicker(documentName: string, documentTypeId: string, contentPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('contentPicker')\n .withValue(contentPickerId)\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithOneMediaPicker(documentName: string, documentTypeId: string, mediaPickerId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('mediaPicker')\n .addMediaPickerValue()\n .withMediaKey(mediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithTwoMediaPicker(documentName: string, documentTypeId: string, firstMediaPickerId: string, secondMediaPickerId: string, alias: string = 'multipleMediaPicker') {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias(alias)\n .addMediaPickerValue()\n .withMediaKey(firstMediaPickerId)\n .done()\n .addMediaPickerValue()\n .withMediaKey(secondMediaPickerId)\n .done()\n .done()\n .build();\n\n return await this.create(document);\n }\n\n async createDocumentWithMemberPicker(documentName: string, documentTypeId: string, memberId: string) {\n await this.ensureNameNotExists(documentName);\n\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .addValue()\n .withAlias('memberPicker')\n .withValue(memberId)\n .done()\n .build();\n \n return await this.create(document);\n }\n\n // Domains\n async getDomains(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains');\n return await response.json();\n }\n\n async updateDomains(id: string, domains) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document/' + id + '/domains', domains);\n }\n} "]}
@@ -0,0 +1,18 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class DocumentBlueprintApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ get(id: string): Promise<any>;
6
+ doesExist(id: string): Promise<boolean>;
7
+ create(documentBlueprint: any): Promise<string | undefined>;
8
+ delete(id: string): Promise<number | undefined>;
9
+ update(id: string, documentBlueprint: any): Promise<import("playwright-core").APIResponse | undefined>;
10
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
11
+ getChildren(id: string): Promise<any>;
12
+ doesNameExist(name: string): Promise<any>;
13
+ private recurseDeleteChildren;
14
+ private recurseChildren;
15
+ getByName(name: string): Promise<any>;
16
+ ensureNameNotExists(name: string): Promise<void>;
17
+ createDefaultDocumentBlueprint(documentBlueprintName: string, documentTypeId: string): Promise<string | undefined>;
18
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocumentBlueprintApiHelper = void 0;
4
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
5
+ class DocumentBlueprintApiHelper {
6
+ api;
7
+ constructor(api) {
8
+ this.api = api;
9
+ }
10
+ async get(id) {
11
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);
12
+ return await response.json();
13
+ }
14
+ async doesExist(id) {
15
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);
16
+ return response.status() === 200;
17
+ }
18
+ async create(documentBlueprint) {
19
+ if (documentBlueprint == null) {
20
+ return;
21
+ }
22
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint', documentBlueprint);
23
+ return response.headers().location.split("v1/document-blueprint/").pop();
24
+ }
25
+ async delete(id) {
26
+ if (id == null) {
27
+ return;
28
+ }
29
+ const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);
30
+ return response.status();
31
+ }
32
+ async update(id, documentBlueprint) {
33
+ if (documentBlueprint == null) {
34
+ return;
35
+ }
36
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id, documentBlueprint);
37
+ }
38
+ async getAllAtRoot() {
39
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document-blueprint/root?skip=0&take=1000&foldersOnly=false');
40
+ }
41
+ async getChildren(id) {
42
+ const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document-blueprint/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);
43
+ const items = await response.json();
44
+ return items.items;
45
+ }
46
+ async doesNameExist(name) {
47
+ return await this.getByName(name);
48
+ }
49
+ async recurseDeleteChildren(id) {
50
+ const items = await this.getChildren(id);
51
+ for (const child of items) {
52
+ if (child.hasChildren) {
53
+ await this.recurseDeleteChildren(child.id);
54
+ }
55
+ else {
56
+ await this.delete(child.id);
57
+ }
58
+ }
59
+ return await this.delete(id);
60
+ }
61
+ async recurseChildren(name, id, toDelete) {
62
+ const items = await this.getChildren(id);
63
+ for (const child of items) {
64
+ if (child.name === name) {
65
+ if (!toDelete) {
66
+ return await this.get(child.id);
67
+ }
68
+ if (child.hasChildren) {
69
+ return await this.recurseDeleteChildren(child.id);
70
+ }
71
+ else {
72
+ return await this.delete(child.id);
73
+ }
74
+ }
75
+ else if (child.hasChildren) {
76
+ await this.recurseChildren(name, child.id, toDelete);
77
+ }
78
+ }
79
+ return false;
80
+ }
81
+ async getByName(name) {
82
+ const rootDocumentBlueprints = await this.getAllAtRoot();
83
+ const jsonDocumentBlueprints = await rootDocumentBlueprints.json();
84
+ for (const blueprint of jsonDocumentBlueprints.items) {
85
+ if (blueprint.name === name) {
86
+ return this.get(blueprint.id);
87
+ }
88
+ else if (blueprint.hasChildren) {
89
+ const result = await this.recurseChildren(name, blueprint.id, false);
90
+ if (result) {
91
+ return result;
92
+ }
93
+ }
94
+ }
95
+ return false;
96
+ }
97
+ async ensureNameNotExists(name) {
98
+ const rootDocumentBlueprints = await this.getAllAtRoot();
99
+ const jsonDocumentBlueprints = await rootDocumentBlueprints.json();
100
+ for (const blueprint of jsonDocumentBlueprints.items) {
101
+ if (blueprint.name === name) {
102
+ if (blueprint.hasChildren) {
103
+ await this.recurseDeleteChildren(blueprint.id);
104
+ }
105
+ await this.delete(blueprint.id);
106
+ }
107
+ else {
108
+ if (blueprint.hasChildren) {
109
+ await this.recurseChildren(name, blueprint.id, true);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ async createDefaultDocumentBlueprint(documentBlueprintName, documentTypeId) {
115
+ await this.ensureNameNotExists(documentBlueprintName);
116
+ const document = new json_models_builders_1.DocumentBlueprintsBuilder()
117
+ .withDocumentTypeId(documentTypeId)
118
+ .addVariant()
119
+ .withName(documentBlueprintName)
120
+ .done()
121
+ .build();
122
+ return await this.create(document);
123
+ }
124
+ }
125
+ exports.DocumentBlueprintApiHelper = DocumentBlueprintApiHelper;
126
+ //# sourceMappingURL=DocumentBlueprintApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentBlueprintApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentBlueprintApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentBlueprintsBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DocumentBlueprintApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);\n return await response.json();\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);\n return response.status() === 200;\n }\n\n async create(documentBlueprint) {\n if (documentBlueprint == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint', documentBlueprint);\n return response.headers().location.split(\"v1/document-blueprint/\").pop();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id);\n return response.status();\n }\n\n async update(id: string, documentBlueprint) {\n if (documentBlueprint == null) {\n return;\n }\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/document-blueprint/' + id, documentBlueprint);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/document-blueprint/root?skip=0&take=1000&foldersOnly=false');\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/document-blueprint/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);\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 private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootDocumentBlueprints = await this.getAllAtRoot();\n const jsonDocumentBlueprints = await rootDocumentBlueprints.json();\n\n for (const blueprint of jsonDocumentBlueprints.items) {\n if (blueprint.name === name) {\n return this.get(blueprint.id);\n } else if (blueprint.hasChildren) {\n const result = await this.recurseChildren(name, blueprint.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDocumentBlueprints = await this.getAllAtRoot();\n const jsonDocumentBlueprints = await rootDocumentBlueprints.json();\n\n for (const blueprint of jsonDocumentBlueprints.items) {\n if (blueprint.name === name) {\n if (blueprint.hasChildren) {\n await this.recurseDeleteChildren(blueprint.id);\n }\n await this.delete(blueprint.id);\n } else {\n if (blueprint.hasChildren) {\n await this.recurseChildren(name, blueprint.id, true);\n }\n }\n }\n }\n\n async createDefaultDocumentBlueprint(documentBlueprintName: string, documentTypeId: string) {\n await this.ensureNameNotExists(documentBlueprintName);\n const document = new DocumentBlueprintsBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentBlueprintName)\n .done()\n .build();\n return await this.create(document);\n }\n} "]}
@@ -0,0 +1,18 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class DocumentBlueprintUiHelper extends UiBaseLocators {
4
+ private readonly documentBlueprintTree;
5
+ private readonly createDocumentBlueprintBtn;
6
+ private readonly documentBlueprintNameTxt;
7
+ private readonly deleteMenu;
8
+ constructor(page: Page);
9
+ clickActionsMenuForDocumentBlueprints(name: string): Promise<void>;
10
+ clickActionsMenuAtRoot(): Promise<void>;
11
+ clickRootFolderCaretButton(): Promise<void>;
12
+ reloadDocumentBlueprintsTree(): Promise<void>;
13
+ goToDocumentBlueprint(blueprintName: string): Promise<void>;
14
+ isDocumentBlueprintRootTreeItemVisible(blueprintName: string, isVisible?: boolean, toReload?: boolean): Promise<void>;
15
+ clickCreateDocumentBlueprintButton(): Promise<void>;
16
+ enterDocumentBlueprintName(blueprintName: string): Promise<void>;
17
+ clickDeleteMenuButton(): Promise<void>;
18
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocumentBlueprintUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ const ConstantHelper_1 = require("./ConstantHelper");
7
+ class DocumentBlueprintUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
+ documentBlueprintTree;
9
+ createDocumentBlueprintBtn;
10
+ documentBlueprintNameTxt;
11
+ deleteMenu;
12
+ constructor(page) {
13
+ super(page);
14
+ this.documentBlueprintTree = page.locator('umb-tree[alias="Umb.Tree.DocumentBlueprint"]');
15
+ this.createDocumentBlueprintBtn = page.getByLabel('Create Document Blueprint');
16
+ this.documentBlueprintNameTxt = page.locator('#name-input #input');
17
+ this.deleteMenu = page.locator('umb-section-sidebar #menu-item').getByLabel('Delete');
18
+ }
19
+ async clickActionsMenuForDocumentBlueprints(name) {
20
+ await this.clickActionsMenuForName(name);
21
+ }
22
+ async clickActionsMenuAtRoot() {
23
+ await this.clickActionsMenuForDocumentBlueprints('Document Blueprints');
24
+ }
25
+ async clickRootFolderCaretButton() {
26
+ await this.clickCaretButtonForName('Document Blueprints');
27
+ }
28
+ async reloadDocumentBlueprintsTree() {
29
+ await this.reloadTree('Document Blueprints');
30
+ }
31
+ async goToDocumentBlueprint(blueprintName) {
32
+ await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
33
+ await this.reloadDocumentBlueprintsTree();
34
+ await this.page.getByLabel(blueprintName).click({ force: true });
35
+ }
36
+ async isDocumentBlueprintRootTreeItemVisible(blueprintName, isVisible = true, toReload = true) {
37
+ if (toReload) {
38
+ await this.reloadDocumentBlueprintsTree();
39
+ }
40
+ return (0, test_1.expect)(this.documentBlueprintTree.getByText(blueprintName, { exact: true })).toBeVisible({ visible: isVisible });
41
+ }
42
+ async clickCreateDocumentBlueprintButton() {
43
+ await this.createDocumentBlueprintBtn.click();
44
+ }
45
+ async enterDocumentBlueprintName(blueprintName) {
46
+ await (0, test_1.expect)(this.documentBlueprintNameTxt).toBeVisible();
47
+ await this.documentBlueprintNameTxt.fill(blueprintName);
48
+ }
49
+ async clickDeleteMenuButton() {
50
+ await this.deleteMenu.click();
51
+ }
52
+ }
53
+ exports.DocumentBlueprintUiHelper = DocumentBlueprintUiHelper;
54
+ //# sourceMappingURL=DocumentBlueprintUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentBlueprintUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentBlueprintUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,yBAA0B,SAAQ,+BAAc;IAC1C,qBAAqB,CAAU;IAC/B,0BAA0B,CAAU;IACpC,wBAAwB,CAAU;IAClC,UAAU,CAAU;IAErC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC1F,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,qCAAqC,CAAC,IAAY;QACtD,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,qCAAqC,CAAC,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,aAAqB;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,aAAqB,EAAE,YAAqB,IAAI,EAAE,WAAoB,IAAI;QACrH,IAAI,QAAQ,EAAE;YACZ,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;SAC3C;QACD,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,CAAC,kCAAkC;QACtC,MAAM,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,aAAqB;QACpD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF;AAvDD,8DAuDC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class DocumentBlueprintUiHelper extends UiBaseLocators{\n private readonly documentBlueprintTree: Locator;\n private readonly createDocumentBlueprintBtn: Locator;\n private readonly documentBlueprintNameTxt: Locator;\n private readonly deleteMenu: Locator;\n\n constructor(page: Page) {\n super(page);\n this.documentBlueprintTree = page.locator('umb-tree[alias=\"Umb.Tree.DocumentBlueprint\"]');\n this.createDocumentBlueprintBtn = page.getByLabel('Create Document Blueprint');\n this.documentBlueprintNameTxt = page.locator('#name-input #input');\n this.deleteMenu = page.locator('umb-section-sidebar #menu-item').getByLabel('Delete');\n }\n\n async clickActionsMenuForDocumentBlueprints(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentBlueprints('Document Blueprints');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Document Blueprints');\n }\n\n async reloadDocumentBlueprintsTree() {\n await this.reloadTree('Document Blueprints');\n }\n \n async goToDocumentBlueprint(blueprintName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadDocumentBlueprintsTree();\n await this.page.getByLabel(blueprintName).click({force: true});\n }\n\n async isDocumentBlueprintRootTreeItemVisible(blueprintName: string, isVisible: boolean = true, toReload: boolean = true){\n if (toReload) {\n await this.reloadDocumentBlueprintsTree();\n }\n return expect(this.documentBlueprintTree.getByText(blueprintName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async clickCreateDocumentBlueprintButton() {\n await this.createDocumentBlueprintBtn.click();\n }\n\n async enterDocumentBlueprintName(blueprintName: string) {\n await expect(this.documentBlueprintNameTxt).toBeVisible();\n await this.documentBlueprintNameTxt.fill(blueprintName);\n }\n\n async clickDeleteMenuButton() {\n await this.deleteMenu.click();\n }\n}"]}
@@ -0,0 +1,37 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class DocumentTypeApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ ensureNameNotExists(name: string): Promise<number | import("playwright-core").APIResponse | null | undefined>;
6
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
7
+ private recurseChildren;
8
+ private recurseDeleteChildren;
9
+ getChildren(id: string): Promise<any>;
10
+ create(documentType: any): Promise<string | undefined>;
11
+ get(id: string): Promise<any>;
12
+ getByName(name: string): Promise<any>;
13
+ doesNameExist(name: string): Promise<any>;
14
+ delete(id: string): Promise<number | undefined>;
15
+ getFolder(id: string): Promise<any>;
16
+ deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
17
+ createFolder(name: string, parentId?: string): Promise<string | undefined>;
18
+ renameFolder(folderId: string, folderName: string): Promise<import("playwright-core").APIResponse>;
19
+ createDefaultDocumentType(documentTypeName: string): Promise<string | undefined>;
20
+ createDocumentTypeWithPropertyEditor(documentTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string, varyByCulture?: boolean): Promise<string | undefined>;
21
+ createDocumentTypeWithPropertyEditorInTab(documentTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName?: string, varyByCulture?: boolean): Promise<string | undefined>;
22
+ createDocumentTypeWithTwoPropertyEditors(documentTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
23
+ createDefaultDocumentTypeWithAllowAsRoot(documentTypeName: string): Promise<string | undefined>;
24
+ createDocumentTypeWithAllowedChildNode(documentTypeName: string, allowedChildNodeId: string): Promise<string | undefined>;
25
+ createDocumentTypeWithAllowedTemplate(documentTypeName: string, allowedTemplateId: string, isAllowedAsRoot?: boolean): Promise<string | undefined>;
26
+ createDocumentTypeWithTwoAllowedTemplates(documentTypeName: string, allowedTemplateOneId: string, allowedTemplateTwoId: string, isAllowedAsRoot?: boolean): Promise<string | undefined>;
27
+ createDocumentTypeWithTwoGroups(documentTypeName: string, dataType: string, dataTypeId: string, groupNameOne: string, groupNameTwo: string): Promise<string | undefined>;
28
+ createDocumentTypeWithAComposition(documentTypeName: string, compositionId: string): Promise<string | undefined>;
29
+ createEmptyElementType(elementTypeName: string): Promise<string | undefined>;
30
+ createDocumentTypeWithTwoTabs(documentTypeName: string, dataType: string, dataTypeId: string, tabNameOne: string, tabNameTwo: string): Promise<string | undefined>;
31
+ createDefaultElementType(elementName: string, groupName: string | undefined, dataTypeName: string | undefined, dataTypeId: string): Promise<string | undefined>;
32
+ doesGroupContainCorrectPropertyEditor(documentTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string): Promise<any>;
33
+ doesTabContainCorrectPropertyEditorInGroup(documentTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string): Promise<any>;
34
+ doesDocumentTypeGroupNameContainCorrectSortOrder(documentTypeName: string, groupName: string, sortOrder: number): Promise<boolean>;
35
+ doesDocumentTypeTabNameContainCorrectSortOrder(documentTypeName: string, tabName: string, sortOrder: number): Promise<boolean>;
36
+ getContainerIdWithName(documentTypeName: string, containerName: string): Promise<any>;
37
+ }