@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly varyByCultureSlider: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n private readonly createDocumentTypeBtn: Locator;\n private readonly createDocumentTypeWithTemplateBtn: Locator;\n private readonly createElementTypeBtn: Locator;\n private readonly createDocumentFolderBtn: Locator;\n private readonly autoCleanupBtn: Locator;\n private readonly defaultTemplateBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newDocumentTypeBtn = page.getByLabel('New Document Type...');\n this.varyByCultureSlider = page.locator('label').filter({hasText: 'Vary by culture'}).locator('#slider');\n this.documentTypeSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.documentTypeTemplatesTabBtn = page.getByRole('tab', {name: 'Templates'})\n this.varyBySegmentsBtn = page.getByText('Vary by segments', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n this.createDocumentTypeBtn = page.locator('umb-ref-item').getByText('Document Type', {exact: true});\n this.createDocumentTypeWithTemplateBtn = page.locator('umb-ref-item').getByText('Document Type with Template', {exact: true});\n this.createElementTypeBtn = page.locator('umb-ref-item').getByText('Element Type', {exact: true});\n this.createDocumentFolderBtn = page.locator('umb-ref-item').getByText('Folder', {exact: true});\n this.autoCleanupBtn = page.getByText('Auto cleanup');\n this.defaultTemplateBtn = page.getByLabel('Default template');\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Document Types\");\n }\n\n async clickNewDocumentTypeButton() {\n await this.newDocumentTypeBtn.click();\n }\n\n async clickVaryByCultureSlider() {\n await this.varyByCultureSlider.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n // The wait is necessary, because we have to wait until the document is loaded, otherwise we won't be navigated to the settings tab\n await this.page.waitForTimeout(1000);\n await this.documentTypeSettingsTabBtn.waitFor({state: 'visible'});\n await this.documentTypeSettingsTabBtn.click({force: true});\n }\n\n async clickDocumentTypeTemplatesTab() {\n // The wait is necessary, because we have to wait until the document is loaded, otherwise we won't be navigated to the templates tab\n await this.page.waitForTimeout(1000);\n await this.documentTypeTemplatesTabBtn.waitFor({state: 'visible'});\n await this.documentTypeTemplatesTabBtn.click({force: true});\n }\n\n async clickVaryBySegmentsButton() {\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await this.varyByCultureBtn.click();\n }\n\n async clickAutoCleanupButton() {\n await this.autoCleanupBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(documentTypeName).click();\n }\n\n async enterDocumentTypeName(documentTypeName: string) {\n await this.enterAName.waitFor({state: 'visible'});\n await this.enterAName.fill(documentTypeName);\n }\n\n async clickCreateDocumentTypeButton() {\n await this.createDocumentTypeBtn.click();\n }\n\n async clickCreateDocumentTypeWithTemplateButton() {\n await this.createDocumentTypeWithTemplateBtn.click();\n }\n\n async clickCreateElementTypeButton() {\n await this.createElementTypeBtn.click();\n }\n\n async clickCreateDocumentFolderButton() {\n await this.createDocumentFolderBtn.click();\n }\n\n async isDocumentTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n\n async clickDefaultTemplateButton() {\n await this.defaultTemplateBtn.click();\n }\n}"]}
@@ -0,0 +1,15 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class ExamineManagementUiHelper extends UiBaseLocators {
4
+ private readonly examineManagementTab;
5
+ private readonly indexersContent;
6
+ private readonly indexerItems;
7
+ private readonly indexInfoRow;
8
+ constructor(page: Page);
9
+ clickExamineManagementTab(): Promise<void>;
10
+ doesIndexersHaveText(text: string): Promise<void>;
11
+ checkIndexersCount(): Promise<number>;
12
+ clickIndexByName(indexName: string): Promise<void>;
13
+ doesIndexPropertyHaveValue(indexProperty: string, indexValue: string): Promise<void>;
14
+ doesIndexHaveHealthStatus(indexName: string, status: string): Promise<void>;
15
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExamineManagementUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ class ExamineManagementUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ examineManagementTab;
8
+ indexersContent;
9
+ indexerItems;
10
+ indexInfoRow;
11
+ constructor(page) {
12
+ super(page);
13
+ this.examineManagementTab = page.getByRole('tab', { name: 'Examine Management' });
14
+ this.indexersContent = page.locator('[headline="Indexers"]');
15
+ this.indexerItems = this.indexersContent.locator('uui-table-cell a');
16
+ this.indexInfoRow = page.locator('uui-table-row');
17
+ }
18
+ async clickExamineManagementTab() {
19
+ await this.examineManagementTab.click();
20
+ }
21
+ async doesIndexersHaveText(text) {
22
+ return await (0, test_1.expect)(this.indexersContent).toContainText(text);
23
+ }
24
+ checkIndexersCount() {
25
+ return this.indexerItems.count();
26
+ }
27
+ async clickIndexByName(indexName) {
28
+ await this.page.getByRole('link', { name: indexName }).click();
29
+ }
30
+ async doesIndexPropertyHaveValue(indexProperty, indexValue) {
31
+ return (0, test_1.expect)(this.indexInfoRow.filter({ has: this.page.getByText(indexProperty) }).getByRole('cell').last()).toHaveText(indexValue);
32
+ }
33
+ async doesIndexHaveHealthStatus(indexName, status) {
34
+ return (0, test_1.expect)(this.page.locator("[headline='" + indexName + "']").getByText(status)).toBeVisible();
35
+ }
36
+ }
37
+ exports.ExamineManagementUiHelper = ExamineManagementUiHelper;
38
+ //# sourceMappingURL=ExamineManagementUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExamineManagementUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ExamineManagementUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,yBAA0B,SAAQ,+BAAc;IAC1C,oBAAoB,CAAU;IAC9B,eAAe,CAAU;IACzB,YAAY,CAAU;IACtB,YAAY,CAAU;IAEvC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,oBAAoB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,aAAqB,EAAE,UAAkB;QACxE,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAiB,EAAE,MAAc;QAC/D,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrG,CAAC;CACF;AArCD,8DAqCC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class ExamineManagementUiHelper extends UiBaseLocators {\n private readonly examineManagementTab: Locator;\n private readonly indexersContent: Locator;\n private readonly indexerItems: Locator;\n private readonly indexInfoRow: Locator;\n\n constructor(page: Page) {\n super(page);\n this.examineManagementTab = page.getByRole('tab', {name: 'Examine Management'});\n this.indexersContent = page.locator('[headline=\"Indexers\"]');\n this.indexerItems = this.indexersContent.locator('uui-table-cell a');\n this.indexInfoRow = page.locator('uui-table-row');\n }\n\n async clickExamineManagementTab() {\n await this.examineManagementTab.click();\n }\n\n async doesIndexersHaveText(text: string) {\n return await expect(this.indexersContent).toContainText(text);\n }\n\n checkIndexersCount() {\n return this.indexerItems.count();\n }\n\n async clickIndexByName(indexName: string) {\n await this.page.getByRole('link', { name: indexName }).click();\n }\n\n async doesIndexPropertyHaveValue(indexProperty: string, indexValue: string) {\n return expect(this.indexInfoRow.filter({has: this.page.getByText(indexProperty)}).getByRole('cell').last()).toHaveText(indexValue);\n }\n\n async doesIndexHaveHealthStatus(indexName: string, status: string) {\n return expect(this.page.locator(\"[headline='\" + indexName + \"']\").getByText(status)).toBeVisible();\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class HealthCheckApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ getAll(): Promise<any>;
6
+ getByName(name: string): Promise<any>;
7
+ checkByName(name: string): Promise<any>;
8
+ getResultsCountByName(name: string): Promise<{
9
+ success: number;
10
+ error: number;
11
+ warning: number;
12
+ }>;
13
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthCheckApiHelper = void 0;
4
+ class HealthCheckApiHelper {
5
+ api;
6
+ constructor(api) {
7
+ this.api = api;
8
+ }
9
+ async getAll() {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group?skip=0&take=9999');
11
+ return await response.json();
12
+ }
13
+ async getByName(name) {
14
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name);
15
+ return await response.json();
16
+ }
17
+ async checkByName(name) {
18
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name + '/check');
19
+ return await response.json();
20
+ }
21
+ async getResultsCountByName(name) {
22
+ const resultCount = {
23
+ success: 0,
24
+ error: 0,
25
+ warning: 0
26
+ };
27
+ const healthCheckData = await this.checkByName(name);
28
+ healthCheckData.checks.forEach((item) => {
29
+ item.results.forEach((result) => {
30
+ switch (result.resultType) {
31
+ case "Success":
32
+ resultCount.success++;
33
+ break;
34
+ case "Error":
35
+ resultCount.error++;
36
+ break;
37
+ case "Warning":
38
+ resultCount.warning++;
39
+ break;
40
+ }
41
+ });
42
+ });
43
+ return resultCount;
44
+ }
45
+ }
46
+ exports.HealthCheckApiHelper = HealthCheckApiHelper;
47
+ //# sourceMappingURL=HealthCheckApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthCheckApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/HealthCheckApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAC/B,GAAG,CAAa;IAEhB,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gEAAgE,CAAC,CAAC;QACzH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gDAAgD,GAAG,IAAI,CAAC,CAAC;QAChH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gDAAgD,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;QAC5H,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY;QACtC,MAAM,WAAW,GAAwD;YACvE,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9B,QAAQ,MAAM,CAAC,UAAU,EAAE;oBACzB,KAAK,SAAS;wBACZ,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM;oBACR,KAAK,OAAO;wBACV,WAAW,CAAC,KAAK,EAAE,CAAC;wBACpB,MAAM;oBACR,KAAK,SAAS;wBACZ,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM;iBACT;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAjDD,oDAiDC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class HealthCheckApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group?skip=0&take=9999');\n return await response.json();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name);\n return await response.json();\n }\n\n async checkByName(name: string) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/health-check-group/' + name + '/check');\n return await response.json();\n }\n\n async getResultsCountByName(name: string) {\n const resultCount: { success: number, error: number, warning: number } = {\n success: 0,\n error: 0,\n warning: 0\n };\n \n const healthCheckData = await this.checkByName(name);\n \n healthCheckData.checks.forEach((item) => {\n item.results.forEach((result) => {\n switch (result.resultType) {\n case \"Success\":\n resultCount.success++;\n break;\n case \"Error\":\n resultCount.error++;\n break;\n case \"Warning\":\n resultCount.warning++;\n break;\n }\n });\n });\n \n return resultCount;\n }\n}"]}
@@ -0,0 +1,23 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class HealthCheckUiHelper extends UiBaseLocators {
4
+ private readonly healthCheckTab;
5
+ private readonly healthCheckGroupBox;
6
+ private readonly performanceAllChecksBtn;
7
+ private readonly positiveTag;
8
+ private readonly warningTag;
9
+ private readonly dangerTag;
10
+ private readonly headline;
11
+ private readonly healthCheckGroup;
12
+ constructor(page: Page);
13
+ clickHealthCheckTab(): Promise<void>;
14
+ checkHealthCheckGroupCount(): Promise<number>;
15
+ clickPerformanceAllChecksButton(): Promise<void>;
16
+ clickHeathCheckGroupByName(groupName: string): Promise<void>;
17
+ isHealthCheckGroupVisible(groupName: string): Promise<void>;
18
+ doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
19
+ doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
20
+ doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName: string, count: number): Promise<void>;
21
+ isCheckNameVisible(name: string): Promise<void>;
22
+ isCheckDescriptionVisible(description: string): Promise<void>;
23
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthCheckUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ class HealthCheckUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ healthCheckTab;
8
+ healthCheckGroupBox;
9
+ performanceAllChecksBtn;
10
+ positiveTag;
11
+ warningTag;
12
+ dangerTag;
13
+ headline;
14
+ healthCheckGroup;
15
+ constructor(page) {
16
+ super(page);
17
+ this.healthCheckTab = page.getByRole('tab', { name: 'Health Check' });
18
+ this.healthCheckGroupBox = page.locator('umb-health-check-group-box-overview');
19
+ this.performanceAllChecksBtn = page.getByLabel('Perform all checks');
20
+ this.positiveTag = 'uui-tag[color="positive"]';
21
+ this.warningTag = 'uui-tag[color="warning"]';
22
+ this.dangerTag = 'uui-tag[color="danger"]';
23
+ this.headline = page.locator('#headline');
24
+ this.healthCheckGroup = page.locator('umb-dashboard-health-check-group');
25
+ }
26
+ async clickHealthCheckTab() {
27
+ await this.healthCheckTab.click();
28
+ }
29
+ async checkHealthCheckGroupCount() {
30
+ await (0, test_1.expect)(this.healthCheckGroupBox.first()).toBeVisible();
31
+ return this.healthCheckGroupBox.count();
32
+ }
33
+ async clickPerformanceAllChecksButton() {
34
+ await this.performanceAllChecksBtn.click();
35
+ }
36
+ async clickHeathCheckGroupByName(groupName) {
37
+ await this.page.getByRole('link', { name: groupName }).click();
38
+ }
39
+ async isHealthCheckGroupVisible(groupName) {
40
+ return await (0, test_1.expect)(this.healthCheckGroupBox.getByText(groupName)).toBeVisible();
41
+ }
42
+ async doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName, count) {
43
+ return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.positiveTag)).toHaveText(count.toString());
44
+ }
45
+ async doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName, count) {
46
+ return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.warningTag)).toHaveText(count.toString());
47
+ }
48
+ async doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName, count) {
49
+ return (0, test_1.expect)(this.healthCheckGroupBox.filter({ has: this.page.getByText(healthCheckGroupName) }).locator(this.dangerTag)).toHaveText(count.toString());
50
+ }
51
+ async isCheckNameVisible(name) {
52
+ return await (0, test_1.expect)(this.headline.filter({ hasText: name })).toBeVisible();
53
+ }
54
+ async isCheckDescriptionVisible(description) {
55
+ return await (0, test_1.expect)(this.healthCheckGroup.getByText(description)).toBeVisible();
56
+ }
57
+ }
58
+ exports.HealthCheckUiHelper = HealthCheckUiHelper;
59
+ //# sourceMappingURL=HealthCheckUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthCheckUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/HealthCheckUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class HealthCheckUiHelper extends UiBaseLocators {\n private readonly healthCheckTab: Locator;\n private readonly healthCheckGroupBox: Locator;\n private readonly performanceAllChecksBtn: Locator;\n private readonly positiveTag: string;\n private readonly warningTag: string;\n private readonly dangerTag: string;\n private readonly headline: Locator;\n private readonly healthCheckGroup: Locator;\n\n constructor(page: Page) {\n super(page);\n this.healthCheckTab = page.getByRole('tab', {name: 'Health Check'});\n this.healthCheckGroupBox = page.locator('umb-health-check-group-box-overview');\n this.performanceAllChecksBtn = page.getByLabel('Perform all checks');\n this.positiveTag = 'uui-tag[color=\"positive\"]';\n this.warningTag = 'uui-tag[color=\"warning\"]';\n this.dangerTag = 'uui-tag[color=\"danger\"]';\n this.headline = page.locator('#headline');\n this.healthCheckGroup = page.locator('umb-dashboard-health-check-group');\n }\n\n async clickHealthCheckTab() {\n await this.healthCheckTab.click();\n }\n\n async checkHealthCheckGroupCount() {\n await expect(this.healthCheckGroupBox.first()).toBeVisible();\n return this.healthCheckGroupBox.count();\n }\n\n async clickPerformanceAllChecksButton() {\n await this.performanceAllChecksBtn.click();\n }\n\n async clickHeathCheckGroupByName(groupName: string) {\n await this.page.getByRole('link', { name: groupName }).click();\n }\n\n async isHealthCheckGroupVisible(groupName: string) {\n return await expect(this.healthCheckGroupBox.getByText(groupName)).toBeVisible();\n }\n\n async doesHeathCheckGroupHaveSuccessItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.positiveTag)).toHaveText(count.toString());\n }\n\n async doesHeathCheckGroupHaveWarningItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.warningTag)).toHaveText(count.toString());\n }\n\n async doesHeathCheckGroupHaveErrorItemsCount(healthCheckGroupName: string, count: number) {\n return expect(this.healthCheckGroupBox.filter({has: this.page.getByText(healthCheckGroupName)}).locator(this.dangerTag)).toHaveText(count.toString());\n }\n\n async isCheckNameVisible(name: string) {\n return await expect(this.headline.filter({hasText: name})).toBeVisible();\n }\n\n async isCheckDescriptionVisible(description: string) {\n return await expect(this.healthCheckGroup.getByText(description)).toBeVisible();\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class IndexerApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ getAll(): Promise<any>;
6
+ getByIndexName(indexName: string): Promise<any>;
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndexerApiHelper = void 0;
4
+ class IndexerApiHelper {
5
+ api;
6
+ constructor(api) {
7
+ this.api = api;
8
+ }
9
+ async getAll() {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer?skip=0&take=9999');
11
+ return await response.json();
12
+ }
13
+ async getByIndexName(indexName) {
14
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer/' + indexName);
15
+ return await response.json();
16
+ }
17
+ }
18
+ exports.IndexerApiHelper = IndexerApiHelper;
19
+ //# sourceMappingURL=IndexerApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexerApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/IndexerApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAC3B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qDAAqD,CAAC,CAAC;QAC9G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,GAAG,SAAS,CAAC,CAAC;QAC1G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;CACF;AAhBD,4CAgBC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class IndexerApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer?skip=0&take=9999');\n return await response.json(); \n }\n\n async getByIndexName(indexName: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/indexer/' + indexName);\n return await response.json(); \n }\n}"]}
@@ -1,11 +1,15 @@
1
1
  import { ApiHelpers } from "./ApiHelpers";
2
- export declare class LanguagesApiHelper {
2
+ export declare class LanguageApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
- create(name: string, isDefault: boolean | undefined, isMandatory: boolean | undefined, isoCode: string, fallbackIsoCode?: string): Promise<string | undefined>;
6
5
  get(isoCode: string): Promise<any>;
7
- getByName(name: string): Promise<any>;
8
- exists(isoCode: string): Promise<boolean>;
6
+ doesExist(isoCode: string): Promise<boolean>;
7
+ create(name: string, isDefault: boolean | undefined, isMandatory: boolean | undefined, isoCode: string, fallbackIsoCode?: string): Promise<string | undefined>;
9
8
  update(isoCode: string, language: object): Promise<import("playwright-core").APIResponse>;
10
9
  delete(isoCode: string): Promise<import("playwright-core").APIResponse>;
10
+ getByName(name: string): Promise<any>;
11
+ ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
12
+ ensureIsoCodeNotExists(isoCode: string): Promise<import("playwright-core").APIResponse | null>;
13
+ getAll(): Promise<import("playwright-core").APIResponse>;
14
+ createDanishLanguage(): Promise<string | undefined>;
11
15
  }
@@ -1,54 +1,74 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LanguagesApiHelper = void 0;
4
- class LanguagesApiHelper {
3
+ exports.LanguageApiHelper = void 0;
4
+ class LanguageApiHelper {
5
5
  api;
6
6
  constructor(api) {
7
7
  this.api = api;
8
8
  }
9
+ async get(isoCode) {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
11
+ const json = await response.json();
12
+ return json !== null ? json : null;
13
+ }
14
+ async doesExist(isoCode) {
15
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
16
+ return response.status() === 200;
17
+ }
9
18
  async create(name, isDefault = false, isMandatory = false, isoCode, fallbackIsoCode = "en-US") {
10
- const langData = {
19
+ const languageData = {
11
20
  "name": name,
12
21
  "isDefault": isDefault,
13
22
  "isMandatory": isMandatory,
14
23
  "fallbackIsoCode": fallbackIsoCode,
15
24
  "isoCode": isoCode
16
25
  };
17
- const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', langData);
26
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', languageData);
18
27
  // Returns the id of the created language
19
28
  return response.headers().location.split("/").pop();
20
29
  }
21
- async get(isoCode) {
22
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
23
- const json = await response.json();
24
- if (json !== null) {
25
- return json;
30
+ async update(isoCode, language) {
31
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);
32
+ }
33
+ async delete(isoCode) {
34
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
35
+ }
36
+ async getByName(name) {
37
+ const allLanguages = await this.getAll();
38
+ const jsonLanguages = await allLanguages.json();
39
+ for (const language of jsonLanguages.items) {
40
+ if (language.name === name && language.isoCode !== null) {
41
+ return await this.get(language.isoCode);
42
+ }
26
43
  }
27
44
  return null;
28
45
  }
29
- async getByName(name) {
30
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=100000');
31
- const json = await response.json();
32
- for (const sb of json.items) {
33
- if (sb.name === name) {
34
- if (sb.isoCode !== null) {
35
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + sb.isoCode);
36
- return await response.json();
37
- }
46
+ async ensureNameNotExists(name) {
47
+ const allLanguages = await this.getAll();
48
+ const jsonLanguages = await allLanguages.json();
49
+ for (const language of jsonLanguages.items) {
50
+ if (language.name === name && language.isoCode !== null) {
51
+ return await this.delete(language.isoCode);
38
52
  }
39
53
  }
40
54
  return null;
41
55
  }
42
- async exists(isoCode) {
43
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
44
- return response.status() === 200;
56
+ async ensureIsoCodeNotExists(isoCode) {
57
+ const allLanguages = await this.getAll();
58
+ const jsonLanguages = await allLanguages.json();
59
+ for (const language of jsonLanguages.items) {
60
+ if (language.isoCode === isoCode) {
61
+ return await this.delete(language.isoCode);
62
+ }
63
+ }
64
+ return null;
45
65
  }
46
- async update(isoCode, language) {
47
- return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);
66
+ async getAll() {
67
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=10000');
48
68
  }
49
- async delete(isoCode) {
50
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);
69
+ async createDanishLanguage() {
70
+ return await this.create("Danish", false, false, "da");
51
71
  }
52
72
  }
53
- exports.LanguagesApiHelper = LanguagesApiHelper;
73
+ exports.LanguageApiHelper = LanguageApiHelper;
54
74
  //# sourceMappingURL=LanguageApiHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC7B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,OAAe,EAAE,eAAe,GAAG,OAAO;QAC3G,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,WAAW;YAC1B,iBAAiB,EAAE,eAAe;YAClC,SAAS,EAAE,OAAO;SACnB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QACzG,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,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,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wDAAwD,CAAC,CAAC;QACjH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE;oBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;oBAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAC9B;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,QAAgB;QAC5C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;IACpG,CAAC;CACF;AAxDD,gDAwDC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class LanguagesApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n async create(name: string, isDefault = false, isMandatory = false, isoCode: string, fallbackIsoCode = \"en-US\") {\n const langData = {\n \"name\": name,\n \"isDefault\": isDefault,\n \"isMandatory\": isMandatory,\n \"fallbackIsoCode\": fallbackIsoCode,\n \"isoCode\": isoCode\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', langData);\n // Returns the id of the created language\n return response.headers().location.split(\"/\").pop();\n }\n\n async get(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=100000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isoCode !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + sb.isoCode);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async exists(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n return response.status() === 200;\n }\n\n async update(isoCode: string, language: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);\n }\n\n async delete(isoCode: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n }\n}"]}
1
+ {"version":3,"file":"LanguageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class LanguageApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n const json = await response.json();\n\n return json !== null ? json : null;\n }\n\n async doesExist(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n return response.status() === 200;\n }\n\n async create(name: string, isDefault = false, isMandatory = false, isoCode: string, fallbackIsoCode = \"en-US\") {\n const languageData = {\n \"name\": name,\n \"isDefault\": isDefault,\n \"isMandatory\": isMandatory,\n \"fallbackIsoCode\": fallbackIsoCode,\n \"isoCode\": isoCode\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', languageData);\n // Returns the id of the created language\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(isoCode: string, language: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);\n }\n\n async delete(isoCode: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n }\n\n async getByName(name: string) {\n const allLanguages = await this.getAll();\n const jsonLanguages = await allLanguages.json();\n\n for (const language of jsonLanguages.items) {\n if (language.name === name && language.isoCode !== null) {\n return await this.get(language.isoCode);\n }\n }\n return null;\n }\n\n async ensureNameNotExists(name: string) {\n const allLanguages = await this.getAll();\n const jsonLanguages = await allLanguages.json();\n\n for (const language of jsonLanguages.items) {\n if (language.name === name && language.isoCode !== null) { \n return await this.delete(language.isoCode);\n }\n }\n return null;\n }\n \n async ensureIsoCodeNotExists(isoCode: string) {\n const allLanguages = await this.getAll();\n const jsonLanguages = await allLanguages.json();\n\n for (const language of jsonLanguages.items) {\n if (language.isoCode === isoCode) { \n return await this.delete(language.isoCode);\n }\n }\n return null;\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=10000');\n }\n \n async createDanishLanguage() {\n return await this.create(\"Danish\", false, false, \"da\");\n }\n}"]}
@@ -0,0 +1,23 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class LanguageUiHelper extends UiBaseLocators {
4
+ private readonly languagesMenu;
5
+ private readonly languageDropdown;
6
+ private readonly defaultLanguageToggle;
7
+ private readonly mandatoryLanguageToggle;
8
+ private readonly addFallbackLanguageBtn;
9
+ private readonly languageTable;
10
+ constructor(page: Page);
11
+ clickLanguagesMenu(): Promise<void>;
12
+ goToLanguages(): Promise<void>;
13
+ removeFallbackLanguageByName(name: string): Promise<void>;
14
+ chooseLanguageByName(name: string): Promise<void>;
15
+ clickLanguageByName(name: string): Promise<void>;
16
+ isLanguageNameVisible(name: string, isVisible?: boolean): Promise<void>;
17
+ switchDefaultLanguageOption(): Promise<void>;
18
+ switchMandatoryLanguageOption(): Promise<void>;
19
+ clickAddFallbackLanguageButton(): Promise<void>;
20
+ clickRemoveLanguageByName(name: string): Promise<void>;
21
+ removeLanguageByName(name: string): Promise<void>;
22
+ selectFallbackLanguageByName(name: string): Promise<void>;
23
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LanguageUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ const ConstantHelper_1 = require("./ConstantHelper");
7
+ class LanguageUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
+ languagesMenu;
9
+ languageDropdown;
10
+ defaultLanguageToggle;
11
+ mandatoryLanguageToggle;
12
+ addFallbackLanguageBtn;
13
+ languageTable;
14
+ constructor(page) {
15
+ super(page);
16
+ this.languagesMenu = page.locator('umb-menu').getByLabel('Languages');
17
+ this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');
18
+ this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#slider');
19
+ this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#slider');
20
+ this.addFallbackLanguageBtn = page.locator('#add-button');
21
+ this.languageTable = page.locator('umb-language-table-collection-view');
22
+ }
23
+ async clickLanguagesMenu() {
24
+ await this.languagesMenu.click();
25
+ }
26
+ async goToLanguages() {
27
+ await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
28
+ await this.clickLanguagesMenu();
29
+ await (0, test_1.expect)(this.createLink).toBeVisible();
30
+ }
31
+ async removeFallbackLanguageByName(name) {
32
+ await this.page.locator('uui-ref-node[name="' + name + '"]').getByLabel('Remove').click();
33
+ await this.confirmToRemoveBtn.click();
34
+ }
35
+ async chooseLanguageByName(name) {
36
+ await this.languageDropdown.click();
37
+ await this.page.locator('umb-input-culture-select').getByText(name, { exact: true }).click();
38
+ }
39
+ async clickLanguageByName(name) {
40
+ await this.languageTable.getByText(name, { exact: true }).click();
41
+ }
42
+ async isLanguageNameVisible(name, isVisible = true) {
43
+ return await (0, test_1.expect)(this.languageTable.getByText(name, { exact: true })).toBeVisible({ visible: isVisible });
44
+ }
45
+ async switchDefaultLanguageOption() {
46
+ await this.defaultLanguageToggle.click();
47
+ }
48
+ async switchMandatoryLanguageOption() {
49
+ await this.mandatoryLanguageToggle.click();
50
+ }
51
+ async clickAddFallbackLanguageButton() {
52
+ await this.addFallbackLanguageBtn.click();
53
+ }
54
+ async clickRemoveLanguageByName(name) {
55
+ await this.page.locator('uui-table-row').filter({ has: this.page.getByText(name, { exact: true }) }).locator('uui-symbol-more').click();
56
+ }
57
+ async removeLanguageByName(name) {
58
+ await this.clickRemoveLanguageByName(name);
59
+ await this.deleteBtn.click();
60
+ await this.confirmToDeleteBtn.click();
61
+ }
62
+ async selectFallbackLanguageByName(name) {
63
+ await this.page.locator('umb-language-picker-modal').getByLabel(name).click();
64
+ await this.clickSubmitButton();
65
+ }
66
+ }
67
+ exports.LanguageUiHelper = LanguageUiHelper;
68
+ //# sourceMappingURL=LanguageUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport { ConstantHelper } from \"./ConstantHelper\";\n\nexport class LanguageUiHelper extends UiBaseLocators{\n private readonly languagesMenu: Locator;\n private readonly languageDropdown: Locator;\n private readonly defaultLanguageToggle: Locator;\n private readonly mandatoryLanguageToggle: Locator;\n private readonly addFallbackLanguageBtn: Locator;\n private readonly languageTable: Locator;\n\n constructor(page: Page) {\n super(page);\n this.languagesMenu = page.locator('umb-menu').getByLabel('Languages');\n this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');\n this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#slider');\n this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#slider');\n this.addFallbackLanguageBtn = page.locator('#add-button');\n this.languageTable = page.locator('umb-language-table-collection-view');\n }\n\n async clickLanguagesMenu() {\n await this.languagesMenu.click();\n }\n\n async goToLanguages() {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.clickLanguagesMenu();\n await expect(this.createLink).toBeVisible();\n }\n\n async removeFallbackLanguageByName(name: string) {\n await this.page.locator('uui-ref-node[name=\"' + name + '\"]').getByLabel('Remove').click();\n await this.confirmToRemoveBtn.click();\n }\n\n async chooseLanguageByName(name: string) {\n await this.languageDropdown.click();\n await this.page.locator('umb-input-culture-select').getByText(name, {exact: true}).click();\n }\n\n async clickLanguageByName(name: string) {\n await this.languageTable.getByText(name, {exact: true}).click();\n }\n\n async isLanguageNameVisible(name: string, isVisible = true) {\n return await expect(this.languageTable.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n \n async switchDefaultLanguageOption() {\n await this.defaultLanguageToggle.click();\n }\n\n async switchMandatoryLanguageOption() {\n await this.mandatoryLanguageToggle.click();\n }\n\n async clickAddFallbackLanguageButton() {\n await this.addFallbackLanguageBtn.click();\n }\n\n async clickRemoveLanguageByName(name: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator('uui-symbol-more').click();\n }\n\n async removeLanguageByName(name: string) {\n await this.clickRemoveLanguageByName(name);\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async selectFallbackLanguageByName(name: string) {\n await this.page.locator('umb-language-picker-modal').getByLabel(name).click();\n await this.clickSubmitButton();\n }\n}"]}
@@ -0,0 +1,37 @@
1
+ import { Page, Locator } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class LogViewerUiHelper extends UiBaseLocators {
4
+ private readonly searchBtn;
5
+ private readonly searchLogsTxt;
6
+ private readonly selectLogLevelBtn;
7
+ private readonly saveSearchHeartIcon;
8
+ private readonly searchNameTxt;
9
+ private readonly saveSearchBtn;
10
+ private readonly overviewBtn;
11
+ private readonly sortLogByTimestampBtn;
12
+ private readonly firstLogLevelTimestamp;
13
+ private readonly firstLogLevelMessage;
14
+ private readonly firstLogSearchResult;
15
+ private readonly savedSearchesBtn;
16
+ private readonly loadingSpinner;
17
+ constructor(page: Page);
18
+ clickSearchButton(): Promise<void>;
19
+ clickOverviewButton(): Promise<void>;
20
+ enterSearchKeyword(keyword: string): Promise<void>;
21
+ selectLogLevel(level: string): Promise<void>;
22
+ doesLogLevelIndicatorDisplay(level: string): Promise<void>;
23
+ doesLogLevelCountMatch(level: string, expectedNumber: number): Promise<void>;
24
+ saveSearch(searchName: string): Promise<void>;
25
+ checkSavedSearch(searchName: string): Locator;
26
+ clickSortLogByTimestampButton(): Promise<void>;
27
+ doesFirstLogHaveTimestamp(timestamp: string): Promise<void>;
28
+ clickPageNumber(pageNumber: number): Promise<void>;
29
+ doesFirstLogHaveMessage(message: string): Promise<void>;
30
+ clickSavedSearchByName(name: string): Promise<void>;
31
+ doesSearchBoxHaveValue(searchValue: string): Promise<void>;
32
+ clickFirstLogSearchResult(): Promise<void>;
33
+ doesDetailedLogHaveText(text: string): Promise<void>;
34
+ clickSavedSearchesButton(): Promise<void>;
35
+ removeSavedSearchByName(name: string): Promise<void>;
36
+ waitUntilLoadingSpinnerInvisible(): Promise<void>;
37
+ }