@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberTypeUiHelper.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAGhD,MAAa,kBAAmB,SAAQ,+BAAc;IACnC,iBAAiB,CAAU;IAC3B,+BAA+B,CAAU;IAE1D,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAChE,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,IAAY;QAC9C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,cAAsB;QACzC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,yCAAyC,CAAC,kBAA0B,EAAE,WAAmB;QAC7F,MAAM,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/H,CAAC;CACF;AAnCD,gDAmCC","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {Locator, Page} from \"@playwright/test\";\n\nexport class MemberTypeUiHelper extends UiBaseLocators {\n private readonly memberTypeNameTxt: Locator;\n private readonly memberTypeEditPropertyWorkspace: Locator;\n\n constructor(page: Page) {\n super(page);\n this.memberTypeNameTxt = page.getByLabel('name', {exact: true});\n this.memberTypeEditPropertyWorkspace = page.locator('umb-member-type-workspace-view-edit-property');\n }\n\n async clickActionsMenuForMemberType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForMemberType(\"Member Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Member Types\");\n }\n\n async goToMemberType(memberTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(memberTypeName).click();\n }\n\n async enterMemberTypeName(name: string) {\n await this.memberTypeNameTxt.clear();\n await this.memberTypeNameTxt.fill(name);\n }\n\n async enterDescriptionForPropertyEditorWithName(propertyEditorName: string, description: string) {\n await this.memberTypeEditPropertyWorkspace.filter({hasText: propertyEditorName}).getByLabel('description').fill(description);\n }\n}"]}
@@ -0,0 +1,42 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class MemberUiHelper extends UiBaseLocators {
4
+ private readonly membersTab;
5
+ private readonly searchTxt;
6
+ private readonly memberNameTxt;
7
+ private readonly commentsTxt;
8
+ private readonly memberTab;
9
+ private readonly detailsTab;
10
+ private readonly usernameTxt;
11
+ private readonly emailTxt;
12
+ private readonly passwordTxt;
13
+ private readonly confirmPasswordTxt;
14
+ private readonly confirmNewPasswordTxt;
15
+ private readonly approvedSlider;
16
+ private readonly lockedOutSlider;
17
+ private readonly twoFactorAuthenticationSlider;
18
+ private readonly memberInfoItems;
19
+ private readonly changePasswordBtn;
20
+ private readonly newPasswordTxt;
21
+ constructor(page: Page);
22
+ clickMembersTab(): Promise<void>;
23
+ clickMemberTab(): Promise<void>;
24
+ clickDetailsTab(): Promise<void>;
25
+ clickMemberLinkByName(memberName: string): Promise<void>;
26
+ enterSearchKeyword(keyword: string): Promise<void>;
27
+ enterMemberName(name: string): Promise<void>;
28
+ enterComments(comment: string): Promise<void>;
29
+ enterUsername(username: string): Promise<void>;
30
+ enterEmail(email: string): Promise<void>;
31
+ enterPassword(password: string): Promise<void>;
32
+ enterConfirmPassword(password: string): Promise<void>;
33
+ enterConfirmNewPassword(password: string): Promise<void>;
34
+ chooseMemberGroup(memberGroupName: string): Promise<void>;
35
+ doesMemberInfoHaveValue(infoName: string, value: string): Promise<void>;
36
+ clickApprovedSlider(): Promise<void>;
37
+ clickLockedOutSlider(): Promise<void>;
38
+ clickTwoFactorAuthenticationSlider(): Promise<void>;
39
+ clickChangePasswordButton(): Promise<void>;
40
+ clickRemoveMemberGroupByName(memberGroupName: string): Promise<void>;
41
+ enterNewPassword(password: string): Promise<void>;
42
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ class MemberUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ membersTab;
8
+ searchTxt;
9
+ memberNameTxt;
10
+ commentsTxt;
11
+ memberTab;
12
+ detailsTab;
13
+ usernameTxt;
14
+ emailTxt;
15
+ passwordTxt;
16
+ confirmPasswordTxt;
17
+ confirmNewPasswordTxt;
18
+ approvedSlider;
19
+ lockedOutSlider;
20
+ twoFactorAuthenticationSlider;
21
+ memberInfoItems;
22
+ changePasswordBtn;
23
+ newPasswordTxt;
24
+ constructor(page) {
25
+ super(page);
26
+ this.membersTab = page.locator('uui-tab[label="Members"]');
27
+ this.searchTxt = page.locator('#input-search');
28
+ this.memberNameTxt = page.locator('#name-input #input');
29
+ this.commentsTxt = page.getByLabel('Textarea');
30
+ this.memberTab = page.locator('uui-tab').filter({ hasText: 'Member' }).locator('svg');
31
+ this.detailsTab = page.locator('uui-tab').filter({ hasText: 'Details' }).locator('svg');
32
+ this.usernameTxt = page.getByLabel('Username', { exact: true });
33
+ this.emailTxt = page.getByLabel('Email', { exact: true });
34
+ this.passwordTxt = page.getByLabel('Enter your new password', { exact: true });
35
+ this.confirmPasswordTxt = page.getByLabel('Confirm password', { exact: true });
36
+ this.confirmNewPasswordTxt = page.getByLabel('Confirm new password', { exact: true });
37
+ this.approvedSlider = page.locator('[label="Approved"] #slider');
38
+ this.lockedOutSlider = page.locator('[label="Locked out"] #slider');
39
+ this.twoFactorAuthenticationSlider = page.locator('[label="Two-Factor authentication"] #slider');
40
+ this.memberInfoItems = page.locator('.general-item');
41
+ this.changePasswordBtn = page.getByLabel('Change password', { exact: true });
42
+ this.newPasswordTxt = page.getByLabel('New password', { exact: true });
43
+ }
44
+ async clickMembersTab() {
45
+ await this.membersTab.click();
46
+ }
47
+ async clickMemberTab() {
48
+ await (0, test_1.expect)(this.memberTab).toBeVisible();
49
+ await this.memberTab.click();
50
+ }
51
+ async clickDetailsTab() {
52
+ await (0, test_1.expect)(this.detailsTab).toBeVisible();
53
+ await this.detailsTab.click();
54
+ }
55
+ async clickMemberLinkByName(memberName) {
56
+ await this.page.getByRole('link', { name: memberName }).click();
57
+ }
58
+ async enterSearchKeyword(keyword) {
59
+ await (0, test_1.expect)(this.searchTxt).toBeVisible();
60
+ await this.searchTxt.clear();
61
+ await this.searchTxt.fill(keyword);
62
+ }
63
+ async enterMemberName(name) {
64
+ await this.memberNameTxt.clear();
65
+ await this.memberNameTxt.fill(name);
66
+ }
67
+ async enterComments(comment) {
68
+ await this.commentsTxt.clear();
69
+ await this.commentsTxt.fill(comment);
70
+ }
71
+ async enterUsername(username) {
72
+ await this.usernameTxt.clear();
73
+ await this.usernameTxt.fill(username);
74
+ }
75
+ async enterEmail(email) {
76
+ await this.emailTxt.clear();
77
+ await this.emailTxt.fill(email);
78
+ }
79
+ async enterPassword(password) {
80
+ await this.passwordTxt.clear();
81
+ await this.passwordTxt.fill(password);
82
+ }
83
+ async enterConfirmPassword(password) {
84
+ await this.confirmPasswordTxt.clear();
85
+ await this.confirmPasswordTxt.fill(password);
86
+ }
87
+ async enterConfirmNewPassword(password) {
88
+ await this.confirmNewPasswordTxt.clear();
89
+ await this.confirmNewPasswordTxt.fill(password);
90
+ }
91
+ async chooseMemberGroup(memberGroupName) {
92
+ await this.clickChooseButton();
93
+ await this.page.getByText(memberGroupName, { exact: true }).click();
94
+ await this.submitBtn.click();
95
+ }
96
+ async doesMemberInfoHaveValue(infoName, value) {
97
+ return (0, test_1.expect)(this.memberInfoItems.filter({ hasText: infoName }).locator('span')).toHaveText(value);
98
+ }
99
+ async clickApprovedSlider() {
100
+ await this.approvedSlider.click();
101
+ }
102
+ async clickLockedOutSlider() {
103
+ await this.lockedOutSlider.click();
104
+ }
105
+ async clickTwoFactorAuthenticationSlider() {
106
+ await this.twoFactorAuthenticationSlider.click();
107
+ }
108
+ async clickChangePasswordButton() {
109
+ await this.changePasswordBtn.click();
110
+ }
111
+ async clickRemoveMemberGroupByName(memberGroupName) {
112
+ await this.page.locator('[name="' + memberGroupName + '"]').getByLabel('Remove').click();
113
+ }
114
+ async enterNewPassword(password) {
115
+ await this.newPasswordTxt.clear();
116
+ await this.newPasswordTxt.fill(password);
117
+ }
118
+ }
119
+ exports.MemberUiHelper = MemberUiHelper;
120
+ //# sourceMappingURL=MemberUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class MemberUiHelper extends UiBaseLocators {\n private readonly membersTab: Locator;\n private readonly searchTxt: Locator;\n private readonly memberNameTxt: Locator;\n private readonly commentsTxt: Locator;\n private readonly memberTab: Locator;\n private readonly detailsTab: Locator;\n private readonly usernameTxt: Locator;\n private readonly emailTxt: Locator;\n private readonly passwordTxt: Locator;\n private readonly confirmPasswordTxt: Locator;\n private readonly confirmNewPasswordTxt: Locator;\n private readonly approvedSlider: Locator;\n private readonly lockedOutSlider: Locator;\n private readonly twoFactorAuthenticationSlider: Locator;\n private readonly memberInfoItems: Locator;\n private readonly changePasswordBtn: Locator;\n private readonly newPasswordTxt: Locator;\n\n constructor(page: Page) {\n super(page);\n this.membersTab = page.locator('uui-tab[label=\"Members\"]');\n this.searchTxt = page.locator('#input-search');\n this.memberNameTxt = page.locator('#name-input #input');\n this.commentsTxt = page.getByLabel('Textarea');\n this.memberTab = page.locator('uui-tab').filter({hasText: 'Member'}).locator('svg');\n this.detailsTab = page.locator('uui-tab').filter({hasText: 'Details'}).locator('svg');\n this.usernameTxt = page.getByLabel('Username', {exact: true});\n this.emailTxt = page.getByLabel('Email', {exact: true});\n this.passwordTxt = page.getByLabel('Enter your new password', {exact: true});\n this.confirmPasswordTxt = page.getByLabel('Confirm password', {exact: true});\n this.confirmNewPasswordTxt = page.getByLabel('Confirm new password', {exact: true});\n this.approvedSlider = page.locator('[label=\"Approved\"] #slider');\n this.lockedOutSlider = page.locator('[label=\"Locked out\"] #slider');\n this.twoFactorAuthenticationSlider = page.locator('[label=\"Two-Factor authentication\"] #slider');\n this.memberInfoItems = page.locator('.general-item');\n this.changePasswordBtn = page.getByLabel('Change password', {exact: true});\n this.newPasswordTxt = page.getByLabel('New password', {exact: true});\n }\n\n async clickMembersTab() {\n await this.membersTab.click();\n }\n\n async clickMemberTab() {\n await expect(this.memberTab).toBeVisible();\n await this.memberTab.click();\n }\n\n async clickDetailsTab() {\n await expect(this.detailsTab).toBeVisible();\n await this.detailsTab.click();\n }\n\n async clickMemberLinkByName(memberName: string) {\n await this.page.getByRole('link', {name: memberName}).click();\n }\n\n async enterSearchKeyword(keyword: string) {\n await expect(this.searchTxt).toBeVisible();\n await this.searchTxt.clear();\n await this.searchTxt.fill(keyword);\n }\n\n async enterMemberName(name: string) {\n await this.memberNameTxt.clear();\n await this.memberNameTxt.fill(name);\n }\n\n async enterComments(comment: string) {\n await this.commentsTxt.clear();\n await this.commentsTxt.fill(comment);\n }\n\n async enterUsername(username: string) {\n await this.usernameTxt.clear();\n await this.usernameTxt.fill(username);\n }\n\n async enterEmail(email: string) {\n await this.emailTxt.clear();\n await this.emailTxt.fill(email);\n }\n\n async enterPassword(password: string) {\n await this.passwordTxt.clear();\n await this.passwordTxt.fill(password);\n }\n\n async enterConfirmPassword(password: string) {\n await this.confirmPasswordTxt.clear();\n await this.confirmPasswordTxt.fill(password);\n }\n\n async enterConfirmNewPassword(password: string) {\n await this.confirmNewPasswordTxt.clear();\n await this.confirmNewPasswordTxt.fill(password);\n }\n\n async chooseMemberGroup(memberGroupName: string) {\n await this.clickChooseButton();\n await this.page.getByText(memberGroupName, {exact: true}).click();\n await this.submitBtn.click();\n }\n\n async doesMemberInfoHaveValue(infoName: string, value: string) {\n return expect(this.memberInfoItems.filter({hasText: infoName}).locator('span')).toHaveText(value);\n }\n\n async clickApprovedSlider() {\n await this.approvedSlider.click();\n }\n\n async clickLockedOutSlider() {\n await this.lockedOutSlider.click();\n }\n\n async clickTwoFactorAuthenticationSlider() {\n await this.twoFactorAuthenticationSlider.click();\n }\n\n async clickChangePasswordButton() {\n await this.changePasswordBtn.click();\n }\n\n async clickRemoveMemberGroupByName(memberGroupName: string) {\n await this.page.locator('[name=\"' + memberGroupName + '\"]').getByLabel('Remove').click();\n }\n\n async enterNewPassword(password: string) {\n await this.newPasswordTxt.clear();\n await this.newPasswordTxt.fill(password);\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class ModelsBuilderApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ getDashboard(): Promise<any>;
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelsBuilderApiHelper = void 0;
4
+ class ModelsBuilderApiHelper {
5
+ api;
6
+ constructor(api) {
7
+ this.api = api;
8
+ }
9
+ async getDashboard() {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/models-builder/dashboard');
11
+ return await response.json();
12
+ }
13
+ }
14
+ exports.ModelsBuilderApiHelper = ModelsBuilderApiHelper;
15
+ //# sourceMappingURL=ModelsBuilderApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelsBuilderApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ModelsBuilderApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,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;CACF;AAXD,wDAWC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ModelsBuilderApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getDashboard() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/models-builder/dashboard');\n return await response.json(); \n }\n}"]}
@@ -0,0 +1,9 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class ModelsBuilderUiHelper extends UiBaseLocators {
4
+ private readonly modelsBuilderTab;
5
+ private readonly modelsBuilderDashboardContent;
6
+ constructor(page: Page);
7
+ clickModelsBuilderTab(): Promise<void>;
8
+ doesModelsBuilderDashboardHaveText(text: string): Promise<void>;
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelsBuilderUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ class ModelsBuilderUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ modelsBuilderTab;
8
+ modelsBuilderDashboardContent;
9
+ constructor(page) {
10
+ super(page);
11
+ this.modelsBuilderTab = page.getByRole('tab', { name: 'Models Builder' });
12
+ this.modelsBuilderDashboardContent = page.locator('umb-models-builder-dashboard');
13
+ }
14
+ async clickModelsBuilderTab() {
15
+ await this.modelsBuilderTab.click();
16
+ }
17
+ async doesModelsBuilderDashboardHaveText(text) {
18
+ return await (0, test_1.expect)(this.modelsBuilderDashboardContent).toContainText(text, { timeout: 10000 });
19
+ }
20
+ }
21
+ exports.ModelsBuilderUiHelper = ModelsBuilderUiHelper;
22
+ //# sourceMappingURL=ModelsBuilderUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelsBuilderUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ModelsBuilderUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,qBAAsB,SAAQ,+BAAc;IACtC,gBAAgB,CAAU;IAC1B,6BAA6B,CAAU;IAExD,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAC;QACxE,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,IAAY;QACnD,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IAChG,CAAC;CACF;AAjBD,sDAiBC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class ModelsBuilderUiHelper extends UiBaseLocators {\n private readonly modelsBuilderTab: Locator;\n private readonly modelsBuilderDashboardContent: Locator;\n\n constructor(page: Page) {\n super(page);\n this.modelsBuilderTab = page.getByRole('tab', {name: 'Models Builder'});\n this.modelsBuilderDashboardContent = page.locator('umb-models-builder-dashboard');\n }\n\n async clickModelsBuilderTab() {\n await this.modelsBuilderTab.click();\n }\n\n async doesModelsBuilderDashboardHaveText(text: string) {\n return await expect(this.modelsBuilderDashboardContent).toContainText(text, {timeout: 10000});\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class ObjectTypesApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ getAll(): Promise<any>;
6
+ getIdByName(name: string): Promise<any>;
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectTypesApiHelper = void 0;
4
+ class ObjectTypesApiHelper {
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/object-types?skip=0&take=10000');
11
+ return await response.json();
12
+ }
13
+ async getIdByName(name) {
14
+ const response = await this.getAll();
15
+ if (response.items === null)
16
+ return null;
17
+ for (const item of response.items) {
18
+ if (item.name == name) {
19
+ return item.id;
20
+ }
21
+ }
22
+ }
23
+ }
24
+ exports.ObjectTypesApiHelper = ObjectTypesApiHelper;
25
+ //# sourceMappingURL=ObjectTypesApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectTypesApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ObjectTypesApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAC/B,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,2DAA2D,CAAC,CAAC;QACpH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;YACzB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAO,IAAI,CAAC,EAAE,CAAC;aAChB;SACF;IACH,CAAC;CACF;AAtBD,oDAsBC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ObjectTypesApiHelper {\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/object-types?skip=0&take=10000');\n return await response.json(); \n }\n\n async getIdByName(name: string) {\n const response = await this.getAll();\n if (response.items === null) \n return null;\n for (const item of response.items) {\n if (item.name == name) {\n return item.id;\n }\n }\n }\n}"]}
@@ -3,8 +3,8 @@ export declare class PackageApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
5
  ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
6
- exists(id: string): Promise<boolean>;
7
- nameExists(name: string): Promise<boolean>;
6
+ doesExist(id: string): Promise<boolean>;
7
+ doesNameExist(name: string): Promise<boolean>;
8
8
  create(name: string, contentLoadChildNodes?: boolean, mediaLoadChildNodes?: boolean, contentNodeId?: string, mediaIds?: string[], documentTypes?: any, mediaTypes?: any, dataTypes?: any, templates?: any, partialViews?: any, stylesheets?: any, scripts?: any, languages?: any, dictionaryItems?: any): Promise<string | undefined>;
9
9
  getByName(name: string): Promise<any>;
10
10
  get(id: string): Promise<any>;
@@ -12,4 +12,5 @@ export declare class PackageApiHelper {
12
12
  update(id: string, packageData: any): Promise<import("playwright-core").APIResponse>;
13
13
  delete(id: string): Promise<import("playwright-core").APIResponse>;
14
14
  download(id: string): Promise<string>;
15
+ createEmptyPackage(name: string): Promise<string | undefined>;
15
16
  }
@@ -18,11 +18,11 @@ class PackageApiHelper {
18
18
  }
19
19
  return null;
20
20
  }
21
- async exists(id) {
21
+ async doesExist(id) {
22
22
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);
23
23
  return response.status() === 200;
24
24
  }
25
- async nameExists(name) {
25
+ async doesNameExist(name) {
26
26
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');
27
27
  const json = await response.json();
28
28
  if (name !== null) {
@@ -34,7 +34,7 @@ class PackageApiHelper {
34
34
  }
35
35
  return false;
36
36
  }
37
- async create(name, contentLoadChildNodes = true, mediaLoadChildNodes = true, contentNodeId, mediaIds, documentTypes, mediaTypes, dataTypes, templates, partialViews, stylesheets, scripts, languages, dictionaryItems) {
37
+ async create(name, contentLoadChildNodes = false, mediaLoadChildNodes = false, contentNodeId, mediaIds, documentTypes, mediaTypes, dataTypes, templates, partialViews, stylesheets, scripts, languages, dictionaryItems) {
38
38
  const packageData = {
39
39
  "name": name,
40
40
  "contentNodeId": contentNodeId,
@@ -114,6 +114,9 @@ class PackageApiHelper {
114
114
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id + '/download');
115
115
  return await response.text();
116
116
  }
117
+ async createEmptyPackage(name) {
118
+ return await this.create(name);
119
+ }
117
120
  }
118
121
  exports.PackageApiHelper = PackageApiHelper;
119
122
  //# sourceMappingURL=PackageApiHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PackageApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n return response.status() === 200;\n }\n\n async nameExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n }\n return false;\n }\n\n async create(name: string, contentLoadChildNodes = true, mediaLoadChildNodes = true, contentNodeId?: string, mediaIds?: string[], documentTypes?, mediaTypes?, dataTypes?, templates?, partialViews?, stylesheets?, scripts?, languages?, dictionaryItems?) {\n const packageData = {\n \"name\": name,\n \"contentNodeId\": contentNodeId,\n \"contentLoadChildNodes\": contentLoadChildNodes,\n \"mediaIds\": mediaIds,\n \"mediaLoadChildNodes\": mediaLoadChildNodes,\n \"documentTypes\": [\n documentTypes\n ],\n \"mediaTypes\": [\n mediaTypes\n ],\n \"dataTypes\": [\n dataTypes\n ],\n \"templates\": [\n templates\n ],\n \"partialViews\": [\n partialViews\n ],\n \"stylesheets\": [\n stylesheets\n ],\n \"scripts\": [\n scripts\n ],\n \"languages\": [\n languages\n ],\n \"dictionaryItems\": [\n dictionaryItems\n ]\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/package/created', packageData);\n // Returns the id of the created package\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n return await response.json();\n }\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n \n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, packageData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id, packageData);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n }\n\n async download(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id + '/download');\n return await response.text();\n }\n}"]}
1
+ {"version":3,"file":"PackageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PackageApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n }\n }\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/package/created/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n }\n return false;\n }\n\n async create(name: string, contentLoadChildNodes = false, mediaLoadChildNodes = false, contentNodeId?: string, mediaIds?: string[], documentTypes?, mediaTypes?, dataTypes?, templates?, partialViews?, stylesheets?, scripts?, languages?, dictionaryItems?) {\n const packageData = {\n \"name\": name,\n \"contentNodeId\": contentNodeId,\n \"contentLoadChildNodes\": contentLoadChildNodes,\n \"mediaIds\": mediaIds,\n \"mediaLoadChildNodes\": mediaLoadChildNodes,\n \"documentTypes\": [\n documentTypes\n ],\n \"mediaTypes\": [\n mediaTypes\n ],\n \"dataTypes\": [\n dataTypes\n ],\n \"templates\": [\n templates\n ],\n \"partialViews\": [\n partialViews\n ],\n \"stylesheets\": [\n stylesheets\n ],\n \"scripts\": [\n scripts\n ],\n \"languages\": [\n languages\n ],\n \"dictionaryItems\": [\n dictionaryItems\n ]\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/package/created', packageData);\n // Returns the id of the created package\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n return await response.json();\n }\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, packageData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id, packageData);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n }\n\n async download(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id + '/download');\n return await response.text();\n }\n\n async createEmptyPackage(name: string) {\n return await this.create(name);\n }\n}"]}
@@ -0,0 +1,49 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class PackageUiHelper extends UiBaseLocators {
4
+ private readonly createdTabBtn;
5
+ private readonly marketPlaceIFrame;
6
+ private readonly installedTabBtn;
7
+ private readonly noPackagesHaveBeenInstalledTxt;
8
+ private readonly packagesTabBtn;
9
+ private readonly createPackageBtn;
10
+ private readonly packageNameTxt;
11
+ private readonly saveChangesToPackageBtn;
12
+ private readonly addContentToPackageBtn;
13
+ private readonly addMediaToPackageBtn;
14
+ private readonly addDocumentTypeToPackageBtn;
15
+ private readonly addMediaTypeToPackageBtn;
16
+ private readonly addLanguageToPackageBtn;
17
+ private readonly addDictionaryToPackageBtn;
18
+ private readonly addDataTypesToPackageBtn;
19
+ private readonly addTemplatesToPackagesBtn;
20
+ private readonly addPartialViewToPackageBtn;
21
+ private readonly addScriptToPackageBtn;
22
+ private readonly addStylesheetToPackageBtn;
23
+ private readonly downloadPackageBtn;
24
+ constructor(page: Page);
25
+ isTextNoPackagesHaveBeenInstalledVisible(isVisible?: boolean): Promise<void>;
26
+ clickCreatedTab(): Promise<void>;
27
+ clickInstalledTab(): Promise<void>;
28
+ clickPackagesTab(): Promise<void>;
29
+ clickChooseBtn(): Promise<void>;
30
+ isMarketPlaceIFrameVisible(isVisible?: boolean): Promise<void>;
31
+ clickCreatePackageButton(): Promise<void>;
32
+ enterPackageName(packageName: string): Promise<void>;
33
+ isPackageNameVisible(packageName: string, isVisible?: boolean): Promise<void>;
34
+ clickExistingPackageName(packageName: string): Promise<void>;
35
+ clickDeleteButtonForPackageName(packageName: string): Promise<void>;
36
+ clickSaveChangesToPackageButton(): Promise<void>;
37
+ clickAddContentToPackageButton(): Promise<void>;
38
+ clickAddMediaToPackageButton(): Promise<void>;
39
+ clickAddDocumentTypeToPackageButton(): Promise<void>;
40
+ clickAddMediaTypeToPackageButton(): Promise<void>;
41
+ clickAddLanguageToPackageButton(): Promise<void>;
42
+ clickAddDictionaryToPackageButton(): Promise<void>;
43
+ clickAddDataTypesToPackageButton(): Promise<void>;
44
+ clickAddTemplatesToPackageButton(): Promise<void>;
45
+ clickAddPartialViewToPackageButton(): Promise<void>;
46
+ clickAddScriptToPackageButton(): Promise<void>;
47
+ clickAddStylesheetToPackageButton(): Promise<void>;
48
+ downloadPackage(packageId: string): Promise<string>;
49
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PackageUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ const umbraco_config_1 = require("../../umbraco.config");
7
+ class PackageUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
+ createdTabBtn;
9
+ marketPlaceIFrame;
10
+ installedTabBtn;
11
+ noPackagesHaveBeenInstalledTxt;
12
+ packagesTabBtn;
13
+ createPackageBtn;
14
+ packageNameTxt;
15
+ saveChangesToPackageBtn;
16
+ addContentToPackageBtn;
17
+ addMediaToPackageBtn;
18
+ addDocumentTypeToPackageBtn;
19
+ addMediaTypeToPackageBtn;
20
+ addLanguageToPackageBtn;
21
+ addDictionaryToPackageBtn;
22
+ addDataTypesToPackageBtn;
23
+ addTemplatesToPackagesBtn;
24
+ addPartialViewToPackageBtn;
25
+ addScriptToPackageBtn;
26
+ addStylesheetToPackageBtn;
27
+ downloadPackageBtn;
28
+ constructor(page) {
29
+ super(page);
30
+ // Packages
31
+ this.packagesTabBtn = page.locator('#views').getByRole("tab", { name: 'Packages' });
32
+ this.marketPlaceIFrame = page.frameLocator('iframe[title="Umbraco Marketplace"]').locator('umb-market-app');
33
+ // Installed
34
+ this.installedTabBtn = page.getByRole("tab", { name: 'Installed' });
35
+ this.noPackagesHaveBeenInstalledTxt = page.getByText('No packages have been installed');
36
+ // Created
37
+ this.createdTabBtn = page.getByRole("tab", { name: 'Created' });
38
+ this.createPackageBtn = page.getByLabel("Create package");
39
+ this.packageNameTxt = page.getByLabel('Name of the package');
40
+ this.saveChangesToPackageBtn = page.getByLabel('Save changes to package');
41
+ this.addContentToPackageBtn = page.getByLabel('Add');
42
+ this.addMediaToPackageBtn = page.locator('umb-input-media').getByLabel('open');
43
+ this.addDocumentTypeToPackageBtn = page.locator('umb-input-document-types-picker').getByLabel('open');
44
+ this.addMediaTypeToPackageBtn = page.locator('umb-input-media-types-picker').getByLabel('open');
45
+ this.addLanguageToPackageBtn = page.locator('umb-input-language-picker').getByLabel('open');
46
+ this.addDictionaryToPackageBtn = page.locator('umb-input-dictionary-picker').getByLabel('open');
47
+ this.addDataTypesToPackageBtn = page.locator('umb-data-type-picker').getByLabel('open');
48
+ this.addTemplatesToPackagesBtn = page.locator('umb-template-picker').getByLabel('open');
49
+ this.addPartialViewToPackageBtn = page.locator('umb-partial-views-picker').getByLabel('open');
50
+ this.addScriptToPackageBtn = page.locator('umb-script-picker').getByLabel('open');
51
+ this.addStylesheetToPackageBtn = page.locator('umb-stylesheet-picker').getByLabel('open');
52
+ this.downloadPackageBtn = page.getByLabel('Download package');
53
+ }
54
+ async isTextNoPackagesHaveBeenInstalledVisible(isVisible = true) {
55
+ return await (0, test_1.expect)(this.noPackagesHaveBeenInstalledTxt).toBeVisible({ visible: isVisible });
56
+ }
57
+ async clickCreatedTab() {
58
+ await this.createdTabBtn.click({ force: true });
59
+ }
60
+ async clickInstalledTab() {
61
+ await this.installedTabBtn.click({ force: true });
62
+ }
63
+ async clickPackagesTab() {
64
+ await this.packagesTabBtn.click({ force: true });
65
+ }
66
+ async clickChooseBtn() {
67
+ await this.chooseModalBtn.click();
68
+ }
69
+ async isMarketPlaceIFrameVisible(isVisible = true) {
70
+ return await (0, test_1.expect)(this.marketPlaceIFrame).toBeVisible({ visible: isVisible });
71
+ }
72
+ async clickCreatePackageButton() {
73
+ await this.createPackageBtn.click();
74
+ }
75
+ async enterPackageName(packageName) {
76
+ await this.packageNameTxt.clear();
77
+ await this.packageNameTxt.fill(packageName);
78
+ }
79
+ async isPackageNameVisible(packageName, isVisible = true) {
80
+ return await (0, test_1.expect)(this.page.getByRole('button', { name: packageName })).toBeVisible({ visible: isVisible });
81
+ }
82
+ async clickExistingPackageName(packageName) {
83
+ await this.page.getByRole('button', { name: packageName }).click();
84
+ }
85
+ async clickDeleteButtonForPackageName(packageName) {
86
+ await this.page.locator('uui-ref-node-package', { hasText: packageName }).getByLabel('Delete package').click({ force: true });
87
+ }
88
+ async clickSaveChangesToPackageButton() {
89
+ await this.saveChangesToPackageBtn.click();
90
+ }
91
+ async clickAddContentToPackageButton() {
92
+ await this.addContentToPackageBtn.click({ force: true });
93
+ }
94
+ async clickAddMediaToPackageButton() {
95
+ await this.addMediaToPackageBtn.click({ force: true });
96
+ }
97
+ async clickAddDocumentTypeToPackageButton() {
98
+ await this.addDocumentTypeToPackageBtn.click({ force: true });
99
+ }
100
+ async clickAddMediaTypeToPackageButton() {
101
+ await this.addMediaTypeToPackageBtn.click({ force: true });
102
+ }
103
+ async clickAddLanguageToPackageButton() {
104
+ await this.addLanguageToPackageBtn.click({ force: true });
105
+ }
106
+ async clickAddDictionaryToPackageButton() {
107
+ await this.addDictionaryToPackageBtn.click({ force: true });
108
+ }
109
+ async clickAddDataTypesToPackageButton() {
110
+ await this.addDataTypesToPackageBtn.click({ force: true });
111
+ }
112
+ async clickAddTemplatesToPackageButton() {
113
+ await this.addTemplatesToPackagesBtn.click({ force: true });
114
+ }
115
+ async clickAddPartialViewToPackageButton() {
116
+ await this.addPartialViewToPackageBtn.click({ force: true });
117
+ }
118
+ async clickAddScriptToPackageButton() {
119
+ await this.addScriptToPackageBtn.click({ force: true });
120
+ }
121
+ async clickAddStylesheetToPackageButton() {
122
+ await this.addStylesheetToPackageBtn.click({ force: true });
123
+ }
124
+ // Downloads the package and converts it to a string
125
+ async downloadPackage(packageId) {
126
+ const responsePromise = this.page.waitForResponse(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/package/created/' + packageId + '/download');
127
+ await this.downloadPackageBtn.click({ force: true });
128
+ const response = await responsePromise;
129
+ const body = await response.body();
130
+ return body.toString().trim();
131
+ }
132
+ }
133
+ exports.PackageUiHelper = PackageUiHelper;
134
+ //# sourceMappingURL=PackageUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page,} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {umbracoConfig} from \"../../umbraco.config\";\n\nexport class PackageUiHelper extends UiBaseLocators {\n private readonly createdTabBtn: Locator;\n private readonly marketPlaceIFrame: Locator;\n private readonly installedTabBtn: Locator;\n private readonly noPackagesHaveBeenInstalledTxt: Locator;\n private readonly packagesTabBtn: Locator;\n private readonly createPackageBtn: Locator;\n private readonly packageNameTxt: Locator;\n private readonly saveChangesToPackageBtn: Locator;\n private readonly addContentToPackageBtn: Locator;\n private readonly addMediaToPackageBtn: Locator;\n private readonly addDocumentTypeToPackageBtn: Locator;\n private readonly addMediaTypeToPackageBtn: Locator;\n private readonly addLanguageToPackageBtn: Locator;\n private readonly addDictionaryToPackageBtn: Locator;\n private readonly addDataTypesToPackageBtn: Locator;\n private readonly addTemplatesToPackagesBtn: Locator;\n private readonly addPartialViewToPackageBtn: Locator;\n private readonly addScriptToPackageBtn: Locator;\n private readonly addStylesheetToPackageBtn: Locator;\n private readonly downloadPackageBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n // Packages\n this.packagesTabBtn = page.locator('#views').getByRole(\"tab\", {name: 'Packages'});\n this.marketPlaceIFrame = page.frameLocator('iframe[title=\"Umbraco Marketplace\"]').locator('umb-market-app');\n // Installed\n this.installedTabBtn = page.getByRole(\"tab\", {name: 'Installed'});\n this.noPackagesHaveBeenInstalledTxt = page.getByText('No packages have been installed');\n // Created\n this.createdTabBtn = page.getByRole(\"tab\", {name: 'Created'});\n this.createPackageBtn = page.getByLabel(\"Create package\");\n this.packageNameTxt = page.getByLabel('Name of the package');\n this.saveChangesToPackageBtn = page.getByLabel('Save changes to package');\n this.addContentToPackageBtn = page.getByLabel('Add');\n this.addMediaToPackageBtn = page.locator('umb-input-media').getByLabel('open');\n this.addDocumentTypeToPackageBtn = page.locator('umb-input-document-types-picker').getByLabel('open');\n this.addMediaTypeToPackageBtn = page.locator('umb-input-media-types-picker').getByLabel('open');\n this.addLanguageToPackageBtn = page.locator('umb-input-language-picker').getByLabel('open');\n this.addDictionaryToPackageBtn = page.locator('umb-input-dictionary-picker').getByLabel('open');\n this.addDataTypesToPackageBtn = page.locator('umb-data-type-picker').getByLabel('open');\n this.addTemplatesToPackagesBtn = page.locator('umb-template-picker').getByLabel('open');\n this.addPartialViewToPackageBtn = page.locator('umb-partial-views-picker').getByLabel('open');\n this.addScriptToPackageBtn = page.locator('umb-script-picker').getByLabel('open');\n this.addStylesheetToPackageBtn = page.locator('umb-stylesheet-picker').getByLabel('open');\n this.downloadPackageBtn = page.getByLabel('Download package');\n }\n\n async isTextNoPackagesHaveBeenInstalledVisible(isVisible = true) {\n return await expect(this.noPackagesHaveBeenInstalledTxt).toBeVisible({visible: isVisible});\n }\n\n async clickCreatedTab() {\n await this.createdTabBtn.click({force: true});\n }\n\n async clickInstalledTab() {\n await this.installedTabBtn.click({force: true});\n }\n\n async clickPackagesTab() {\n await this.packagesTabBtn.click({force: true});\n }\n\n async clickChooseBtn() {\n await this.chooseModalBtn.click();\n }\n\n async isMarketPlaceIFrameVisible(isVisible = true) {\n return await expect(this.marketPlaceIFrame).toBeVisible({visible: isVisible});\n }\n\n async clickCreatePackageButton() {\n await this.createPackageBtn.click();\n }\n\n async enterPackageName(packageName: string) {\n await this.packageNameTxt.clear();\n await this.packageNameTxt.fill(packageName);\n }\n\n async isPackageNameVisible(packageName: string, isVisible = true) {\n return await expect(this.page.getByRole('button', {name: packageName})).toBeVisible({visible: isVisible});\n }\n\n async clickExistingPackageName(packageName: string) {\n await this.page.getByRole('button', {name: packageName}).click();\n }\n\n async clickDeleteButtonForPackageName(packageName: string) {\n await this.page.locator('uui-ref-node-package', {hasText: packageName}).getByLabel('Delete package').click({force: true});\n }\n\n async clickSaveChangesToPackageButton() {\n await this.saveChangesToPackageBtn.click();\n }\n\n async clickAddContentToPackageButton() {\n await this.addContentToPackageBtn.click({force: true});\n }\n\n async clickAddMediaToPackageButton() {\n await this.addMediaToPackageBtn.click({force: true});\n }\n\n async clickAddDocumentTypeToPackageButton() {\n await this.addDocumentTypeToPackageBtn.click({force: true});\n }\n\n async clickAddMediaTypeToPackageButton() {\n await this.addMediaTypeToPackageBtn.click({force: true});\n }\n\n async clickAddLanguageToPackageButton() {\n await this.addLanguageToPackageBtn.click({force: true});\n }\n\n async clickAddDictionaryToPackageButton() {\n await this.addDictionaryToPackageBtn.click({force: true});\n }\n\n async clickAddDataTypesToPackageButton() {\n await this.addDataTypesToPackageBtn.click({force: true});\n }\n\n async clickAddTemplatesToPackageButton() {\n await this.addTemplatesToPackagesBtn.click({force: true});\n }\n\n async clickAddPartialViewToPackageButton() {\n await this.addPartialViewToPackageBtn.click({force: true});\n }\n\n async clickAddScriptToPackageButton() {\n await this.addScriptToPackageBtn.click({force: true});\n }\n\n async clickAddStylesheetToPackageButton() {\n await this.addStylesheetToPackageBtn.click({force: true});\n }\n\n // Downloads the package and converts it to a string\n async downloadPackage(packageId: string) {\n const responsePromise = this.page.waitForResponse(umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/package/created/' + packageId + '/download');\n await this.downloadPackageBtn.click({force: true});\n const response = await responsePromise;\n const body = await response.body();\n return body.toString().trim();\n }\n}"]}
@@ -4,8 +4,9 @@ export declare class PartialViewApiHelper {
4
4
  constructor(api: ApiHelpers);
5
5
  get(path: string): Promise<any>;
6
6
  doesExist(path: string): Promise<boolean>;
7
- create(name: string, content: string, parentPath?: string): Promise<string | undefined>;
8
- update(partialView: any): Promise<import("playwright-core").APIResponse>;
7
+ create(name: string, content: string, parentPath?: string): Promise<string>;
8
+ updateContent(path: string, content: string): Promise<import("playwright-core").APIResponse>;
9
+ updateName(path: string, name: string): Promise<string>;
9
10
  delete(path: string): Promise<import("playwright-core").APIResponse>;
10
11
  doesNameExist(name: string): Promise<any>;
11
12
  getChildren(path: string): Promise<any>;
@@ -16,7 +17,7 @@ export declare class PartialViewApiHelper {
16
17
  private recurseDeleteChildren;
17
18
  getFolder(path: string): Promise<any>;
18
19
  doesFolderExist(path: string): Promise<boolean>;
19
- createFolder(name: string, parentPath?: string): Promise<any>;
20
+ createFolder(name: string, parentPath?: string): Promise<string>;
20
21
  deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
21
- getFolderChildren(path: string): Promise<any>;
22
+ createDefaultPartialView(name: string): Promise<string>;
22
23
  }