@umbraco/playwright-testhelpers 2.0.0-beta.9 → 2.0.0-beta.91

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 (194) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +53 -4
  2. package/dist/lib/helpers/ApiHelpers.js +260 -9
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/ContentRenderUiHelper.d.ts +8 -0
  5. package/dist/lib/helpers/ContentRenderUiHelper.js +21 -0
  6. package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -0
  7. package/dist/lib/helpers/ContentUiHelper.d.ts +190 -0
  8. package/dist/lib/helpers/ContentUiHelper.js +569 -0
  9. package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
  10. package/dist/lib/helpers/DataTypeApiHelper.d.ts +96 -14
  11. package/dist/lib/helpers/DataTypeApiHelper.js +841 -130
  12. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  13. package/dist/lib/helpers/DataTypeUiHelper.d.ts +266 -0
  14. package/dist/lib/helpers/DataTypeUiHelper.js +850 -0
  15. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
  16. package/dist/lib/helpers/DictionaryApiHelper.d.ts +2 -1
  17. package/dist/lib/helpers/DictionaryApiHelper.js +17 -4
  18. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
  19. package/dist/lib/helpers/DictionaryUiHelper.d.ts +7 -9
  20. package/dist/lib/helpers/DictionaryUiHelper.js +33 -33
  21. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
  22. package/dist/lib/helpers/DocumentApiHelper.d.ts +39 -0
  23. package/dist/lib/helpers/DocumentApiHelper.js +388 -0
  24. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
  25. package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +18 -0
  26. package/dist/lib/helpers/DocumentBlueprintApiHelper.js +126 -0
  27. package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -0
  28. package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +18 -0
  29. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +54 -0
  30. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -0
  31. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +43 -0
  32. package/dist/lib/helpers/DocumentTypeApiHelper.js +577 -0
  33. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
  34. package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +35 -0
  35. package/dist/lib/helpers/DocumentTypeUiHelper.js +98 -0
  36. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
  37. package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
  38. package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
  39. package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
  40. package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
  41. package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
  42. package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
  43. package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
  44. package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
  45. package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
  46. package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
  47. package/dist/lib/helpers/IndexerApiHelper.js +19 -0
  48. package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
  49. package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
  50. package/dist/lib/helpers/LanguageApiHelper.js +46 -26
  51. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
  52. package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
  53. package/dist/lib/helpers/LanguageUiHelper.js +68 -0
  54. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
  55. package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
  56. package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
  57. package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
  58. package/dist/lib/helpers/LoginApiHelper.d.ts +17 -0
  59. package/dist/lib/helpers/LoginApiHelper.js +105 -0
  60. package/dist/lib/helpers/LoginApiHelper.js.map +1 -0
  61. package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
  62. package/dist/lib/helpers/LoginUiHelper.js +30 -0
  63. package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
  64. package/dist/lib/helpers/MediaApiHelper.d.ts +32 -0
  65. package/dist/lib/helpers/MediaApiHelper.js +245 -0
  66. package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
  67. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
  68. package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
  69. package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
  70. package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
  71. package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
  72. package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
  73. package/dist/lib/helpers/MediaUiHelper.d.ts +54 -0
  74. package/dist/lib/helpers/MediaUiHelper.js +158 -0
  75. package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
  76. package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
  77. package/dist/lib/helpers/MemberApiHelper.js +88 -0
  78. package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
  79. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
  80. package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
  81. package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
  82. package/dist/lib/helpers/MemberGroupUiHelper.d.ts +17 -0
  83. package/dist/lib/helpers/MemberGroupUiHelper.js +48 -0
  84. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
  85. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
  86. package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
  87. package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
  88. package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
  89. package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
  90. package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
  91. package/dist/lib/helpers/MemberUiHelper.d.ts +42 -0
  92. package/dist/lib/helpers/MemberUiHelper.js +120 -0
  93. package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
  94. package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
  95. package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
  96. package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
  97. package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
  98. package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
  99. package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
  100. package/dist/lib/helpers/NotificationConstantHelper.d.ts +30 -0
  101. package/dist/lib/helpers/NotificationConstantHelper.js +35 -0
  102. package/dist/lib/helpers/NotificationConstantHelper.js.map +1 -0
  103. package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
  104. package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
  105. package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
  106. package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
  107. package/dist/lib/helpers/PackageApiHelper.js +6 -3
  108. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  109. package/dist/lib/helpers/PackageUiHelper.d.ts +50 -0
  110. package/dist/lib/helpers/PackageUiHelper.js +140 -0
  111. package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
  112. package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -4
  113. package/dist/lib/helpers/PartialViewApiHelper.js +36 -30
  114. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  115. package/dist/lib/helpers/PartialViewUiHelper.d.ts +7 -11
  116. package/dist/lib/helpers/PartialViewUiHelper.js +27 -36
  117. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  118. package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
  119. package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
  120. package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
  121. package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
  122. package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
  123. package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
  124. package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
  125. package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
  126. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
  127. package/dist/lib/helpers/RedirectManagementApiHelper.d.ts +10 -0
  128. package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
  129. package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
  130. package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
  131. package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
  132. package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -0
  133. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
  134. package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
  135. package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
  136. package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
  137. package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
  138. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
  139. package/dist/lib/helpers/ScriptApiHelper.d.ts +5 -3
  140. package/dist/lib/helpers/ScriptApiHelper.js +43 -26
  141. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  142. package/dist/lib/helpers/ScriptUiHelper.d.ts +8 -12
  143. package/dist/lib/helpers/ScriptUiHelper.js +31 -40
  144. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
  145. package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
  146. package/dist/lib/helpers/StylesheetApiHelper.js +48 -41
  147. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  148. package/dist/lib/helpers/StylesheetUiHelper.d.ts +17 -15
  149. package/dist/lib/helpers/StylesheetUiHelper.js +60 -47
  150. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  151. package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
  152. package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
  153. package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
  154. package/dist/lib/helpers/TemplateApiHelper.d.ts +5 -0
  155. package/dist/lib/helpers/TemplateApiHelper.js +68 -0
  156. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  157. package/dist/lib/helpers/TemplateUiHelper.d.ts +14 -18
  158. package/dist/lib/helpers/TemplateUiHelper.js +65 -59
  159. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
  160. package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +17 -1
  161. package/dist/lib/helpers/TemporaryFileApiHelper.js +23 -10
  162. package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
  163. package/dist/lib/helpers/UiBaseLocators.d.ts +217 -10
  164. package/dist/lib/helpers/UiBaseLocators.js +718 -40
  165. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  166. package/dist/lib/helpers/UiHelpers.d.ts +51 -7
  167. package/dist/lib/helpers/UiHelpers.js +78 -21
  168. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  169. package/dist/lib/helpers/UserApiHelper.d.ts +28 -11
  170. package/dist/lib/helpers/UserApiHelper.js +123 -21
  171. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  172. package/dist/lib/helpers/UserGroupApiHelper.d.ts +8 -3
  173. package/dist/lib/helpers/UserGroupApiHelper.js +52 -19
  174. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  175. package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
  176. package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
  177. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
  178. package/dist/lib/helpers/UserUiHelper.d.ts +73 -0
  179. package/dist/lib/helpers/UserUiHelper.js +199 -0
  180. package/dist/lib/helpers/UserUiHelper.js.map +1 -0
  181. package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
  182. package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
  183. package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
  184. package/dist/lib/helpers/index.d.ts +1 -0
  185. package/dist/lib/helpers/index.js +3 -1
  186. package/dist/lib/helpers/index.js.map +1 -1
  187. package/dist/lib/helpers/testExtension.js +5 -0
  188. package/dist/lib/helpers/testExtension.js.map +1 -1
  189. package/dist/tsconfig.tsbuildinfo +1 -1
  190. package/dist/umbraco.config.js +1 -1
  191. package/dist/umbraco.config.js.map +1 -1
  192. package/package.json +9 -11
  193. package/dist/lib/helpers/RelationType.d.ts +0 -15
  194. package/dist/lib/helpers/RelationType.js.map +0 -1
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaUiHelper = void 0;
4
+ const UiBaseLocators_1 = require("./UiBaseLocators");
5
+ const test_1 = require("@playwright/test");
6
+ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ createMediaItemBtn;
8
+ mediaNameTxt;
9
+ actionModalCreateBtn;
10
+ mediaSearchTxt;
11
+ trashBtn;
12
+ restoreThreeDotsBtn;
13
+ emptyRecycleBinThreeDotsBtn;
14
+ restoreBtn;
15
+ confirmEmptyRecycleBinBtn;
16
+ mediaSectionCreateBtn;
17
+ mediaListHeader;
18
+ mediaCardItemsValues;
19
+ mediaListView;
20
+ mediaGridView;
21
+ mediaListNameValues;
22
+ bulkTrashBtn;
23
+ bulkMoveToBtn;
24
+ mediaHeader;
25
+ mediaHeaderActionsMenu;
26
+ mediaTreeItem;
27
+ constructor(page) {
28
+ super(page);
29
+ this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');
30
+ this.mediaNameTxt = page.locator('#name-input #input');
31
+ this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');
32
+ this.mediaSearchTxt = page.getByLabel('Search', { exact: true });
33
+ this.trashBtn = page.getByLabel('Trash', { exact: true });
34
+ this.restoreThreeDotsBtn = page.getByRole('button', { name: 'Restore...' });
35
+ this.emptyRecycleBinThreeDotsBtn = page.getByLabel('Empty Recycle Bin...', { exact: true });
36
+ this.restoreBtn = page.getByLabel('Restore', { exact: true });
37
+ this.confirmEmptyRecycleBinBtn = page.getByLabel('Empty Recycle Bin', { exact: true });
38
+ this.mediaSectionCreateBtn = this.page.locator('#header').filter({ hasText: 'Media' }).getByLabel('#actions_create');
39
+ this.mediaListView = this.page.locator('umb-media-table-collection-view');
40
+ this.mediaGridView = this.page.locator('umb-media-grid-collection-view');
41
+ this.mediaListHeader = this.mediaListView.locator('uui-table-head-cell span');
42
+ this.mediaCardItemsValues = this.mediaCardItems.locator('span');
43
+ this.mediaListNameValues = this.mediaListView.locator('umb-media-table-column-name span');
44
+ this.bulkTrashBtn = page.locator('umb-entity-bulk-action uui-button').filter({ hasText: 'Trash' });
45
+ this.bulkMoveToBtn = page.locator('umb-entity-bulk-action uui-button').filter({ hasText: 'Move to' });
46
+ this.mediaHeader = page.getByRole('heading', { name: 'Media' });
47
+ this.mediaHeaderActionsMenu = page.locator('#header >> [label="Open actions menu"]');
48
+ this.mediaTreeItem = page.locator('umb-media-tree-item');
49
+ }
50
+ async clickCreateMediaItemButton() {
51
+ await this.createMediaItemBtn.click();
52
+ }
53
+ async enterMediaItemName(name) {
54
+ await this.mediaNameTxt.clear();
55
+ await this.mediaNameTxt.fill(name);
56
+ }
57
+ async clickMediaTypeWithNameButton(mediaTypeName) {
58
+ await this.page.getByLabel(mediaTypeName, { exact: true }).click();
59
+ }
60
+ async searchForMediaItemByName(name) {
61
+ await this.mediaSearchTxt.clear();
62
+ await this.mediaSearchTxt.fill(name);
63
+ }
64
+ async doesMediaCardsContainAmount(count) {
65
+ await (0, test_1.expect)(this.mediaCardItems).toHaveCount(count);
66
+ }
67
+ async doesMediaCardContainText(name) {
68
+ await (0, test_1.expect)(this.mediaCardItems).toContainText(name);
69
+ }
70
+ async clickTrashButton() {
71
+ await this.trashBtn.click();
72
+ }
73
+ async restoreMediaItem(name) {
74
+ await this.clickActionsMenuForName(name);
75
+ await this.restoreThreeDotsBtn.click();
76
+ await this.page.waitForTimeout(1000);
77
+ await this.restoreBtn.click();
78
+ }
79
+ async deleteMediaItem(name) {
80
+ await this.clickActionsMenuForName(name);
81
+ await this.clickDeleteButton();
82
+ await this.clickConfirmToDeleteButton();
83
+ }
84
+ async clickCreateMediaWithType(mediaTypeName) {
85
+ await this.mediaSectionCreateBtn.click({ force: true });
86
+ await this.clickMediaTypeName(mediaTypeName);
87
+ }
88
+ async clickMediaTypeName(mediaTypeName) {
89
+ await this.documentTypeNode.filter({ hasText: mediaTypeName }).click();
90
+ }
91
+ async clickEmptyRecycleBinButton() {
92
+ await this.emptyRecycleBinThreeDotsBtn.click({ force: true });
93
+ }
94
+ async clickConfirmEmptyRecycleBinButton() {
95
+ await this.confirmEmptyRecycleBinBtn.click();
96
+ }
97
+ async clickCreateModalButton() {
98
+ await this.actionModalCreateBtn.click();
99
+ }
100
+ async clickMediaCaretButtonForName(name) {
101
+ await this.page.locator('umb-media-tree-item [label="' + name + '"]').locator('#caret-button').click();
102
+ }
103
+ async doesMediaGridValuesMatch(expectedValues) {
104
+ return expectedValues.forEach((text, index) => {
105
+ (0, test_1.expect)(this.mediaCardItemsValues.nth(index)).toHaveText(text);
106
+ });
107
+ }
108
+ async doesMediaListHeaderValuesMatch(expectedValues) {
109
+ return expectedValues.forEach((text, index) => {
110
+ (0, test_1.expect)(this.mediaListHeader.nth(index)).toHaveText(text);
111
+ });
112
+ }
113
+ async doesMediaListNameValuesMatch(expectedValues) {
114
+ return expectedValues.forEach((text, index) => {
115
+ (0, test_1.expect)(this.mediaListNameValues.nth(index)).toHaveText(text);
116
+ });
117
+ }
118
+ async isMediaGridViewVisible(isVisible = true) {
119
+ return (0, test_1.expect)(this.mediaGridView).toBeVisible({ visible: isVisible });
120
+ }
121
+ async isMediaListViewVisible(isVisible = true) {
122
+ return (0, test_1.expect)(this.mediaListView).toBeVisible({ visible: isVisible });
123
+ }
124
+ async selectMediaByName(name) {
125
+ await this.mediaCardItems.filter({ hasText: name }).click();
126
+ }
127
+ async clickBulkTrashButton() {
128
+ await this.bulkTrashBtn.click();
129
+ }
130
+ async clickBulkMoveToButton() {
131
+ await this.bulkMoveToBtn.click();
132
+ }
133
+ async clickModalTextByName(name) {
134
+ await this.sidebarModal.getByLabel(name, { exact: true }).click();
135
+ }
136
+ async reloadMediaTree() {
137
+ // Waits until the tree item is visible
138
+ await (0, test_1.expect)(this.mediaHeader).toBeVisible();
139
+ await this.page.waitForTimeout(500);
140
+ await this.mediaHeader.click();
141
+ await this.mediaHeaderActionsMenu.click();
142
+ await this.clickReloadButton();
143
+ }
144
+ async isMediaVisible(name, isVisible = true) {
145
+ return (0, test_1.expect)(this.mediaTreeItem.getByLabel(name, { exact: true })).toBeVisible({ visible: isVisible });
146
+ }
147
+ async isChildMediaVisible(parentName, childName, isVisible = true) {
148
+ return (0, test_1.expect)(this.mediaTreeItem.filter({ hasText: parentName }).getByLabel(childName)).toBeVisible({ visible: isVisible });
149
+ }
150
+ async clickCaretButtonForMediaName(name) {
151
+ await this.mediaTreeItem.filter({ hasText: name }).last().locator('#caret-button').last().click();
152
+ }
153
+ async goToMediaWithName(mediaName) {
154
+ await this.mediaTreeItem.getByText(mediaName, { exact: true }).click();
155
+ }
156
+ }
157
+ exports.MediaUiHelper = MediaUiHelper;
158
+ //# sourceMappingURL=MediaUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class MediaUiHelper extends UiBaseLocators {\n private readonly createMediaItemBtn: Locator;\n private readonly mediaNameTxt: Locator;\n private readonly actionModalCreateBtn: Locator;\n private readonly mediaSearchTxt: Locator;\n private readonly trashBtn: Locator;\n private readonly restoreThreeDotsBtn: Locator;\n private readonly emptyRecycleBinThreeDotsBtn: Locator;\n private readonly restoreBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly mediaSectionCreateBtn: Locator;\n private readonly mediaListHeader: Locator;\n private readonly mediaCardItemsValues: Locator;\n private readonly mediaListView: Locator;\n private readonly mediaGridView: Locator;\n private readonly mediaListNameValues: Locator;\n private readonly bulkTrashBtn: Locator;\n private readonly bulkMoveToBtn: Locator;\n private readonly mediaHeader: Locator;\n private readonly mediaHeaderActionsMenu: Locator;\n private readonly mediaTreeItem: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');\n this.mediaNameTxt = page.locator('#name-input #input');\n this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');\n this.mediaSearchTxt = page.getByLabel('Search', {exact: true});\n this.trashBtn = page.getByLabel('Trash', {exact: true});\n this.restoreThreeDotsBtn = page.getByRole('button', {name: 'Restore...'});\n this.emptyRecycleBinThreeDotsBtn = page.getByLabel('Empty Recycle Bin...', {exact: true});\n this.restoreBtn = page.getByLabel('Restore', {exact: true});\n this.confirmEmptyRecycleBinBtn = page.getByLabel('Empty Recycle Bin', {exact: true});\n this.mediaSectionCreateBtn = this.page.locator('#header').filter({hasText: 'Media'}).getByLabel('#actions_create');\n this.mediaListView = this.page.locator('umb-media-table-collection-view');\n this.mediaGridView = this.page.locator('umb-media-grid-collection-view');\n this.mediaListHeader = this.mediaListView.locator('uui-table-head-cell span');\n this.mediaCardItemsValues = this.mediaCardItems.locator('span');\n this.mediaListNameValues = this.mediaListView.locator('umb-media-table-column-name span');\n this.bulkTrashBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Trash'});\n this.bulkMoveToBtn = page.locator('umb-entity-bulk-action uui-button').filter({hasText: 'Move to'});\n this.mediaHeader = page.getByRole('heading', {name: 'Media'});\n this.mediaHeaderActionsMenu = page.locator('#header >> [label=\"Open actions menu\"]');\n this.mediaTreeItem = page.locator('umb-media-tree-item');\n }\n\n async clickCreateMediaItemButton() {\n await this.createMediaItemBtn.click();\n }\n\n async enterMediaItemName(name: string) {\n await this.mediaNameTxt.clear();\n await this.mediaNameTxt.fill(name);\n }\n\n async clickMediaTypeWithNameButton(mediaTypeName: string) {\n await this.page.getByLabel(mediaTypeName, {exact: true}).click();\n }\n\n async searchForMediaItemByName(name: string) {\n await this.mediaSearchTxt.clear();\n await this.mediaSearchTxt.fill(name);\n }\n\n async doesMediaCardsContainAmount(count: number) {\n await expect(this.mediaCardItems).toHaveCount(count);\n }\n\n async doesMediaCardContainText(name: string) {\n await expect(this.mediaCardItems).toContainText(name);\n }\n\n async clickTrashButton() {\n await this.trashBtn.click();\n }\n\n async restoreMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.restoreThreeDotsBtn.click();\n await this.page.waitForTimeout(1000);\n await this.restoreBtn.click();\n }\n\n async deleteMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.clickDeleteButton();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickCreateMediaWithType(mediaTypeName: string) {\n await this.mediaSectionCreateBtn.click({force: true});\n await this.clickMediaTypeName(mediaTypeName);\n }\n\n async clickMediaTypeName(mediaTypeName: string) {\n await this.documentTypeNode.filter({hasText: mediaTypeName}).click();\n }\n\n async clickEmptyRecycleBinButton() {\n await this.emptyRecycleBinThreeDotsBtn.click({force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.confirmEmptyRecycleBinBtn.click();\n }\n\n async clickCreateModalButton() {\n await this.actionModalCreateBtn.click();\n }\n\n async clickMediaCaretButtonForName(name: string) {\n await this.page.locator('umb-media-tree-item [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async doesMediaGridValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaCardItemsValues.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListHeaderValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListHeader.nth(index)).toHaveText(text);\n });\n }\n\n async doesMediaListNameValuesMatch(expectedValues: string[]) {\n return expectedValues.forEach((text, index) => {\n expect(this.mediaListNameValues.nth(index)).toHaveText(text);\n });\n }\n\n async isMediaGridViewVisible(isVisible: boolean = true) {\n return expect(this.mediaGridView).toBeVisible({visible: isVisible});\n }\n\n async isMediaListViewVisible(isVisible: boolean = true) {\n return expect(this.mediaListView).toBeVisible({visible: isVisible});\n }\n\n async selectMediaByName(name: string) {\n await this.mediaCardItems.filter({hasText: name}).click();\n }\n\n async clickBulkTrashButton() {\n await this.bulkTrashBtn.click();\n }\n\n async clickBulkMoveToButton() {\n await this.bulkMoveToBtn.click();\n }\n\n async clickModalTextByName(name: string) {\n await this.sidebarModal.getByLabel(name, {exact: true}).click();\n }\n\n async reloadMediaTree() {\n // Waits until the tree item is visible\n await expect(this.mediaHeader).toBeVisible();\n await this.page.waitForTimeout(500);\n await this.mediaHeader.click();\n await this.mediaHeaderActionsMenu.click()\n await this.clickReloadButton();\n }\n\n async isMediaVisible(name: string, isVisible: boolean = true) {\n return expect(this.mediaTreeItem.getByLabel(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async isChildMediaVisible(parentName: string, childName: string, isVisible: boolean = true) {\n return expect(this.mediaTreeItem.filter({hasText: parentName}).getByLabel(childName)).toBeVisible({visible: isVisible});\n }\n\n async clickCaretButtonForMediaName(name: string) {\n await this.mediaTreeItem.filter({hasText: name}).last().locator('#caret-button').last().click();\n }\n\n async goToMediaWithName(mediaName: string) {\n await this.mediaTreeItem.getByText(mediaName, {exact: true}).click();\n }\n}"]}
@@ -0,0 +1,16 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class MemberApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ get(id: string): Promise<any>;
6
+ create(member: any): Promise<string | undefined>;
7
+ delete(id: string): Promise<number | undefined>;
8
+ getAll(): Promise<import("playwright-core").APIResponse>;
9
+ filterByMemberTypeId(memberTypeId: string): Promise<import("playwright-core").APIResponse>;
10
+ doesExist(id: string): Promise<boolean>;
11
+ doesNameExist(name: string): Promise<any>;
12
+ getByName(name: string): Promise<any>;
13
+ ensureNameNotExists(name: string): Promise<number | null | undefined>;
14
+ createDefaultMember(memberName: string, memberTypeId: string, email: string, username: string, password: string): Promise<string | undefined>;
15
+ createMemberWithMemberGroup(memberName: string, memberTypeId: string, email: string, username: string, password: string, memberGroupId: string): Promise<string | undefined>;
16
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberApiHelper = void 0;
4
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
5
+ class MemberApiHelper {
6
+ api;
7
+ constructor(api) {
8
+ this.api = api;
9
+ }
10
+ async get(id) {
11
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
12
+ return await response.json();
13
+ }
14
+ async create(member) {
15
+ if (member == null) {
16
+ return;
17
+ }
18
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member', member);
19
+ return response.headers().location.split("v1/member/").pop();
20
+ }
21
+ async delete(id) {
22
+ if (id == null) {
23
+ return;
24
+ }
25
+ const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
26
+ return response.status();
27
+ }
28
+ async getAll() {
29
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/member?orderBy=username&skip=0&take=10000');
30
+ }
31
+ async filterByMemberTypeId(memberTypeId) {
32
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/member?memberTypeId=' + memberTypeId + '&orderBy=username&skip=0&take=100');
33
+ }
34
+ async doesExist(id) {
35
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);
36
+ return response.status() === 200;
37
+ }
38
+ async doesNameExist(name) {
39
+ return await this.getByName(name);
40
+ }
41
+ async getByName(name) {
42
+ const rootMembers = await this.getAll();
43
+ const jsonMembers = await rootMembers.json();
44
+ for (const member of jsonMembers.items) {
45
+ if (member.variants[0].name === name) {
46
+ return this.get(member.id);
47
+ }
48
+ }
49
+ return false;
50
+ }
51
+ async ensureNameNotExists(name) {
52
+ const rootMembers = await this.getAll();
53
+ const jsonMembers = await rootMembers.json();
54
+ for (const member of jsonMembers.items) {
55
+ if (member.variants[0].name === name) {
56
+ return this.delete(member.id);
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ async createDefaultMember(memberName, memberTypeId, email, username, password) {
62
+ const member = new json_models_builders_1.MemberBuilder()
63
+ .addVariant()
64
+ .withName(memberName)
65
+ .done()
66
+ .withEmail(email)
67
+ .withUsername(username)
68
+ .withPassword(password)
69
+ .withMemberTypeId(memberTypeId)
70
+ .build();
71
+ return await this.create(member);
72
+ }
73
+ async createMemberWithMemberGroup(memberName, memberTypeId, email, username, password, memberGroupId) {
74
+ const member = new json_models_builders_1.MemberBuilder()
75
+ .addVariant()
76
+ .withName(memberName)
77
+ .done()
78
+ .withEmail(email)
79
+ .withUsername(username)
80
+ .withPassword(password)
81
+ .withMemberTypeId(memberTypeId)
82
+ .addGroup(memberGroupId)
83
+ .build();
84
+ return await this.create(member);
85
+ }
86
+ }
87
+ exports.MemberApiHelper = MemberApiHelper;
88
+ //# sourceMappingURL=MemberApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberApiHelper.ts"],"names":[],"mappings":";;;AACA,wEAA4D;AAE5D,MAAa,eAAe;IAC1B,GAAG,CAAa;IAEhB,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oCAAoC,GAAG,EAAE,CAAC,CAAC;QAClG,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAM;QACjB,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mCAAmC,EAAE,MAAM,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oCAAoC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6EAA6E,CAAC,CAAC;IAC9H,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wDAAwD,GAAE,YAAY,GAAG,mCAAmC,CAAC,CAAC;IAC7J,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oCAAoC,GAAG,EAAE,CAAC,CAAC;QAClG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAC5B;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAC/B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAgB;QACnH,MAAM,MAAM,GAAG,IAAI,oCAAa,EAAE;aAC/B,UAAU,EAAE;aACV,QAAQ,CAAC,UAAU,CAAC;aACpB,IAAI,EAAE;aACR,SAAS,CAAC,KAAK,CAAC;aAChB,YAAY,CAAC,QAAQ,CAAC;aACtB,YAAY,CAAC,QAAQ,CAAC;aACtB,gBAAgB,CAAC,YAAY,CAAC;aAC9B,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAgB,EAAE,aAAqB;QAClJ,MAAM,MAAM,GAAG,IAAI,oCAAa,EAAE;aAC/B,UAAU,EAAE;aACV,QAAQ,CAAC,UAAU,CAAC;aACpB,IAAI,EAAE;aACR,SAAS,CAAC,KAAK,CAAC;aAChB,YAAY,CAAC,QAAQ,CAAC;aACtB,YAAY,CAAC,QAAQ,CAAC;aACtB,gBAAgB,CAAC,YAAY,CAAC;aAC9B,QAAQ,CAAC,aAAa,CAAC;aACvB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;AA/FD,0CA+FC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {MemberBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MemberApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);\n return await response.json();\n }\n\n async create(member) {\n if (member == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member', member);\n return response.headers().location.split(\"v1/member/\").pop();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);\n return response.status();\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/member?orderBy=username&skip=0&take=10000');\n }\n\n async filterByMemberTypeId(memberTypeId: string) {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/member?memberTypeId='+ memberTypeId + '&orderBy=username&skip=0&take=100');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootMembers = await this.getAll();\n const jsonMembers = await rootMembers.json();\n\n for (const member of jsonMembers.items) {\n if (member.variants[0].name === name) {\n return this.get(member.id);\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMembers = await this.getAll();\n const jsonMembers = await rootMembers.json();\n\n for (const member of jsonMembers.items) {\n if (member.variants[0].name === name) {\n return this.delete(member.id);\n }\n }\n return null;\n }\n\n async createDefaultMember(memberName: string, memberTypeId: string, email: string, username: string, password: string) {\n const member = new MemberBuilder()\n .addVariant()\n .withName(memberName)\n .done()\n .withEmail(email)\n .withUsername(username)\n .withPassword(password)\n .withMemberTypeId(memberTypeId)\n .build();\n return await this.create(member);\n }\n\n async createMemberWithMemberGroup(memberName: string, memberTypeId: string, email: string, username: string, password: string, memberGroupId: string) {\n const member = new MemberBuilder()\n .addVariant()\n .withName(memberName)\n .done()\n .withEmail(email)\n .withUsername(username)\n .withPassword(password)\n .withMemberTypeId(memberTypeId)\n .addGroup(memberGroupId)\n .build();\n return await this.create(member);\n }\n}"]}
@@ -0,0 +1,14 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class MemberGroupApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ get(id: string): Promise<any>;
6
+ create(name: string, id?: string): Promise<string | undefined>;
7
+ rename(id: string, name: string): Promise<import("playwright-core").APIResponse>;
8
+ delete(id: string): Promise<import("playwright-core").APIResponse>;
9
+ getAll(): Promise<import("playwright-core").APIResponse>;
10
+ doesExist(id: string): Promise<boolean>;
11
+ doesNameExist(name: string): Promise<any>;
12
+ getByName(name: string): Promise<any>;
13
+ ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
14
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberGroupApiHelper = void 0;
4
+ class MemberGroupApiHelper {
5
+ api;
6
+ constructor(api) {
7
+ this.api = api;
8
+ }
9
+ async get(id) {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
11
+ return await response.json();
12
+ }
13
+ async create(name, id) {
14
+ const memberGroupData = {
15
+ "name": name,
16
+ "id": id ? id : null,
17
+ };
18
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member-group', memberGroupData);
19
+ return response.headers().location.split("v1/member-group/").pop();
20
+ }
21
+ async rename(id, name) {
22
+ const memberGroupData = {
23
+ "name": name
24
+ };
25
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id, memberGroupData);
26
+ }
27
+ async delete(id) {
28
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
29
+ }
30
+ async getAll() {
31
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-group/root?skip=0&take=10000');
32
+ }
33
+ async doesExist(id) {
34
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);
35
+ return response.status() === 200;
36
+ }
37
+ async doesNameExist(name) {
38
+ return await this.getByName(name);
39
+ }
40
+ async getByName(name) {
41
+ const rootMemberGroups = await this.getAll();
42
+ const jsonMemberGroups = await rootMemberGroups.json();
43
+ for (const memberGroup of jsonMemberGroups.items) {
44
+ if (memberGroup.name === name) {
45
+ return this.get(memberGroup.id);
46
+ }
47
+ }
48
+ return false;
49
+ }
50
+ async ensureNameNotExists(name) {
51
+ const rootMemberGroups = await this.getAll();
52
+ const jsonMemberGroups = await rootMemberGroups.json();
53
+ for (const memberGroup of jsonMemberGroups.items) {
54
+ if (memberGroup.name === name) {
55
+ return this.delete(memberGroup.id);
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ }
61
+ exports.MemberGroupApiHelper = MemberGroupApiHelper;
62
+ //# sourceMappingURL=MemberGroupApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class MemberGroupApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);\n return await response.json();\n }\n\n async create(name: string, id?: string) {\n const memberGroupData = {\n \"name\": name,\n \"id\": id ? id : null,\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member-group', memberGroupData);\n return response.headers().location.split(\"v1/member-group/\").pop();\n }\n\n async rename(id: string, name: string) {\n const memberGroupData = {\n \"name\": name\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id, memberGroupData);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-group/root?skip=0&take=10000');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-group/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootMemberGroups = await this.getAll();\n const jsonMemberGroups = await rootMemberGroups.json();\n\n for (const memberGroup of jsonMemberGroups.items) {\n if (memberGroup.name === name) {\n return this.get(memberGroup.id);\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMemberGroups = await this.getAll();\n const jsonMemberGroups = await rootMemberGroups.json();\n\n for (const memberGroup of jsonMemberGroups.items) {\n if (memberGroup.name === name) {\n return this.delete(memberGroup.id);\n }\n }\n return null;\n }\n}"]}
@@ -0,0 +1,17 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class MemberGroupUiHelper extends UiBaseLocators {
4
+ private readonly memberGroupsTab;
5
+ private readonly memberGroupNameTxt;
6
+ private readonly actionsBtn;
7
+ private readonly memberGroupView;
8
+ private readonly activeMemberGroupsTab;
9
+ private readonly createMemberGroupBtn;
10
+ constructor(page: Page);
11
+ clickMemberGroupsTab(): Promise<void>;
12
+ clickMemberGroupCreateButton(): Promise<void>;
13
+ enterMemberGroupName(name: string): Promise<void>;
14
+ clickMemberGroupLinkByName(memberGroupName: string): Promise<void>;
15
+ clickActionsButton(): Promise<void>;
16
+ isMemberGroupNameVisible(memberGroupName: string, isVisible?: boolean): Promise<void>;
17
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberGroupUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ class MemberGroupUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
+ memberGroupsTab;
8
+ memberGroupNameTxt;
9
+ actionsBtn;
10
+ memberGroupView;
11
+ activeMemberGroupsTab;
12
+ createMemberGroupBtn;
13
+ constructor(page) {
14
+ super(page);
15
+ this.memberGroupsTab = page.locator('uui-tab[label="Member Groups"]');
16
+ this.memberGroupNameTxt = page.locator('input#input');
17
+ this.actionsBtn = page.getByLabel('Actions', { exact: true });
18
+ this.memberGroupView = page.locator('umb-member-group-table-collection-view');
19
+ this.activeMemberGroupsTab = page.locator('uui-tab[label="Member Groups"][active]');
20
+ this.createMemberGroupBtn = page.getByLabel('Create');
21
+ }
22
+ async clickMemberGroupsTab() {
23
+ await (0, test_1.expect)(this.memberGroupsTab).toBeVisible();
24
+ await this.page.waitForTimeout(500);
25
+ await this.memberGroupsTab.click();
26
+ await (0, test_1.expect)(this.activeMemberGroupsTab).toBeVisible();
27
+ }
28
+ async clickMemberGroupCreateButton() {
29
+ await (0, test_1.expect)(this.createMemberGroupBtn).toBeVisible();
30
+ await this.createMemberGroupBtn.click();
31
+ }
32
+ async enterMemberGroupName(name) {
33
+ await (0, test_1.expect)(this.memberGroupNameTxt).toBeVisible();
34
+ await this.memberGroupNameTxt.clear();
35
+ await this.memberGroupNameTxt.fill(name);
36
+ }
37
+ async clickMemberGroupLinkByName(memberGroupName) {
38
+ await this.page.getByRole('link', { name: memberGroupName }).click();
39
+ }
40
+ async clickActionsButton() {
41
+ await this.actionsBtn.click();
42
+ }
43
+ async isMemberGroupNameVisible(memberGroupName, isVisible = true) {
44
+ return (0, test_1.expect)(this.memberGroupView.filter({ hasText: memberGroupName })).toBeVisible({ visible: isVisible, timeout: 500 });
45
+ }
46
+ }
47
+ exports.MemberGroupUiHelper = MemberGroupUiHelper;
48
+ //# sourceMappingURL=MemberGroupUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,mBAAoB,SAAQ,+BAAc;IACpC,eAAe,CAAU;IACzB,kBAAkB,CAAU;IAC5B,UAAU,CAAU;IACpB,eAAe,CAAU;IACzB,qBAAqB,CAAU;IAC/B,oBAAoB,CAAU;IAE/C,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAC9E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACpF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,eAAuB;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,eAAe,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,eAAuB,EAAE,YAAqB,IAAI;QAC/E,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IACzH,CAAC;CACF;AA/CD,kDA+CC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class MemberGroupUiHelper extends UiBaseLocators {\n private readonly memberGroupsTab: Locator;\n private readonly memberGroupNameTxt: Locator;\n private readonly actionsBtn: Locator;\n private readonly memberGroupView: Locator;\n private readonly activeMemberGroupsTab: Locator;\n private readonly createMemberGroupBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.memberGroupsTab = page.locator('uui-tab[label=\"Member Groups\"]');\n this.memberGroupNameTxt = page.locator('input#input');\n this.actionsBtn = page.getByLabel('Actions', {exact: true});\n this.memberGroupView = page.locator('umb-member-group-table-collection-view');\n this.activeMemberGroupsTab = page.locator('uui-tab[label=\"Member Groups\"][active]');\n this.createMemberGroupBtn = page.getByLabel('Create');\n }\n\n async clickMemberGroupsTab() {\n await expect(this.memberGroupsTab).toBeVisible();\n await this.page.waitForTimeout(500);\n await this.memberGroupsTab.click();\n await expect(this.activeMemberGroupsTab).toBeVisible();\n }\n\n async clickMemberGroupCreateButton() {\n await expect(this.createMemberGroupBtn).toBeVisible();\n await this.createMemberGroupBtn.click();\n }\n\n async enterMemberGroupName(name: string) {\n await expect(this.memberGroupNameTxt).toBeVisible();\n await this.memberGroupNameTxt.clear();\n await this.memberGroupNameTxt.fill(name);\n }\n\n async clickMemberGroupLinkByName(memberGroupName: string) {\n await this.page.getByRole('link', {name: memberGroupName}).click();\n }\n\n async clickActionsButton() {\n await this.actionsBtn.click();\n }\n\n async isMemberGroupNameVisible(memberGroupName: string, isVisible: boolean = true) {\n return expect(this.memberGroupView.filter({hasText: memberGroupName})).toBeVisible({visible: isVisible, timeout: 500});\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class MemberTypeApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ ensureNameNotExists(name: string): Promise<number | null | undefined>;
6
+ create(memberType: any): Promise<string | undefined>;
7
+ update(id: string, updatedMemberType: any): Promise<import("playwright-core").APIResponse | undefined>;
8
+ get(id: string): Promise<any>;
9
+ delete(id: string): Promise<number | undefined>;
10
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
11
+ getByName(name: string): Promise<any>;
12
+ doesExist(id: string): Promise<boolean>;
13
+ doesNameExist(name: string): Promise<any>;
14
+ createDefaultMemberType(memberTypeName: string): Promise<string | undefined>;
15
+ createMemberTypeWithPropertyEditor(memberTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string): Promise<string | undefined>;
16
+ createMemberTypeWithTwoPropertyEditors(memberTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
17
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberTypeApiHelper = void 0;
4
+ const AliasHelper_1 = require("./AliasHelper");
5
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
6
+ class MemberTypeApiHelper {
7
+ api;
8
+ constructor(api) {
9
+ this.api = api;
10
+ }
11
+ async ensureNameNotExists(name) {
12
+ const rootMemberTypes = await this.getAllAtRoot();
13
+ const jsonMemberTypes = await rootMemberTypes.json();
14
+ for (const memberType of jsonMemberTypes.items) {
15
+ if (memberType.name === name) {
16
+ return await this.delete(memberType.id);
17
+ }
18
+ }
19
+ return null;
20
+ }
21
+ async create(memberType) {
22
+ if (memberType == null) {
23
+ return;
24
+ }
25
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member-type', memberType);
26
+ return response.headers().location.split("v1/member-type/").pop();
27
+ }
28
+ async update(id, updatedMemberType) {
29
+ if (updatedMemberType == null) {
30
+ return;
31
+ }
32
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id, updatedMemberType);
33
+ }
34
+ async get(id) {
35
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);
36
+ return await response.json();
37
+ }
38
+ async delete(id) {
39
+ if (id == null) {
40
+ return;
41
+ }
42
+ const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);
43
+ return response.status();
44
+ }
45
+ async getAllAtRoot() {
46
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-type/root?skip=0&take=10000');
47
+ }
48
+ async getByName(name) {
49
+ const rootMemberTypes = await this.getAllAtRoot();
50
+ const jsonMemberTypes = await rootMemberTypes.json();
51
+ for (const memberType of jsonMemberTypes.items) {
52
+ if (memberType.name === name) {
53
+ return this.get(memberType.id);
54
+ }
55
+ }
56
+ return false;
57
+ }
58
+ async doesExist(id) {
59
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);
60
+ return response.status() === 200;
61
+ }
62
+ async doesNameExist(name) {
63
+ return await this.getByName(name);
64
+ }
65
+ async createDefaultMemberType(memberTypeName) {
66
+ const memberType = new json_models_builders_1.MemberTypeBuilder()
67
+ .withName(memberTypeName)
68
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName))
69
+ .withAllowedAsRoot(true)
70
+ .build();
71
+ return await this.create(memberType);
72
+ }
73
+ async createMemberTypeWithPropertyEditor(memberTypeName, dataTypeName, dataTypeId, groupName = "GroupTest") {
74
+ const crypto = require('crypto');
75
+ const containerId = crypto.randomUUID();
76
+ const memberType = new json_models_builders_1.MemberTypeBuilder()
77
+ .withName(memberTypeName)
78
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName))
79
+ .addContainer()
80
+ .withName(groupName)
81
+ .withId(containerId)
82
+ .withType("Group")
83
+ .done()
84
+ .addProperty()
85
+ .withContainerId(containerId)
86
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName))
87
+ .withName(dataTypeName)
88
+ .withDataTypeId(dataTypeId)
89
+ .done()
90
+ .build();
91
+ return await this.create(memberType);
92
+ }
93
+ async createMemberTypeWithTwoPropertyEditors(memberTypeName, dataTypeNameOne, dataTypeIdOne, dataTypeNameTwo, dataTypeIdTwo, groupName = "GroupTest") {
94
+ const crypto = require('crypto');
95
+ const containerId = crypto.randomUUID();
96
+ const memberType = new json_models_builders_1.MemberTypeBuilder()
97
+ .withName(memberTypeName)
98
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName))
99
+ .addContainer()
100
+ .withName(groupName)
101
+ .withId(containerId)
102
+ .withType("Group")
103
+ .done()
104
+ .addProperty()
105
+ .withContainerId(containerId)
106
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameOne))
107
+ .withName(dataTypeNameOne)
108
+ .withDataTypeId(dataTypeIdOne)
109
+ .done()
110
+ .addProperty()
111
+ .withContainerId(containerId)
112
+ .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameTwo))
113
+ .withName(dataTypeNameTwo)
114
+ .withDataTypeId(dataTypeIdTwo)
115
+ .done()
116
+ .build();
117
+ return await this.create(memberType);
118
+ }
119
+ }
120
+ exports.MemberTypeApiHelper = MemberTypeApiHelper;
121
+ //# sourceMappingURL=MemberTypeApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {MemberTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MemberTypeApiHelper {\n api: ApiHelpers;\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMemberTypes = await this.getAllAtRoot();\n const jsonMemberTypes = await rootMemberTypes.json();\n\n for (const memberType of jsonMemberTypes.items) {\n if (memberType.name === name) {\n return await this.delete(memberType.id);\n }\n }\n return null;\n }\n\n async create(memberType) {\n if (memberType == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member-type', memberType);\n return response.headers().location.split(\"v1/member-type/\").pop();\n }\n\n async update(id: string, updatedMemberType) {\n if (updatedMemberType == null) {\n return;\n }\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id, updatedMemberType);\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);\n return await response.json();\n }\n\n async delete(id: string) {\n if (id == null) {\n return;\n }\n const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);\n return response.status();\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-type/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootMemberTypes = await this.getAllAtRoot();\n const jsonMemberTypes = await rootMemberTypes.json();\n\n for (const memberType of jsonMemberTypes.items) {\n if (memberType.name === name) {\n return this.get(memberType.id);\n }\n }\n return false;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async createDefaultMemberType(memberTypeName: string) {\n const memberType = new MemberTypeBuilder()\n .withName(memberTypeName)\n .withAlias(AliasHelper.toAlias(memberTypeName))\n .withAllowedAsRoot(true)\n .build();\n return await this.create(memberType);\n }\n\n async createMemberTypeWithPropertyEditor(memberTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string = \"GroupTest\")\n {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const memberType = new MemberTypeBuilder()\n .withName(memberTypeName)\n .withAlias(AliasHelper.toAlias(memberTypeName))\n .addContainer()\n .withName(groupName)\n .withId(containerId)\n .withType(\"Group\")\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withName(dataTypeName)\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(memberType);\n }\n\n async createMemberTypeWithTwoPropertyEditors(memberTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName: string = \"GroupTest\")\n {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const memberType = new MemberTypeBuilder()\n .withName(memberTypeName)\n .withAlias(AliasHelper.toAlias(memberTypeName))\n .addContainer()\n .withName(groupName)\n .withId(containerId)\n .withType(\"Group\")\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeNameOne))\n .withName(dataTypeNameOne)\n .withDataTypeId(dataTypeIdOne)\n .done()\n .addProperty()\n .withContainerId(containerId)\n .withAlias(AliasHelper.toAlias(dataTypeNameTwo))\n .withName(dataTypeNameTwo)\n .withDataTypeId(dataTypeIdTwo)\n .done()\n .build();\n return await this.create(memberType);\n }\n}"]}