@umbraco/playwright-testhelpers 2.0.0-beta.8 → 2.0.0-beta.80

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 (186) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +41 -4
  2. package/dist/lib/helpers/ApiHelpers.js +168 -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 +130 -0
  6. package/dist/lib/helpers/ContentUiHelper.js +393 -0
  7. package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
  8. package/dist/lib/helpers/DataTypeApiHelper.d.ts +86 -14
  9. package/dist/lib/helpers/DataTypeApiHelper.js +714 -132
  10. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  11. package/dist/lib/helpers/DataTypeUiHelper.d.ts +266 -0
  12. package/dist/lib/helpers/DataTypeUiHelper.js +850 -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 +35 -0
  21. package/dist/lib/helpers/DocumentApiHelper.js +326 -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/LoginApiHelper.d.ts +15 -0
  57. package/dist/lib/helpers/LoginApiHelper.js +85 -0
  58. package/dist/lib/helpers/LoginApiHelper.js.map +1 -0
  59. package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
  60. package/dist/lib/helpers/LoginUiHelper.js +30 -0
  61. package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
  62. package/dist/lib/helpers/MediaApiHelper.d.ts +30 -0
  63. package/dist/lib/helpers/MediaApiHelper.js +227 -0
  64. package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
  65. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
  66. package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
  67. package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
  68. package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
  69. package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
  70. package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
  71. package/dist/lib/helpers/MediaUiHelper.d.ts +38 -0
  72. package/dist/lib/helpers/MediaUiHelper.js +123 -0
  73. package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
  74. package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
  75. package/dist/lib/helpers/MemberApiHelper.js +88 -0
  76. package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
  77. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
  78. package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
  79. package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
  80. package/dist/lib/helpers/MemberGroupUiHelper.d.ts +15 -0
  81. package/dist/lib/helpers/MemberGroupUiHelper.js +40 -0
  82. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
  83. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
  84. package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
  85. package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
  86. package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
  87. package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
  88. package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
  89. package/dist/lib/helpers/MemberUiHelper.d.ts +42 -0
  90. package/dist/lib/helpers/MemberUiHelper.js +120 -0
  91. package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
  92. package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
  93. package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
  94. package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
  95. package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
  96. package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
  97. package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
  98. package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
  99. package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
  100. package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
  101. package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
  102. package/dist/lib/helpers/PackageApiHelper.js +6 -3
  103. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  104. package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
  105. package/dist/lib/helpers/PackageUiHelper.js +134 -0
  106. package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
  107. package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -4
  108. package/dist/lib/helpers/PartialViewApiHelper.js +36 -30
  109. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  110. package/dist/lib/helpers/PartialViewUiHelper.d.ts +8 -30
  111. package/dist/lib/helpers/PartialViewUiHelper.js +30 -86
  112. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  113. package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
  114. package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
  115. package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
  116. package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
  117. package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
  118. package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
  119. package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
  120. package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
  121. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
  122. package/dist/lib/helpers/RedirectManagementApiHelper.d.ts +10 -0
  123. package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
  124. package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
  125. package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
  126. package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
  127. package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -0
  128. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
  129. package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
  130. package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
  131. package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
  132. package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
  133. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
  134. package/dist/lib/helpers/ScriptApiHelper.d.ts +5 -3
  135. package/dist/lib/helpers/ScriptApiHelper.js +44 -26
  136. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  137. package/dist/lib/helpers/ScriptUiHelper.d.ts +18 -0
  138. package/dist/lib/helpers/ScriptUiHelper.js +59 -0
  139. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
  140. package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
  141. package/dist/lib/helpers/StylesheetApiHelper.js +47 -41
  142. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  143. package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -28
  144. package/dist/lib/helpers/StylesheetUiHelper.js +72 -75
  145. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  146. package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
  147. package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
  148. package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
  149. package/dist/lib/helpers/TemplateApiHelper.d.ts +1 -0
  150. package/dist/lib/helpers/TemplateApiHelper.js +6 -0
  151. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  152. package/dist/lib/helpers/TemplateUiHelper.d.ts +25 -0
  153. package/dist/lib/helpers/TemplateUiHelper.js +93 -0
  154. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
  155. package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +17 -1
  156. package/dist/lib/helpers/TemporaryFileApiHelper.js +23 -10
  157. package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
  158. package/dist/lib/helpers/UiBaseLocators.d.ts +228 -0
  159. package/dist/lib/helpers/UiBaseLocators.js +720 -0
  160. package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
  161. package/dist/lib/helpers/UiHelpers.d.ts +56 -9
  162. package/dist/lib/helpers/UiHelpers.js +87 -39
  163. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  164. package/dist/lib/helpers/UserApiHelper.d.ts +16 -9
  165. package/dist/lib/helpers/UserApiHelper.js +64 -19
  166. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  167. package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
  168. package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
  169. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  170. package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
  171. package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
  172. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
  173. package/dist/lib/helpers/UserUiHelper.d.ts +73 -0
  174. package/dist/lib/helpers/UserUiHelper.js +202 -0
  175. package/dist/lib/helpers/UserUiHelper.js.map +1 -0
  176. package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
  177. package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
  178. package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
  179. package/dist/lib/helpers/testExtension.js +2 -0
  180. package/dist/lib/helpers/testExtension.js.map +1 -1
  181. package/dist/tsconfig.tsbuildinfo +1 -1
  182. package/dist/umbraco.config.js +1 -1
  183. package/dist/umbraco.config.js.map +1 -1
  184. package/package.json +9 -11
  185. package/dist/lib/helpers/RelationType.d.ts +0 -15
  186. package/dist/lib/helpers/RelationType.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class TemplateApiHelper {\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/template/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n return response.status() === 200;\n }\n\n async create(name: string, alias: string, content: string) {\n const templateData = {\n \"name\": name,\n \"alias\": alias,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/template', templateData);\n // Returns the id of the created template\n return response.headers().location.split(\"/\").pop();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n }\n\n async update(id: string, template: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id, template);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/template/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/template/item?' + idArray);\n const json = await response.json();\n\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/template/root?skip=0&take=10000');\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.isContainer || 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.isContainer || child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.isContainer || child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n return this.get(template.id);\n } else if (template.isContainer || template.hasChildren) {\n const result = await this.recurseChildren(name, template.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n if (template.isContainer || template.hasChildren) {\n await this.recurseDeleteChildren(template.id);\n }\n await this.delete(template.id);\n } else {\n if (template.isContainer || template.hasChildren) {\n await this.recurseChildren(name, template.id, true);\n }\n }\n }\n }\n}"]}
1
+ {"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {AliasHelper} from \"./AliasHelper\";\n\nexport class TemplateApiHelper {\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/template/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n return response.status() === 200;\n }\n\n async create(name: string, alias: string, content: string) {\n const templateData = {\n \"name\": name,\n \"alias\": alias,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/template', templateData);\n // Returns the id of the created template\n return response.headers().location.split(\"/\").pop();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n }\n\n async update(id: string, template: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id, template);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/template/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/template/item?' + idArray);\n const json = await response.json();\n\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/template/root?skip=0&take=10000');\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.isContainer || 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.isContainer || child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.isContainer || child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n return this.get(template.id);\n } else if (template.isContainer || template.hasChildren) {\n const result = await this.recurseChildren(name, template.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n if (template.isContainer || template.hasChildren) {\n await this.recurseDeleteChildren(template.id);\n }\n await this.delete(template.id);\n } else {\n if (template.isContainer || template.hasChildren) {\n await this.recurseChildren(name, template.id, true);\n }\n }\n }\n }\n\n async createDefaultTemplate(name: string) {\n await this.ensureNameNotExists(name);\n const alias = AliasHelper.toAlias(name);\n return await this.create(name, alias, '');\n }\n}"]}
@@ -0,0 +1,25 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class TemplateUiHelper extends UiBaseLocators {
4
+ private readonly templateNameTxt;
5
+ private readonly changeMasterTemplateBtn;
6
+ private readonly sectionsBtn;
7
+ private readonly removeMasterTemplateBtn;
8
+ private readonly sectionNameTxt;
9
+ private readonly templateTree;
10
+ constructor(page: Page);
11
+ clickActionsMenuForTemplate(name: string): Promise<void>;
12
+ clickActionsMenuAtRoot(): Promise<void>;
13
+ clickRootFolderCaretButton(): Promise<void>;
14
+ goToTemplate(templateName: string, childTemplateName?: string): Promise<void>;
15
+ clickSectionsButton(): Promise<void>;
16
+ clickChangeMasterTemplateButton(): Promise<void>;
17
+ enterTemplateName(templateName: string): Promise<void>;
18
+ enterTemplateContent(templateContent: string): Promise<void>;
19
+ isMasterTemplateNameVisible(templateName: string, isVisible?: boolean): Promise<void>;
20
+ clickRemoveMasterTemplateButton(): Promise<void>;
21
+ insertSection(sectionType: string, sectionName?: string): Promise<void>;
22
+ isTemplateTreeItemVisible(templateName: string, isVisible?: boolean): Promise<void>;
23
+ reloadTemplateTree(): Promise<void>;
24
+ isTemplateRootTreeItemVisible(templateName: string, isVisible?: boolean, toReload?: boolean): Promise<void>;
25
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ const ConstantHelper_1 = require("./ConstantHelper");
7
+ class TemplateUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
+ templateNameTxt;
9
+ changeMasterTemplateBtn;
10
+ sectionsBtn;
11
+ removeMasterTemplateBtn;
12
+ sectionNameTxt;
13
+ templateTree;
14
+ constructor(page) {
15
+ super(page);
16
+ this.templateNameTxt = page.getByLabel('Enter a name...', { exact: true });
17
+ this.changeMasterTemplateBtn = page.locator('#master-template-button');
18
+ this.sectionsBtn = page.locator('#sections-button', { hasText: 'Sections' });
19
+ this.removeMasterTemplateBtn = page.locator('[name="icon-delete"] svg');
20
+ this.sectionNameTxt = page.getByLabel('Section Name');
21
+ this.templateTree = page.locator('umb-tree[alias="Umb.Tree.Template"]');
22
+ }
23
+ async clickActionsMenuForTemplate(name) {
24
+ await this.clickActionsMenuForName(name);
25
+ }
26
+ async clickActionsMenuAtRoot() {
27
+ await this.clickActionsMenuForTemplate('Templates');
28
+ }
29
+ async clickRootFolderCaretButton() {
30
+ await this.clickCaretButtonForName('Templates');
31
+ }
32
+ async goToTemplate(templateName, childTemplateName = '') {
33
+ await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
34
+ await this.reloadTemplateTree();
35
+ if (childTemplateName === '') {
36
+ await this.page.getByLabel(templateName).click();
37
+ await (0, test_1.expect)(this.templateNameTxt).toHaveValue(templateName);
38
+ }
39
+ else {
40
+ await this.clickCaretButtonForName(templateName);
41
+ await this.page.getByLabel(childTemplateName).click();
42
+ await (0, test_1.expect)(this.templateNameTxt).toHaveValue(childTemplateName);
43
+ }
44
+ }
45
+ async clickSectionsButton() {
46
+ await (0, test_1.expect)(this.sectionsBtn).toBeVisible();
47
+ await this.sectionsBtn.click();
48
+ }
49
+ async clickChangeMasterTemplateButton() {
50
+ await this.changeMasterTemplateBtn.click();
51
+ }
52
+ async enterTemplateName(templateName) {
53
+ await (0, test_1.expect)(this.templateNameTxt).toBeVisible();
54
+ await this.templateNameTxt.clear();
55
+ await this.templateNameTxt.fill(templateName);
56
+ }
57
+ async enterTemplateContent(templateContent) {
58
+ // We need this wait, to be sure that the template content is loaded.
59
+ await this.page.waitForTimeout(200);
60
+ await this.textAreaInputArea.clear();
61
+ await this.textAreaInputArea.fill(templateContent);
62
+ }
63
+ async isMasterTemplateNameVisible(templateName, isVisible = true) {
64
+ await (0, test_1.expect)(this.page.getByLabel('Master template: ' + templateName)).toBeVisible({ visible: isVisible });
65
+ }
66
+ async clickRemoveMasterTemplateButton() {
67
+ await this.removeMasterTemplateBtn.click();
68
+ }
69
+ async insertSection(sectionType, sectionName = '') {
70
+ await this.clickSectionsButton();
71
+ await (0, test_1.expect)(this.submitBtn).toBeVisible();
72
+ await this.page.locator('[label="' + sectionType + '"]').click();
73
+ if (sectionName !== '') {
74
+ await (0, test_1.expect)(this.sectionNameTxt).toBeVisible();
75
+ await this.sectionNameTxt.fill(sectionName);
76
+ }
77
+ await this.clickSubmitButton();
78
+ }
79
+ async isTemplateTreeItemVisible(templateName, isVisible = true) {
80
+ return (0, test_1.expect)(this.templateTree.getByText(templateName, { exact: true })).toBeVisible({ visible: isVisible });
81
+ }
82
+ async reloadTemplateTree() {
83
+ await this.reloadTree('Templates');
84
+ }
85
+ async isTemplateRootTreeItemVisible(templateName, isVisible = true, toReload = true) {
86
+ if (toReload) {
87
+ await this.reloadTemplateTree();
88
+ }
89
+ return (0, test_1.expect)(this.templateTree.getByText(templateName, { exact: true })).toBeVisible({ visible: isVisible });
90
+ }
91
+ }
92
+ exports.TemplateUiHelper = TemplateUiHelper;
93
+ //# sourceMappingURL=TemplateUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,+BAAc;IACjC,eAAe,CAAU;IACzB,uBAAuB,CAAU;IACjC,WAAW,CAAU;IACrB,uBAAuB,CAAU;IACjC,cAAc,CAAU;IACxB,YAAY,CAAU;IAEvC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QACzE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,IAAY;QAC5C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,oBAA4B,EAAE;QACrE,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,IAAI,iBAAiB,KAAK,EAAE,EAAE;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;SAC9D;aAAM;YACL,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACnE;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAC1C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAuB;QAChD,qEAAqE;QACrE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,YAAoB,EAAE,YAAqB,IAAI;QAC/E,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,cAAsB,EAAE;QAC/D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,WAAW,KAAK,EAAE,EAAE;YACtB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,YAAoB,EAAE,YAAqB,IAAI;QAC7E,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,YAAoB,EAAE,YAAqB,IAAI,EAAE,WAAoB,IAAI;QAC3G,IAAI,QAAQ,EAAE;YACZ,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACjC;QACD,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC5G,CAAC;CACF;AAlGD,4CAkGC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class TemplateUiHelper extends UiBaseLocators {\n private readonly templateNameTxt: Locator;\n private readonly changeMasterTemplateBtn: Locator;\n private readonly sectionsBtn: Locator;\n private readonly removeMasterTemplateBtn: Locator;\n private readonly sectionNameTxt: Locator;\n private readonly templateTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.templateNameTxt = page.getByLabel('Enter a name...', {exact: true});\n this.changeMasterTemplateBtn = page.locator('#master-template-button');\n this.sectionsBtn = page.locator('#sections-button', {hasText: 'Sections'});\n this.removeMasterTemplateBtn = page.locator('[name=\"icon-delete\"] svg');\n this.sectionNameTxt = page.getByLabel('Section Name');\n this.templateTree = page.locator('umb-tree[alias=\"Umb.Tree.Template\"]');\n }\n\n async clickActionsMenuForTemplate(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForTemplate('Templates');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Templates');\n }\n\n async goToTemplate(templateName: string, childTemplateName: string = '') {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadTemplateTree();\n if (childTemplateName === '') {\n await this.page.getByLabel(templateName).click();\n await expect(this.templateNameTxt).toHaveValue(templateName);\n } else {\n await this.clickCaretButtonForName(templateName);\n await this.page.getByLabel(childTemplateName).click();\n await expect(this.templateNameTxt).toHaveValue(childTemplateName);\n }\n }\n\n async clickSectionsButton() {\n await expect(this.sectionsBtn).toBeVisible();\n await this.sectionsBtn.click();\n }\n\n async clickChangeMasterTemplateButton() {\n await this.changeMasterTemplateBtn.click();\n }\n\n async enterTemplateName(templateName: string) {\n await expect(this.templateNameTxt).toBeVisible();\n await this.templateNameTxt.clear();\n await this.templateNameTxt.fill(templateName);\n }\n\n async enterTemplateContent(templateContent: string) {\n // We need this wait, to be sure that the template content is loaded.\n await this.page.waitForTimeout(200);\n await this.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(templateContent);\n }\n\n async isMasterTemplateNameVisible(templateName: string, isVisible: boolean = true) {\n await expect(this.page.getByLabel('Master template: ' + templateName)).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveMasterTemplateButton() {\n await this.removeMasterTemplateBtn.click();\n }\n\n async insertSection(sectionType: string, sectionName: string = '') {\n await this.clickSectionsButton();\n await expect(this.submitBtn).toBeVisible();\n await this.page.locator('[label=\"' + sectionType + '\"]').click();\n if (sectionName !== '') {\n await expect(this.sectionNameTxt).toBeVisible();\n await this.sectionNameTxt.fill(sectionName);\n }\n await this.clickSubmitButton();\n }\n\n async isTemplateTreeItemVisible(templateName: string, isVisible: boolean = true) {\n return expect(this.templateTree.getByText(templateName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async reloadTemplateTree() {\n await this.reloadTree('Templates');\n }\n\n async isTemplateRootTreeItemVisible(templateName: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadTemplateTree();\n }\n return expect(this.templateTree.getByText(templateName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
@@ -2,8 +2,24 @@ import { ApiHelpers } from "./ApiHelpers";
2
2
  export declare class TemporaryFileApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
- exists(id: string): Promise<boolean>;
5
+ doesExist(id: string): Promise<boolean>;
6
6
  create(id: string, name: string, mimeType: any, filePath: any): Promise<import("playwright-core").APIResponse>;
7
7
  get(id: string): Promise<any>;
8
8
  delete(id: string): Promise<import("playwright-core").APIResponse>;
9
+ createDefaultTemporaryFile(): Promise<{
10
+ mediaTypeId: any;
11
+ temporaryFileId: any;
12
+ }>;
13
+ createDefaultTemporaryImageFile(): Promise<{
14
+ mediaTypeId: any;
15
+ temporaryFileId: any;
16
+ }>;
17
+ createDefaultTemporaryArticleFile(): Promise<{
18
+ mediaTypeId: any;
19
+ temporaryFileId: any;
20
+ }>;
21
+ createTemporaryFile(fileName: string, mediaTypeName: string, mimeType: string): Promise<{
22
+ mediaTypeId: any;
23
+ temporaryFileId: any;
24
+ }>;
9
25
  }
@@ -6,23 +6,36 @@ class TemporaryFileApiHelper {
6
6
  constructor(api) {
7
7
  this.api = api;
8
8
  }
9
- async exists(id) {
10
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);
9
+ async doesExist(id) {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);
11
11
  return response.status() === 200;
12
12
  }
13
13
  async create(id, name, mimeType, filePath) {
14
- return this.api.postMultiPartForm(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile', id, name, mimeType, filePath);
14
+ return this.api.postMultiPartForm(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file', id, name, mimeType, filePath);
15
15
  }
16
16
  async get(id) {
17
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);
18
- const json = await response.json();
19
- if (json !== null) {
20
- return json;
21
- }
22
- return null;
17
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);
18
+ return await response.json();
23
19
  }
24
20
  async delete(id) {
25
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);
21
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);
22
+ }
23
+ async createDefaultTemporaryFile() {
24
+ return this.createTemporaryFile('File.txt', 'File', 'text/plain');
25
+ }
26
+ async createDefaultTemporaryImageFile() {
27
+ return this.createTemporaryFile('Umbraco.png', 'Image', 'image/png');
28
+ }
29
+ async createDefaultTemporaryArticleFile() {
30
+ return this.createTemporaryFile('Article.pdf', 'Article', 'application/pdf');
31
+ }
32
+ async createTemporaryFile(fileName, mediaTypeName, mimeType) {
33
+ const mediaType = await this.api.mediaType.getByName(mediaTypeName);
34
+ const crypto = require('crypto');
35
+ const temporaryFileId = crypto.randomUUID();
36
+ const filePath = './fixtures/mediaLibrary/' + fileName;
37
+ await this.create(temporaryFileId, fileName, mimeType, filePath);
38
+ return { mediaTypeId: mediaType.id, temporaryFileId: temporaryFileId };
26
39
  }
27
40
  }
28
41
  exports.TemporaryFileApiHelper = TemporaryFileApiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"TemporaryFileApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemporaryFileApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,GAAG,EAAE,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY,EAAE,QAAQ,EAAE,QAAQ;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,0CAA0C,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChI,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,GAAG,EAAE,CAAC,CAAC;QACzG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,GAAG,EAAE,CAAC,CAAC;IACpG,CAAC;CACF;AA7BD,wDA6BC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class TemporaryFileApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);\n return response.status() === 200;\n }\n\n async create(id: string, name: string, mimeType, filePath) {\n return this.api.postMultiPartForm(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile', id, name, mimeType, filePath)\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/temporaryfile/' + id);\n }\n}"]}
1
+ {"version":3,"file":"TemporaryFileApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemporaryFileApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY,EAAE,QAAQ,EAAE,QAAQ;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjI,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,iCAAiC;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,aAAqB,EAAE,QAAgB;QACjF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,0BAA0B,GAAG,QAAQ,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjE,OAAO,EAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC;IACvE,CAAC;CACF;AA9CD,wDA8CC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class TemporaryFileApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n return response.status() === 200;\n }\n\n async create(id: string, name: string, mimeType, filePath) {\n return this.api.postMultiPartForm(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file', id, name, mimeType, filePath)\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n return await response.json();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n }\n\n async createDefaultTemporaryFile() {\n return this.createTemporaryFile('File.txt', 'File', 'text/plain');\n }\n\n async createDefaultTemporaryImageFile() {\n return this.createTemporaryFile('Umbraco.png', 'Image', 'image/png');\n }\n\n async createDefaultTemporaryArticleFile() {\n return this.createTemporaryFile('Article.pdf', 'Article', 'application/pdf');\n }\n\n async createTemporaryFile(fileName: string, mediaTypeName: string, mimeType: string) {\n const mediaType = await this.api.mediaType.getByName(mediaTypeName);\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/' + fileName;\n await this.create(temporaryFileId, fileName, mimeType, filePath);\n\n return {mediaTypeId: mediaType.id, temporaryFileId: temporaryFileId};\n }\n}"]}
@@ -0,0 +1,228 @@
1
+ import { Locator, Page } from "@playwright/test";
2
+ export declare class UiBaseLocators {
3
+ readonly page: Page;
4
+ readonly saveBtn: Locator;
5
+ readonly chooseBtn: Locator;
6
+ readonly submitBtn: Locator;
7
+ readonly createFolderBtn: Locator;
8
+ readonly breadcrumbBtn: Locator;
9
+ readonly deleteBtn: Locator;
10
+ readonly confirmToDeleteBtn: Locator;
11
+ readonly deleteLabelBtn: Locator;
12
+ readonly deleteExactLabelBtn: Locator;
13
+ readonly deleteExactBtn: Locator;
14
+ readonly confirmCreateFolderBtn: Locator;
15
+ readonly insertBtn: Locator;
16
+ readonly modalCaretBtn: Locator;
17
+ readonly queryBuilderBtn: Locator;
18
+ readonly queryBuilderOrderedBy: Locator;
19
+ readonly queryBuilderCreateDate: Locator;
20
+ readonly folderNameTxt: Locator;
21
+ readonly textAreaInputArea: Locator;
22
+ readonly wherePropertyAliasBtn: Locator;
23
+ readonly whereOperatorBtn: Locator;
24
+ readonly whereConstrainValueTxt: Locator;
25
+ readonly orderByPropertyAliasBtn: Locator;
26
+ readonly ascendingBtn: Locator;
27
+ readonly queryBuilderShowCode: Locator;
28
+ readonly createThreeDotsBtn: Locator;
29
+ readonly newFolderThreeDotsBtn: Locator;
30
+ readonly renameThreeDotsBtn: Locator;
31
+ readonly newNameTxt: Locator;
32
+ readonly renameModalBtn: Locator;
33
+ readonly createBtn: Locator;
34
+ readonly successState: Locator;
35
+ readonly chooseModalBtn: Locator;
36
+ readonly addBtn: Locator;
37
+ readonly renameFolderThreeDotsBtn: Locator;
38
+ readonly renameFolderBtn: Locator;
39
+ readonly updateFolderBtn: Locator;
40
+ readonly filterChooseBtn: Locator;
41
+ readonly updateBtn: Locator;
42
+ readonly changeBtn: Locator;
43
+ readonly propertyNameTxt: Locator;
44
+ readonly selectPropertyEditorBtn: Locator;
45
+ readonly addGroupBtn: Locator;
46
+ readonly iAmDoneReorderingBtn: Locator;
47
+ readonly reorderBtn: Locator;
48
+ readonly compositionsBtn: Locator;
49
+ readonly addTabBtn: Locator;
50
+ readonly descriptionBtn: Locator;
51
+ readonly enterDescriptionTxt: Locator;
52
+ readonly mandatorySlider: Locator;
53
+ readonly validation: Locator;
54
+ readonly regexTxt: Locator;
55
+ readonly regexMessageTxt: Locator;
56
+ readonly structureTabBtn: Locator;
57
+ readonly allowAtRootBtn: Locator;
58
+ readonly addPropertyBtn: Locator;
59
+ readonly typeToFilterSearchTxt: Locator;
60
+ readonly editorSettingsBtn: Locator;
61
+ readonly labelAboveBtn: Locator;
62
+ readonly unnamedTxt: Locator;
63
+ readonly deleteThreeDotsBtn: Locator;
64
+ readonly removeExactBtn: Locator;
65
+ readonly confirmBtn: Locator;
66
+ readonly disableBtn: Locator;
67
+ readonly confirmDisableBtn: Locator;
68
+ readonly enableBtn: Locator;
69
+ readonly confirmEnableBtn: Locator;
70
+ readonly iconBtn: Locator;
71
+ readonly aliasLockBtn: Locator;
72
+ readonly aliasNameTxt: Locator;
73
+ readonly deleteFolderThreeDotsBtn: Locator;
74
+ readonly createLink: Locator;
75
+ readonly insertValueBtn: Locator;
76
+ readonly insertPartialViewBtn: Locator;
77
+ readonly insertDictionaryItemBtn: Locator;
78
+ readonly chooseFieldDropDown: Locator;
79
+ readonly systemFieldsOption: Locator;
80
+ readonly chooseFieldValueDropDown: Locator;
81
+ readonly renameBtn: Locator;
82
+ readonly deleteFolderBtn: Locator;
83
+ readonly returnedItemsCount: Locator;
84
+ readonly chooseRootContentBtn: Locator;
85
+ readonly queryResults: Locator;
86
+ readonly reloadBtn: Locator;
87
+ readonly confirmToRemoveBtn: Locator;
88
+ readonly confirmToSubmitBtn: Locator;
89
+ readonly typeGroups: Locator;
90
+ readonly allowedChildNodesModal: Locator;
91
+ readonly configureAsACollectionBtn: Locator;
92
+ readonly errorNotification: Locator;
93
+ readonly confirmRenameFolderBtn: Locator;
94
+ readonly successNotification: Locator;
95
+ readonly leftArrowBtn: Locator;
96
+ readonly clickToUploadBtn: Locator;
97
+ readonly backOfficeHeader: Locator;
98
+ readonly failedStateButton: Locator;
99
+ readonly sidebarModal: Locator;
100
+ readonly enterAName: Locator;
101
+ readonly mediaCardItems: Locator;
102
+ readonly enterPropertyEditorDescriptionTxt: Locator;
103
+ readonly breadcrumbsTemplateModal: Locator;
104
+ readonly containerChooseBtn: Locator;
105
+ readonly documentTypeNode: Locator;
106
+ readonly groupLabel: Locator;
107
+ constructor(page: Page);
108
+ clickActionsMenuForName(name: string): Promise<void>;
109
+ clickCaretButtonForName(name: string): Promise<void>;
110
+ clickCaretButton(): Promise<void>;
111
+ reloadTree(treeName: string): Promise<void>;
112
+ clickReloadButton(): Promise<void>;
113
+ clickSaveButton(): Promise<void>;
114
+ clickChooseButton(): Promise<void>;
115
+ clickChooseContainerButton(): Promise<void>;
116
+ clickFilterChooseButton(): Promise<void>;
117
+ clickRenameFolderThreeDotsButton(): Promise<void>;
118
+ clickRenameFolderButton(): Promise<void>;
119
+ clickConfirmRenameFolderButton(): Promise<void>;
120
+ clickUpdateFolderButton(): Promise<void>;
121
+ clickUpdateButton(): Promise<void>;
122
+ clickSubmitButton(): Promise<void>;
123
+ clickConfirmToSubmitButton(): Promise<void>;
124
+ clickChangeButton(): Promise<void>;
125
+ clickExactLinkWithName(name: string): Promise<void>;
126
+ enterAliasName(aliasName: string): Promise<void>;
127
+ updateIcon(iconName: string): Promise<void>;
128
+ clickTextButtonWithName(name: string): Promise<void>;
129
+ clickSelectPropertyEditorButton(): Promise<void>;
130
+ clickCreateFolderButton(): Promise<void>;
131
+ enterAPropertyName(name: string): Promise<void>;
132
+ clickConfirmButton(): Promise<void>;
133
+ clickBreadcrumbButton(): Promise<void>;
134
+ clickInsertButton(): Promise<void>;
135
+ clickDeleteButton(): Promise<void>;
136
+ clickConfirmToDeleteButton(): Promise<void>;
137
+ clickDeleteFolderButton(): Promise<void>;
138
+ clickConfirmCreateFolderButton(): Promise<void>;
139
+ clickDeleteThreeDotsButton(): Promise<void>;
140
+ clickRemoveExactButton(toForce?: boolean): Promise<void>;
141
+ clickRemoveButtonForName(name: string): Promise<void>;
142
+ clickTrashIconButtonForName(name: string): Promise<void>;
143
+ clickRemoveWithName(name: string, forceClick?: boolean): Promise<void>;
144
+ clickDisableButton(): Promise<void>;
145
+ clickConfirmDisableButton(): Promise<void>;
146
+ clickConfirmRemoveButton(): Promise<void>;
147
+ clickEnableButton(): Promise<void>;
148
+ clickConfirmEnableButton(): Promise<void>;
149
+ insertDictionaryItem(dictionaryName: string): Promise<void>;
150
+ addQueryBuilderWithOrderByStatement(propertyAlias: string, isAscending: boolean): Promise<void>;
151
+ addQueryBuilderWithWhereStatement(propertyAlias: string, operator: string, constrainValue: string): Promise<void>;
152
+ waitAndSelectQueryBuilderDropDownList(option: string): Promise<void>;
153
+ createFolder(folderName: string): Promise<void>;
154
+ deletePropertyEditor(propertyEditorName: string): Promise<void>;
155
+ enterFolderName(folderName: string): Promise<void>;
156
+ isTextWithExactNameVisible(name: string, isVisible?: boolean): Promise<void>;
157
+ isQueryBuilderCodeShown(code: string): Promise<void>;
158
+ deleteFolder(): Promise<void>;
159
+ clickDeleteExactLabel(forceClick?: boolean): Promise<void>;
160
+ clickDeleteExactButton(forceClick?: boolean): Promise<void>;
161
+ isTreeItemVisible(name: string, isVisible?: boolean): Promise<void>;
162
+ doesTreeItemHaveTheCorrectIcon(name: string, icon: string): Promise<void>;
163
+ goToSection(sectionName: string): Promise<void>;
164
+ goToSettingsTreeItem(settingsTreeItemName: string): Promise<void>;
165
+ clickDataElement(elementName: string, options?: any): Promise<void>;
166
+ getDataElement(elementName: string): Promise<Locator>;
167
+ isButtonWithNameVisible(name: string): Promise<void>;
168
+ clickLabelWithName(name: string, toForceClick?: boolean, isExact?: boolean): Promise<void>;
169
+ clickButtonWithName(name: string): Promise<void>;
170
+ isSuccessNotificationVisible(isVisible?: boolean): Promise<void>;
171
+ doesSuccessNotificationsHaveCount(count: number): Promise<void>;
172
+ isErrorNotificationVisible(isVisible?: boolean): Promise<void>;
173
+ clickCreateThreeDotsButton(): Promise<void>;
174
+ clickCreateButton(): Promise<void>;
175
+ clickAddButton(): Promise<void>;
176
+ clickNewFolderThreeDotsButton(): Promise<void>;
177
+ clickEditorSettingsButton(index?: number): Promise<void>;
178
+ enterDescription(description: string): Promise<void>;
179
+ doesDescriptionHaveValue(value: string, index?: number): Promise<void>;
180
+ clickStructureTab(): Promise<void>;
181
+ clickAllowAtRootButton(): Promise<void>;
182
+ clickIAmDoneReorderingButton(): Promise<void>;
183
+ clickReorderButton(): Promise<void>;
184
+ clickLabelAboveButton(): Promise<void>;
185
+ clickMandatorySlider(): Promise<void>;
186
+ selectValidationOption(option: string): Promise<void>;
187
+ enterRegEx(regEx: string): Promise<void>;
188
+ enterRegExMessage(regExMessage: string): Promise<void>;
189
+ clickCompositionsButton(): Promise<void>;
190
+ clickAddTabButton(): Promise<void>;
191
+ enterTabName(tabName: string): Promise<void>;
192
+ searchForTypeToFilterValue(searchValue: string): Promise<void>;
193
+ addPropertyEditor(propertyEditorName: string, index?: number): Promise<void>;
194
+ updatePropertyEditor(propertyEditorName: string): Promise<void>;
195
+ enterPropertyEditorDescription(description: string): Promise<void>;
196
+ clickAddGroupButton(): Promise<void>;
197
+ clickChooseModalButton(): Promise<void>;
198
+ enterGroupName(groupName: string, index?: number): Promise<void>;
199
+ isGroupVisible(groupName: string, isVisible?: boolean): Promise<void>;
200
+ doesGroupHaveValue(value: string): Promise<void>;
201
+ rename(newName: string): Promise<void>;
202
+ isSuccessButtonWithTextVisible(text: string): Promise<void>;
203
+ dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset?: number, horizontalOffset?: number, steps?: number): Promise<void>;
204
+ clickCreateLink(): Promise<void>;
205
+ insertSystemFieldValue(fieldValue: string): Promise<void>;
206
+ insertPartialView(partialViewName: string): Promise<void>;
207
+ deletePropertyEditorWithName(name: string): Promise<void>;
208
+ clickRenameButton(): Promise<void>;
209
+ clickDeleteAndConfirmButton(): Promise<void>;
210
+ clickQueryBuilderButton(): Promise<void>;
211
+ chooseRootContentInQueryBuilder(contentName: string): Promise<void>;
212
+ reorderTwoGroups(): Promise<{
213
+ firstGroupValue: string;
214
+ secondGroupValue: string;
215
+ }>;
216
+ clickAllowedChildNodesButton(): Promise<void>;
217
+ clickConfigureAsACollectionButton(): Promise<void>;
218
+ doesReturnedItemsHaveCount(itemCount: number): Promise<void>;
219
+ doesQueryResultHaveContentName(contentName: string): Promise<void>;
220
+ deleteGroup(groupName: string, forceClick?: boolean): Promise<void>;
221
+ clickRemoveTabWithName(name: string): Promise<void>;
222
+ clickLeftArrowButton(): Promise<void>;
223
+ clickToUploadButton(): Promise<void>;
224
+ uploadFile(filePath: string): Promise<void>;
225
+ getTabLocatorWithName(name: string): Locator;
226
+ getTextLocatorWithName(name: string): Locator;
227
+ isFailedStateButtonVisible(): Promise<void>;
228
+ }