@umbraco/playwright-testhelpers 17.1.0-beta.6 → 17.1.0-beta.7

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 (147) hide show
  1. package/dist/lib/helpers/BaseApiHelper.d.ts +19 -0
  2. package/dist/lib/helpers/BaseApiHelper.js +87 -0
  3. package/dist/lib/helpers/BaseApiHelper.js.map +1 -0
  4. package/dist/lib/helpers/ConstantHelper.d.ts +0 -17
  5. package/dist/lib/helpers/ConstantHelper.js +0 -17
  6. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  7. package/dist/lib/helpers/ContentRenderUiHelper.js +3 -3
  8. package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -1
  9. package/dist/lib/helpers/ContentUiHelper.js +487 -353
  10. package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
  11. package/dist/lib/helpers/CurrentUserProfileUiHelper.js +10 -4
  12. package/dist/lib/helpers/CurrentUserProfileUiHelper.js.map +1 -1
  13. package/dist/lib/helpers/DataTypeApiHelper.d.ts +9 -21
  14. package/dist/lib/helpers/DataTypeApiHelper.js +32 -125
  15. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  16. package/dist/lib/helpers/DataTypeUiHelper.js +332 -193
  17. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
  18. package/dist/lib/helpers/DictionaryApiHelper.d.ts +8 -15
  19. package/dist/lib/helpers/DictionaryApiHelper.js +49 -77
  20. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
  21. package/dist/lib/helpers/DictionaryUiHelper.js +23 -17
  22. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
  23. package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +7 -13
  24. package/dist/lib/helpers/DocumentBlueprintApiHelper.js +44 -69
  25. package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -1
  26. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +10 -8
  27. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
  28. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +4 -18
  29. package/dist/lib/helpers/DocumentTypeApiHelper.js +4 -134
  30. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
  31. package/dist/lib/helpers/DocumentTypeUiHelper.js +34 -22
  32. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -1
  33. package/dist/lib/helpers/ExamineManagementUiHelper.js +6 -5
  34. package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -1
  35. package/dist/lib/helpers/FormsUiHelper.js +159 -119
  36. package/dist/lib/helpers/FormsUiHelper.js.map +1 -1
  37. package/dist/lib/helpers/HealthCheckUiHelper.js +7 -7
  38. package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -1
  39. package/dist/lib/helpers/LanguageApiHelper.d.ts +10 -12
  40. package/dist/lib/helpers/LanguageApiHelper.js +34 -35
  41. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
  42. package/dist/lib/helpers/LanguageUiHelper.js +19 -16
  43. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -1
  44. package/dist/lib/helpers/LogViewerUiHelper.js +31 -22
  45. package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
  46. package/dist/lib/helpers/LoginUiHelper.js +7 -4
  47. package/dist/lib/helpers/LoginUiHelper.js.map +1 -1
  48. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +4 -18
  49. package/dist/lib/helpers/MediaTypeApiHelper.js +4 -134
  50. package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -1
  51. package/dist/lib/helpers/MediaTypeUiHelper.js +17 -11
  52. package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -1
  53. package/dist/lib/helpers/MediaUiHelper.js +45 -36
  54. package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
  55. package/dist/lib/helpers/MemberApiHelper.d.ts +4 -12
  56. package/dist/lib/helpers/MemberApiHelper.js +6 -54
  57. package/dist/lib/helpers/MemberApiHelper.js.map +1 -1
  58. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +6 -11
  59. package/dist/lib/helpers/MemberGroupApiHelper.js +20 -35
  60. package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -1
  61. package/dist/lib/helpers/MemberGroupUiHelper.js +16 -13
  62. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -1
  63. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +5 -12
  64. package/dist/lib/helpers/MemberTypeApiHelper.js +16 -49
  65. package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -1
  66. package/dist/lib/helpers/MemberTypeUiHelper.js +3 -2
  67. package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -1
  68. package/dist/lib/helpers/MemberUiHelper.js +43 -25
  69. package/dist/lib/helpers/MemberUiHelper.js.map +1 -1
  70. package/dist/lib/helpers/ModelsBuilderUiHelper.js +3 -2
  71. package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -1
  72. package/dist/lib/helpers/PackageApiHelper.d.ts +5 -4
  73. package/dist/lib/helpers/PackageApiHelper.js +47 -75
  74. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  75. package/dist/lib/helpers/PackageUiHelper.js +36 -30
  76. package/dist/lib/helpers/PackageUiHelper.js.map +1 -1
  77. package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -20
  78. package/dist/lib/helpers/PartialViewApiHelper.js +12 -146
  79. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  80. package/dist/lib/helpers/PartialViewUiHelper.js +17 -14
  81. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  82. package/dist/lib/helpers/PathBasedTreeApiHelper.d.ts +32 -0
  83. package/dist/lib/helpers/PathBasedTreeApiHelper.js +164 -0
  84. package/dist/lib/helpers/PathBasedTreeApiHelper.js.map +1 -0
  85. package/dist/lib/helpers/ProfilingUiHelper.js +5 -3
  86. package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -1
  87. package/dist/lib/helpers/PublishedStatusUiHelper.js +8 -7
  88. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -1
  89. package/dist/lib/helpers/RedirectManagementUiHelper.js +12 -7
  90. package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -1
  91. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +7 -12
  92. package/dist/lib/helpers/RelationTypeApiHelper.js +28 -49
  93. package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -1
  94. package/dist/lib/helpers/RelationTypeUiHelper.js +16 -13
  95. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -1
  96. package/dist/lib/helpers/ScriptApiHelper.d.ts +6 -22
  97. package/dist/lib/helpers/ScriptApiHelper.js +12 -165
  98. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  99. package/dist/lib/helpers/ScriptUiHelper.js +13 -9
  100. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
  101. package/dist/lib/helpers/StylesheetApiHelper.d.ts +5 -20
  102. package/dist/lib/helpers/StylesheetApiHelper.js +13 -154
  103. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  104. package/dist/lib/helpers/StylesheetUiHelper.js +14 -9
  105. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  106. package/dist/lib/helpers/TelemetryDataUiHelper.js +3 -2
  107. package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -1
  108. package/dist/lib/helpers/TemplateApiHelper.d.ts +8 -15
  109. package/dist/lib/helpers/TemplateApiHelper.js +51 -83
  110. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  111. package/dist/lib/helpers/TemplateUiHelper.js +25 -19
  112. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
  113. package/dist/lib/helpers/TreeApiHelper.d.ts +15 -0
  114. package/dist/lib/helpers/TreeApiHelper.js +116 -0
  115. package/dist/lib/helpers/TreeApiHelper.js.map +1 -0
  116. package/dist/lib/helpers/UiBaseLocators.d.ts +228 -230
  117. package/dist/lib/helpers/UiBaseLocators.js +871 -834
  118. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  119. package/dist/lib/helpers/UserGroupApiHelper.d.ts +3 -13
  120. package/dist/lib/helpers/UserGroupApiHelper.js +3 -69
  121. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  122. package/dist/lib/helpers/UserGroupUiHelper.js +49 -32
  123. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
  124. package/dist/lib/helpers/UserUiHelper.js +46 -43
  125. package/dist/lib/helpers/UserUiHelper.js.map +1 -1
  126. package/dist/lib/helpers/VariantBasedApiHelper.d.ts +23 -0
  127. package/dist/lib/helpers/VariantBasedApiHelper.js +81 -0
  128. package/dist/lib/helpers/VariantBasedApiHelper.js.map +1 -0
  129. package/dist/lib/helpers/WebhookApiHelper.d.ts +1 -0
  130. package/dist/lib/helpers/WebhookApiHelper.js +10 -11
  131. package/dist/lib/helpers/WebhookApiHelper.js.map +1 -1
  132. package/dist/lib/helpers/WebhookUiHelper.js +27 -11
  133. package/dist/lib/helpers/WebhookUiHelper.js.map +1 -1
  134. package/dist/lib/helpers/WelcomeDashboardUiHelper.js +1 -1
  135. package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -1
  136. package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js +9 -4
  137. package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js.map +1 -1
  138. package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js +10 -5
  139. package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js.map +1 -1
  140. package/dist/lib/helpers/index.d.ts +4 -1
  141. package/dist/lib/helpers/index.js +9 -3
  142. package/dist/lib/helpers/index.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +1 -1
  145. package/dist/lib/helpers/BasePage.d.ts +0 -449
  146. package/dist/lib/helpers/BasePage.js +0 -547
  147. package/dist/lib/helpers/BasePage.js.map +0 -1
@@ -34,72 +34,81 @@ class LogViewerUiHelper extends UiBaseLocators_1.UiBaseLocators {
34
34
  this.loadingSpinner = page.locator('#empty uui-loader-circle');
35
35
  }
36
36
  async clickSearchButton() {
37
- await this.click(this.searchBtn);
38
- await this.waitForVisible(this.searchLogsTxt);
37
+ await (0, test_1.expect)(this.searchBtn).toBeVisible();
38
+ await this.searchBtn.click();
39
+ await (0, test_1.expect)(this.searchLogsTxt).toBeVisible();
39
40
  }
40
41
  async clickOverviewButton() {
41
- await this.click(this.overviewBtn);
42
+ await (0, test_1.expect)(this.overviewBtn).toBeVisible();
43
+ await this.overviewBtn.click();
42
44
  }
43
45
  async enterSearchKeyword(keyword) {
44
- await this.enterText(this.searchLogsTxt, keyword);
46
+ await this.searchLogsTxt.clear();
47
+ await this.searchLogsTxt.fill(keyword);
45
48
  }
46
49
  async selectLogLevel(level) {
50
+ await (0, test_1.expect)(this.selectLogLevelBtn).toBeVisible();
47
51
  // The force click is necessary.
48
- await this.click(this.selectLogLevelBtn, { force: true });
52
+ await this.selectLogLevelBtn.click({ force: true });
49
53
  const logLevelLocator = this.page.locator('.log-level-menu-item').getByText(level);
50
- // Force click is needed
51
- await this.click(logLevelLocator, { force: true });
54
+ await (0, test_1.expect)(logLevelLocator).toBeVisible();
55
+ await logLevelLocator.click({ force: true });
52
56
  }
53
57
  async doesLogLevelIndicatorDisplay(level) {
54
- return await this.isVisible(this.page.locator('.log-level-button-indicator', { hasText: level }));
58
+ return await (0, test_1.expect)(this.page.locator('.log-level-button-indicator', { hasText: level })).toBeVisible();
55
59
  }
56
60
  async doesLogLevelCountMatch(level, expectedNumber) {
57
- await this.hasCount(this.page.locator('umb-log-viewer-message').locator('umb-log-viewer-level-tag', { hasText: level }), expectedNumber);
61
+ return await (0, test_1.expect)(this.page.locator('umb-log-viewer-message').locator('umb-log-viewer-level-tag', { hasText: level })).toHaveCount(expectedNumber);
58
62
  }
59
63
  async saveSearch(searchName) {
64
+ await (0, test_1.expect)(this.saveSearchHeartIcon).toBeVisible();
60
65
  // The force click is necessary.
61
- await this.click(this.saveSearchHeartIcon, { force: true });
62
- await this.enterText(this.searchNameTxt, searchName);
63
- await this.click(this.saveSearchBtn);
66
+ await this.saveSearchHeartIcon.click({ force: true });
67
+ await this.searchNameTxt.clear();
68
+ await this.searchNameTxt.fill(searchName);
69
+ await this.saveSearchBtn.click();
64
70
  }
65
71
  checkSavedSearch(searchName) {
66
72
  return this.page.locator('#saved-searches').getByLabel(searchName, { exact: true });
67
73
  }
68
74
  async clickSortLogByTimestampButton() {
69
- await this.click(this.sortLogByTimestampBtn);
75
+ await this.sortLogByTimestampBtn.click();
70
76
  }
71
77
  async doesFirstLogHaveTimestamp(timestamp) {
72
- await this.containsText(this.firstLogLevelTimestamp, timestamp);
78
+ return await (0, test_1.expect)(this.firstLogLevelTimestamp).toContainText(timestamp);
73
79
  }
74
80
  async clickPageNumber(pageNumber) {
75
- await this.click(this.page.getByLabel(`Go to page ${pageNumber}`, { exact: true }));
81
+ await this.page.getByLabel('Go to page ' + pageNumber, { exact: true }).click();
76
82
  }
77
83
  async doesFirstLogHaveMessage(message) {
78
- await this.containsText(this.firstLogLevelMessage, message, 10000);
84
+ await (0, test_1.expect)(this.firstLogLevelMessage).toContainText(message, { timeout: 10000 });
79
85
  }
80
86
  async clickSavedSearchByName(name) {
81
- await this.click(this.page.locator('#saved-searches').getByLabel(name));
87
+ await (0, test_1.expect)(this.page.locator('#saved-searches').getByLabel(name)).toBeVisible();
88
+ await this.page.locator('#saved-searches').getByLabel(name).click();
82
89
  }
83
90
  async doesSearchBoxHaveValue(searchValue) {
84
91
  await (0, test_1.expect)(this.page.getByPlaceholder('Search logs...')).toHaveValue(searchValue);
85
92
  }
86
93
  async clickFirstLogSearchResult() {
87
- await this.click(this.firstLogSearchResult);
94
+ await this.firstLogSearchResult.click();
88
95
  }
89
96
  async doesDetailedLogHaveText(text) {
90
- await this.isVisible(this.page.locator('details[open] .property-value').getByText(text));
97
+ await (0, test_1.expect)(this.page.locator('details[open] .property-value').getByText(text)).toBeVisible();
91
98
  }
92
99
  async clickSavedSearchesButton() {
100
+ await (0, test_1.expect)(this.savedSearchesBtn).toBeVisible();
93
101
  // The force click is necessary.
94
- await this.click(this.savedSearchesBtn, { force: true });
102
+ await this.savedSearchesBtn.click({ force: true });
95
103
  }
96
104
  async removeSavedSearchByName(name) {
97
105
  const removedSavedSearchWithNameLocator = this.page.locator('.saved-search-item').filter({ hasText: name }).getByLabel('Delete this search');
106
+ await (0, test_1.expect)(removedSavedSearchWithNameLocator).toBeVisible();
98
107
  // The force click is necessary.
99
- await this.click(removedSavedSearchWithNameLocator, { force: true });
108
+ await removedSavedSearchWithNameLocator.click({ force: true });
100
109
  }
101
110
  async waitUntilLoadingSpinnerInvisible() {
102
- await this.hasCount(this.loadingSpinner, 0);
111
+ await (0, test_1.expect)(this.loadingSpinner).toHaveCount(0);
103
112
  }
104
113
  }
105
114
  exports.LogViewerUiHelper = LogViewerUiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"LogViewerUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LogViewerUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class LogViewerUiHelper extends UiBaseLocators {\n private readonly searchBtn: Locator;\n private readonly searchLogsTxt: Locator;\n private readonly selectLogLevelBtn: Locator;\n private readonly saveSearchHeartIcon: Locator;\n private readonly searchNameTxt: Locator;\n private readonly saveSearchBtn: Locator;\n private readonly overviewBtn: Locator;\n private readonly sortLogByTimestampBtn: Locator;\n private readonly firstLogLevelTimestamp: Locator;\n private readonly firstLogLevelMessage: Locator;\n private readonly firstLogSearchResult: Locator;\n private readonly savedSearchesBtn: Locator;\n private readonly loadingSpinner: Locator;\n\n constructor(page: Page) {\n super(page);\n this.searchBtn = page.locator('uui-tab').filter({hasText: 'Search'}).locator('svg');\n this.searchLogsTxt = page.getByPlaceholder('Search logs...');\n this.selectLogLevelBtn = page.getByLabel('Select log levels');\n this.saveSearchHeartIcon = page.getByLabel(\"Save search\");\n this.searchNameTxt = page.getByLabel(\"Search name\");\n this.saveSearchBtn = page.locator('uui-dialog-layout').getByLabel(\"Save search\");\n this.overviewBtn = page.getByRole('tab', {name: 'Overview'});\n this.sortLogByTimestampBtn = page.getByLabel('Sort logs');\n this.firstLogLevelTimestamp = page.locator('umb-log-viewer-message #timestamp').first();\n this.firstLogLevelMessage = page.locator('umb-log-viewer-message #message').first();\n this.firstLogSearchResult = page.getByRole('group').locator('#message').first();\n this.savedSearchesBtn = page.getByLabel('Saved searches');\n this.loadingSpinner = page.locator('#empty uui-loader-circle');\n }\n\n async clickSearchButton() {\n await this.click(this.searchBtn);\n await this.waitForVisible(this.searchLogsTxt);\n }\n\n async clickOverviewButton() {\n await this.click(this.overviewBtn);\n }\n\n async enterSearchKeyword(keyword: string) {\n await this.enterText(this.searchLogsTxt, keyword);\n }\n\n async selectLogLevel(level: string) {\n // The force click is necessary.\n await this.click(this.selectLogLevelBtn, {force: true});\n const logLevelLocator = this.page.locator('.log-level-menu-item').getByText(level);\n // Force click is needed\n await this.click(logLevelLocator, {force: true});\n }\n\n async doesLogLevelIndicatorDisplay(level: string) {\n return await this.isVisible(this.page.locator('.log-level-button-indicator', {hasText: level}));\n }\n\n async doesLogLevelCountMatch(level: string, expectedNumber: number) {\n await this.hasCount(this.page.locator('umb-log-viewer-message').locator('umb-log-viewer-level-tag', {hasText: level}), expectedNumber);\n }\n\n async saveSearch(searchName: string) {\n // The force click is necessary.\n await this.click(this.saveSearchHeartIcon, {force: true});\n await this.enterText(this.searchNameTxt, searchName);\n await this.click(this.saveSearchBtn);\n }\n\n checkSavedSearch(searchName: string) {\n return this.page.locator('#saved-searches').getByLabel(searchName, {exact: true});\n }\n\n async clickSortLogByTimestampButton() {\n await this.click(this.sortLogByTimestampBtn);\n }\n\n async doesFirstLogHaveTimestamp(timestamp: string) {\n await this.containsText(this.firstLogLevelTimestamp, timestamp);\n }\n\n async clickPageNumber(pageNumber: number) {\n await this.click(this.page.getByLabel(`Go to page ${pageNumber}`, {exact: true}));\n }\n\n async doesFirstLogHaveMessage(message: string) {\n await this.containsText(this.firstLogLevelMessage, message, 10000);\n }\n\n async clickSavedSearchByName(name: string) {\n await this.click(this.page.locator('#saved-searches').getByLabel(name));\n }\n\n async doesSearchBoxHaveValue(searchValue: string) {\n await expect(this.page.getByPlaceholder('Search logs...')).toHaveValue(searchValue);\n }\n\n async clickFirstLogSearchResult() {\n await this.click(this.firstLogSearchResult);\n }\n\n async doesDetailedLogHaveText(text: string) {\n await this.isVisible(this.page.locator('details[open] .property-value').getByText(text));\n }\n\n async clickSavedSearchesButton() {\n // The force click is necessary.\n await this.click(this.savedSearchesBtn, {force: true});\n }\n\n async removeSavedSearchByName(name: string) {\n const removedSavedSearchWithNameLocator = this.page.locator('.saved-search-item').filter({hasText: name}).getByLabel('Delete this search');\n // The force click is necessary.\n await this.click(removedSavedSearchWithNameLocator, {force: true});\n }\n\n async waitUntilLoadingSpinnerInvisible() {\n await this.hasCount(this.loadingSpinner, 0);\n }\n}\n"]}
1
+ {"version":3,"file":"LogViewerUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LogViewerUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,iBAAkB,SAAQ,+BAAc;IAClC,SAAS,CAAU;IACnB,aAAa,CAAU;IACvB,iBAAiB,CAAU;IAC3B,mBAAmB,CAAU;IAC7B,aAAa,CAAU;IACvB,aAAa,CAAU;IACvB,WAAW,CAAU;IACrB,qBAAqB,CAAU;IAC/B,sBAAsB,CAAU;IAChC,oBAAoB,CAAU;IAC9B,oBAAoB,CAAU;IAC9B,gBAAgB,CAAU;IAC1B,cAAc,CAAU;IAEzC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAChF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,gCAAgC;QAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,eAAe,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,KAAa;QAC9C,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,cAAsB;QAChE,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,gCAAgC;QAChC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,6BAA6B;QACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QAC/C,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAe;QAC3C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,WAAmB;QAC9C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,gCAAgC;QAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,iCAAiC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC3I,MAAM,IAAA,aAAM,EAAC,iCAAiC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,gCAAgC;QAChC,MAAM,iCAAiC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,gCAAgC;QACpC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;CACF;AA/HD,8CA+HC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class LogViewerUiHelper extends UiBaseLocators {\n private readonly searchBtn: Locator;\n private readonly searchLogsTxt: Locator;\n private readonly selectLogLevelBtn: Locator;\n private readonly saveSearchHeartIcon: Locator;\n private readonly searchNameTxt: Locator;\n private readonly saveSearchBtn: Locator;\n private readonly overviewBtn: Locator;\n private readonly sortLogByTimestampBtn: Locator;\n private readonly firstLogLevelTimestamp: Locator;\n private readonly firstLogLevelMessage: Locator;\n private readonly firstLogSearchResult: Locator;\n private readonly savedSearchesBtn: Locator;\n private readonly loadingSpinner: Locator;\n\n constructor(page: Page) {\n super(page);\n this.searchBtn = page.locator('uui-tab').filter({hasText: 'Search'}).locator('svg');\n this.searchLogsTxt = page.getByPlaceholder('Search logs...');\n this.selectLogLevelBtn = page.getByLabel('Select log levels');\n this.saveSearchHeartIcon = page.getByLabel(\"Save search\");\n this.searchNameTxt = page.getByLabel(\"Search name\");\n this.saveSearchBtn = page.locator('uui-dialog-layout').getByLabel(\"Save search\");\n this.overviewBtn = page.getByRole('tab', {name: 'Overview'});\n this.sortLogByTimestampBtn = page.getByLabel('Sort logs');\n this.firstLogLevelTimestamp = page.locator('umb-log-viewer-message #timestamp').first();\n this.firstLogLevelMessage = page.locator('umb-log-viewer-message #message').first();\n this.firstLogSearchResult = page.getByRole('group').locator('#message').first();\n this.savedSearchesBtn = page.getByLabel('Saved searches');\n this.loadingSpinner = page.locator('#empty uui-loader-circle');\n }\n\n async clickSearchButton() {\n await expect(this.searchBtn).toBeVisible();\n await this.searchBtn.click();\n await expect(this.searchLogsTxt).toBeVisible();\n }\n\n async clickOverviewButton() {\n await expect(this.overviewBtn).toBeVisible();\n await this.overviewBtn.click();\n }\n\n async enterSearchKeyword(keyword: string) {\n await this.searchLogsTxt.clear();\n await this.searchLogsTxt.fill(keyword);\n }\n\n async selectLogLevel(level: string) {\n await expect(this.selectLogLevelBtn).toBeVisible();\n // The force click is necessary.\n await this.selectLogLevelBtn.click({force: true});\n const logLevelLocator = this.page.locator('.log-level-menu-item').getByText(level);\n await expect(logLevelLocator).toBeVisible();\n await logLevelLocator.click({force: true});\n }\n\n async doesLogLevelIndicatorDisplay(level: string) {\n return await expect(this.page.locator('.log-level-button-indicator', {hasText: level})).toBeVisible();\n }\n\n async doesLogLevelCountMatch(level: string, expectedNumber: number) {\n return await expect(this.page.locator('umb-log-viewer-message').locator('umb-log-viewer-level-tag', {hasText: level})).toHaveCount(expectedNumber);\n }\n\n async saveSearch(searchName: string) {\n await expect(this.saveSearchHeartIcon).toBeVisible();\n // The force click is necessary.\n await this.saveSearchHeartIcon.click({force: true});\n await this.searchNameTxt.clear();\n await this.searchNameTxt.fill(searchName);\n await this.saveSearchBtn.click();\n }\n\n checkSavedSearch(searchName: string) {\n return this.page.locator('#saved-searches').getByLabel(searchName, {exact: true});\n }\n\n async clickSortLogByTimestampButton() {\n await this.sortLogByTimestampBtn.click();\n }\n\n async doesFirstLogHaveTimestamp(timestamp: string) {\n return await expect(this.firstLogLevelTimestamp).toContainText(timestamp);\n }\n\n async clickPageNumber(pageNumber: number) {\n await this.page.getByLabel('Go to page ' + pageNumber, {exact: true}).click();\n }\n\n async doesFirstLogHaveMessage(message: string) {\n await expect(this.firstLogLevelMessage).toContainText(message, {timeout: 10000});\n }\n\n async clickSavedSearchByName(name: string) {\n await expect(this.page.locator('#saved-searches').getByLabel(name)).toBeVisible();\n await this.page.locator('#saved-searches').getByLabel(name).click();\n }\n\n async doesSearchBoxHaveValue(searchValue: string) {\n await expect(this.page.getByPlaceholder('Search logs...')).toHaveValue(searchValue);\n }\n\n async clickFirstLogSearchResult() {\n await this.firstLogSearchResult.click();\n }\n\n async doesDetailedLogHaveText(text: string) {\n await expect(this.page.locator('details[open] .property-value').getByText(text)).toBeVisible();\n }\n\n async clickSavedSearchesButton() {\n await expect(this.savedSearchesBtn).toBeVisible();\n // The force click is necessary.\n await this.savedSearchesBtn.click({force: true});\n }\n\n async removeSavedSearchByName(name: string) {\n const removedSavedSearchWithNameLocator = this.page.locator('.saved-search-item').filter({hasText: name}).getByLabel('Delete this search');\n await expect(removedSavedSearchWithNameLocator).toBeVisible();\n // The force click is necessary.\n await removedSavedSearchWithNameLocator.click({force: true});\n }\n\n async waitUntilLoadingSpinnerInvisible() {\n await expect(this.loadingSpinner).toHaveCount(0);\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoginUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
4
5
  const UiBaseLocators_1 = require("./UiBaseLocators");
5
- const ConstantHelper_1 = require("./ConstantHelper");
6
6
  class LoginUiHelper extends UiBaseLocators_1.UiBaseLocators {
7
7
  emailTxt;
8
8
  passwordTxt;
@@ -14,13 +14,16 @@ class LoginUiHelper extends UiBaseLocators_1.UiBaseLocators {
14
14
  this.loginBtn = page.getByLabel('Login');
15
15
  }
16
16
  async enterEmail(email) {
17
- await this.enterText(this.emailTxt, email, { verify: true, timeout: ConstantHelper_1.ConstantHelper.timeout.navigation });
17
+ await (0, test_1.expect)(this.emailTxt).toBeVisible({ timeout: 20000 });
18
+ await this.emailTxt.clear();
19
+ await this.emailTxt.fill(email);
18
20
  }
19
21
  async enterPassword(password) {
20
- await this.enterText(this.passwordTxt, password);
22
+ await this.passwordTxt.clear();
23
+ await this.passwordTxt.fill(password);
21
24
  }
22
25
  async clickLoginButton() {
23
- await this.click(this.loginBtn);
26
+ await this.loginBtn.click();
24
27
  }
25
28
  }
26
29
  exports.LoginUiHelper = LoginUiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"LoginUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginUiHelper.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,aAAc,SAAQ,+BAAc;IAC9B,QAAQ,CAAU;IAClB,WAAW,CAAU;IACrB,QAAQ,CAAU;IAEnC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,+BAAc,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAvBD,sCAuBC","sourcesContent":["import {Page, Locator} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class LoginUiHelper extends UiBaseLocators {\n private readonly emailTxt: Locator;\n private readonly passwordTxt: Locator;\n private readonly loginBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.emailTxt = page.locator('[name=\"username\"]');\n this.passwordTxt = page.locator('[name=\"password\"]');\n this.loginBtn = page.getByLabel('Login');\n }\n\n async enterEmail(email: string) {\n await this.enterText(this.emailTxt, email, {verify: true, timeout: ConstantHelper.timeout.navigation});\n }\n\n async enterPassword(password: string) {\n await this.enterText(this.passwordTxt, password);\n }\n\n async clickLoginButton() {\n await this.click(this.loginBtn);\n }\n}\n"]}
1
+ {"version":3,"file":"LoginUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,aAAc,SAAQ,+BAAc;IAC9B,QAAQ,CAAU;IAClB,WAAW,CAAU;IACrB,QAAQ,CAAU;IAEnC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AA1BD,sCA0BC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class LoginUiHelper extends UiBaseLocators {\n private readonly emailTxt: Locator;\n private readonly passwordTxt: Locator;\n private readonly loginBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.emailTxt = page.locator('[name=\"username\"]');\n this.passwordTxt = page.locator('[name=\"password\"]');\n this.loginBtn = page.getByLabel('Login'); \n }\n\n async enterEmail(email: string) {\n await expect(this.emailTxt).toBeVisible({timeout: 20000});\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 clickLoginButton() {\n await this.loginBtn.click();\n }\n}\n"]}
@@ -1,21 +1,7 @@
1
- import { ApiHelpers } from "./ApiHelpers";
2
- export declare class MediaTypeApiHelper {
3
- api: ApiHelpers;
4
- constructor(api: ApiHelpers);
5
- ensureNameNotExists(name: string): Promise<number | import("playwright-core").APIResponse | null | undefined>;
6
- getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
7
- private recurseChildren;
8
- private recurseDeleteChildren;
9
- getChildren(id: string): Promise<any>;
10
- create(mediaType: any): Promise<string | undefined>;
11
- delete(id: string): Promise<number | undefined>;
12
- getByName(name: string): Promise<any>;
13
- doesNameExist(name: string): Promise<any>;
14
- get(id: string): Promise<any>;
15
- getFolder(id: string): Promise<any>;
16
- deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
17
- createFolder(name: string, parentId?: string): Promise<string | undefined>;
18
- renameFolder(folderId: string, folderName: string): Promise<import("playwright-core").APIResponse>;
1
+ import { TreeApiHelper } from "./TreeApiHelper";
2
+ export declare class MediaTypeApiHelper extends TreeApiHelper {
3
+ protected resourcePath: string;
4
+ protected treePath: string;
19
5
  createDefaultMediaType(mediaTypeName: string): Promise<string | undefined>;
20
6
  createMediaTypeWithPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string, isAllowAsRoot?: boolean): Promise<string | undefined>;
21
7
  createMediaTypeWithTwoPropertyEditors(mediaTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
@@ -1,142 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MediaTypeApiHelper = void 0;
4
+ const TreeApiHelper_1 = require("./TreeApiHelper");
4
5
  const AliasHelper_1 = require("./AliasHelper");
5
6
  const json_models_builders_1 = require("@umbraco/json-models-builders");
6
- class MediaTypeApiHelper {
7
- api;
8
- constructor(api) {
9
- this.api = api;
10
- }
11
- async ensureNameNotExists(name) {
12
- const rootMediaTypes = await this.getAllAtRoot();
13
- const jsonMediaTypes = await rootMediaTypes.json();
14
- for (const mediaType of jsonMediaTypes.items) {
15
- if (mediaType.name === name) {
16
- if (mediaType.isFolder) {
17
- return await this.recurseDeleteChildren(mediaType);
18
- }
19
- return await this.delete(mediaType.id);
20
- }
21
- else if (mediaType.hasChildren) {
22
- await this.recurseChildren(name, mediaType.id, true);
23
- }
24
- }
25
- return null;
26
- }
27
- async getAllAtRoot() {
28
- return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media-type/root?skip=0&take=10000&foldersOnly=false');
29
- }
30
- async recurseChildren(name, id, toDelete) {
31
- const items = await this.getChildren(id);
32
- for (const child of items) {
33
- if (child.name === name) {
34
- if (!toDelete) {
35
- if (child.isFolder) {
36
- return await this.getFolder(child.id);
37
- }
38
- return await this.get(child.id);
39
- }
40
- if (child.isFolder) {
41
- return await this.recurseDeleteChildren(child);
42
- }
43
- return await this.delete(child.id);
44
- }
45
- else if (child.hasChildren) {
46
- return await this.recurseChildren(name, child.id, toDelete);
47
- }
48
- }
49
- return false;
50
- }
51
- async recurseDeleteChildren(mediaTypeFolder) {
52
- if (!mediaTypeFolder.hasChildren) {
53
- return await this.deleteFolder(mediaTypeFolder.id);
54
- }
55
- const items = await this.getChildren(mediaTypeFolder.id);
56
- for (const child of items) {
57
- if (child.hasChildren) {
58
- await this.recurseDeleteChildren(child);
59
- }
60
- else if (child.isFolder) {
61
- await this.deleteFolder(child.id);
62
- }
63
- else {
64
- await this.delete(child.id);
65
- }
66
- }
67
- return await this.deleteFolder(mediaTypeFolder.id);
68
- }
69
- async getChildren(id) {
70
- const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/media-type/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);
71
- const items = await response.json();
72
- return items.items;
73
- }
74
- async create(mediaType) {
75
- if (mediaType == null) {
76
- return;
77
- }
78
- const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type', mediaType);
79
- return response.headers().location.split("/").pop();
80
- }
81
- async delete(id) {
82
- if (id == null) {
83
- return;
84
- }
85
- const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);
86
- return response.status();
87
- }
88
- async getByName(name) {
89
- const rootMediaTypes = await this.getAllAtRoot();
90
- const jsonMediaTypes = await rootMediaTypes.json();
91
- for (const mediaType of jsonMediaTypes.items) {
92
- if (mediaType.name === name) {
93
- if (mediaType.isFolder) {
94
- return this.getFolder(mediaType.id);
95
- }
96
- return this.get(mediaType.id);
97
- }
98
- else if (mediaType.isContainer || mediaType.hasChildren) {
99
- const result = await this.recurseChildren(name, mediaType.id, false);
100
- if (result) {
101
- return result;
102
- }
103
- }
104
- }
105
- return false;
106
- }
107
- async doesNameExist(name) {
108
- return await this.getByName(name);
109
- }
110
- async get(id) {
111
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);
112
- const json = await response.json();
113
- if (json !== null) {
114
- return json;
115
- }
116
- return null;
117
- }
118
- // Folder
119
- async getFolder(id) {
120
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + id);
121
- return await response.json();
122
- }
123
- async deleteFolder(id) {
124
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + id);
125
- }
126
- async createFolder(name, parentId) {
127
- const folder = {
128
- "name": name,
129
- "parent": parentId ? { "id": parentId } : null
130
- };
131
- const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder', folder);
132
- return response.headers().location.split("/").pop();
133
- }
134
- async renameFolder(folderId, folderName) {
135
- const folder = {
136
- "name": folderName
137
- };
138
- return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + folderId, folder);
139
- }
7
+ class MediaTypeApiHelper extends TreeApiHelper_1.TreeApiHelper {
8
+ resourcePath = 'media-type';
9
+ treePath = 'tree/media-type';
140
10
  async createDefaultMediaType(mediaTypeName) {
141
11
  const mediaType = new json_models_builders_1.MediaTypeBuilder()
142
12
  .withName(mediaTypeName)
@@ -1 +1 @@
1
- {"version":3,"file":"MediaTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {MediaTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MediaTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMediaTypes = await this.getAllAtRoot();\n const jsonMediaTypes = await rootMediaTypes.json();\n\n for (const mediaType of jsonMediaTypes.items) {\n if (mediaType.name === name) {\n if (mediaType.isFolder) {\n return await this.recurseDeleteChildren(mediaType);\n }\n return await this.delete(mediaType.id);\n } else if (mediaType.hasChildren) {\n await this.recurseChildren(name, mediaType.id, true);\n }\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(mediaTypeFolder) {\n if (!mediaTypeFolder.hasChildren) {\n return await this.deleteFolder(mediaTypeFolder.id);\n }\n const items = await this.getChildren(mediaTypeFolder.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(mediaTypeFolder.id);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/media-type/children?parentId=${id}&skip=0&take=10000&foldersOnly=false`);\n const items = await response.json();\n return items.items;\n }\n\n async create(mediaType) {\n if (mediaType == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type', mediaType);\n return response.headers().location.split(\"/\").pop();\n }\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/media-type/' + id);\n return response.status();\n }\n\n async getByName(name: string) {\n const rootMediaTypes = await this.getAllAtRoot();\n const jsonMediaTypes = await rootMediaTypes.json();\n\n for (const mediaType of jsonMediaTypes.items) {\n if (mediaType.name === name) {\n if (mediaType.isFolder) {\n return this.getFolder(mediaType.id);\n }\n return this.get(mediaType.id);\n } else if (mediaType.isContainer || mediaType.hasChildren) {\n const result = await this.recurseChildren(name, mediaType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/' + id);\n const json = await response.json();\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n // Folder\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + id);\n return await response.json();\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + id);\n }\n\n async createFolder(name: string, parentId?: string) {\n const folder = {\n \"name\": name,\n \"parent\": parentId ? {\"id\": parentId} : null\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder', folder);\n return response.headers().location.split(\"/\").pop();\n }\n\n async renameFolder(folderId: string, folderName: string) {\n const folder = {\n \"name\": folderName\n }\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/media-type/folder/' + folderId, folder);\n }\n\n async createDefaultMediaType(mediaTypeName: string) {\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string = \"GroupTest\", isAllowAsRoot: boolean = false) {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAllowedAsRoot(isAllowAsRoot)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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(mediaType);\n }\n\n async createMediaTypeWithTwoPropertyEditors(mediaTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName: string = \"GroupTest\") {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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(mediaType);\n }\n\n async createMediaTypeWithPropertyEditorInTab(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string = \"TestGroup\", varyByCulture: boolean = false) {\n const crypto = require('crypto');\n const tabId = crypto.randomUUID();\n const groupId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabName)\n .withId(tabId)\n .withType(\"Tab\")\n .done()\n .addContainer()\n .withName(groupName)\n .withId(groupId)\n .withType(\"Group\")\n .withParentId(tabId)\n .done()\n .addProperty()\n .withContainerId(groupId)\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withName(dataTypeName)\n .withDataTypeId(dataTypeId)\n .done()\n .withVariesByCulture(varyByCulture)\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoGroups(mediaTypeName: string, dataType: string, dataTypeId: string, groupNameOne: string, groupNameTwo: string) {\n const crypto = require('crypto');\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(groupNameOne)\n .withId(groupOneId)\n .withType(\"Group\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(groupNameTwo)\n .withId(groupTwoId)\n .withType(\"Group\")\n .withSortOrder(1)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoTabs(mediaTypeName: string, dataType: string, dataTypeId: string, tabNameOne: string, tabNameTwo: string) {\n const crypto = require('crypto');\n const tabOneId = crypto.randomUUID();\n const tabTwoId = crypto.randomUUID();\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabNameOne)\n .withId(tabOneId)\n .withType(\"Tab\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(tabNameTwo)\n .withId(tabTwoId)\n .withType(\"Tab\")\n .withSortOrder(1)\n .done()\n .addContainer()\n .withName(\"GroupTestOne\")\n .withId(groupOneId)\n .withType(\"Group\")\n .withParentId(tabOneId)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addContainer()\n .withName(\"GroupTestTwo\")\n .withId(groupTwoId)\n .withType(\"Group\")\n .withParentId(tabTwoId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithAllowedChildNode(mediaTypeName: string, allowedChildNodeId: string) {\n await this.ensureNameNotExists(mediaTypeName);\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .withAllowedAsRoot(true)\n .addAllowedMediaType()\n .withId(allowedChildNodeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async doesGroupContainCorrectPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesTabContainCorrectPropertyEditorInGroup(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n const group = mediaType.containers.find(x => x.name === groupName && x.parent.id === tab.id);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesMediaTypeGroupNameContainCorrectSortOrder(mediaTypeName: string, groupName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n return group.sortOrder === sortOrder;\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesMediaTypeTabNameContainCorrectSortOrder(mediaTypeName: string, tabName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n return tab.sortOrder === sortOrder;\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesTabContainerCorrectPropertyEditor(mediaTypeName: string, tabName: string, dataTypeId: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n if (tab) {\n return mediaType.properties.find(x => x.dataType.id === dataTypeId && x.container.id === tab.id);\n } else {\n return false;\n }\n }\n\n async doesMediaTypeContainAllowedChildNodeIds(mediaTypeName: string, allowedChildNodeIds: string[]) {\n const mediaType = await this.getByName(mediaTypeName);\n const allowedChildNodeIdsArray = mediaType.allowedMediaTypes.map(x => x.mediaType.id);\n return allowedChildNodeIdsArray.every(id => allowedChildNodeIds.includes(id));\n }\n}\n"]}
1
+ {"version":3,"file":"MediaTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {TreeApiHelper} from \"./TreeApiHelper\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {MediaTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MediaTypeApiHelper extends TreeApiHelper {\n protected resourcePath = 'media-type';\n protected treePath = 'tree/media-type';\n\n async createDefaultMediaType(mediaTypeName: string) {\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string = \"GroupTest\", isAllowAsRoot: boolean = false) {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAllowedAsRoot(isAllowAsRoot)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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(mediaType);\n }\n\n async createMediaTypeWithTwoPropertyEditors(mediaTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName: string = \"GroupTest\") {\n const crypto = require('crypto');\n const containerId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\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(mediaType);\n }\n\n async createMediaTypeWithPropertyEditorInTab(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string = \"TestGroup\", varyByCulture: boolean = false) {\n const crypto = require('crypto');\n const tabId = crypto.randomUUID();\n const groupId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabName)\n .withId(tabId)\n .withType(\"Tab\")\n .done()\n .addContainer()\n .withName(groupName)\n .withId(groupId)\n .withType(\"Group\")\n .withParentId(tabId)\n .done()\n .addProperty()\n .withContainerId(groupId)\n .withAlias(AliasHelper.toAlias(dataTypeName))\n .withName(dataTypeName)\n .withDataTypeId(dataTypeId)\n .done()\n .withVariesByCulture(varyByCulture)\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoGroups(mediaTypeName: string, dataType: string, dataTypeId: string, groupNameOne: string, groupNameTwo: string) {\n const crypto = require('crypto');\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(groupNameOne)\n .withId(groupOneId)\n .withType(\"Group\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(groupNameTwo)\n .withId(groupTwoId)\n .withType(\"Group\")\n .withSortOrder(1)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithTwoTabs(mediaTypeName: string, dataType: string, dataTypeId: string, tabNameOne: string, tabNameTwo: string) {\n const crypto = require('crypto');\n const tabOneId = crypto.randomUUID();\n const tabTwoId = crypto.randomUUID();\n const groupOneId = crypto.randomUUID();\n const groupTwoId = crypto.randomUUID();\n\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .addContainer()\n .withName(tabNameOne)\n .withId(tabOneId)\n .withType(\"Tab\")\n .withSortOrder(0)\n .done()\n .addContainer()\n .withName(tabNameTwo)\n .withId(tabTwoId)\n .withType(\"Tab\")\n .withSortOrder(1)\n .done()\n .addContainer()\n .withName(\"GroupTestOne\")\n .withId(groupOneId)\n .withType(\"Group\")\n .withParentId(tabOneId)\n .done()\n .addProperty()\n .withContainerId(groupOneId)\n .withAlias(AliasHelper.toAlias(dataType + \"One\"))\n .withName(dataType + \"One\")\n .withDataTypeId(dataTypeId)\n .done()\n .addContainer()\n .withName(\"GroupTestTwo\")\n .withId(groupTwoId)\n .withType(\"Group\")\n .withParentId(tabTwoId)\n .done()\n .addProperty()\n .withContainerId(groupTwoId)\n .withAlias(AliasHelper.toAlias(dataType + \"Two\"))\n .withName(dataType + \"Two\")\n .withDataTypeId(dataTypeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async createMediaTypeWithAllowedChildNode(mediaTypeName: string, allowedChildNodeId: string) {\n await this.ensureNameNotExists(mediaTypeName);\n const mediaType = new MediaTypeBuilder()\n .withName(mediaTypeName)\n .withAlias(AliasHelper.toAlias(mediaTypeName))\n .withAllowedAsRoot(true)\n .addAllowedMediaType()\n .withId(allowedChildNodeId)\n .done()\n .build();\n return await this.create(mediaType);\n }\n\n async doesGroupContainCorrectPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesTabContainCorrectPropertyEditorInGroup(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n const group = mediaType.containers.find(x => x.name === groupName && x.parent.id === tab.id);\n // Check if group is defined\n if (group) {\n // Check if the media type properties include the specified property, and it belongs to the group\n return mediaType.properties.find(x => x.name === dataTypeName && x.dataType.id === dataTypeId && x.container.id === group.id);\n } else {\n // Group not found\n return false;\n }\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesMediaTypeGroupNameContainCorrectSortOrder(mediaTypeName: string, groupName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const group = mediaType.containers.find(x => x.name === groupName);\n // Check if group is defined\n if (group) {\n return group.sortOrder === sortOrder;\n } else {\n // Group not found\n return false;\n }\n }\n\n async doesMediaTypeTabNameContainCorrectSortOrder(mediaTypeName: string, tabName: string, sortOrder: number) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n // Check if tab is defined\n if (tab) {\n return tab.sortOrder === sortOrder;\n } else {\n // Tab not found\n return false;\n }\n }\n\n async doesTabContainerCorrectPropertyEditor(mediaTypeName: string, tabName: string, dataTypeId: string) {\n const mediaType = await this.getByName(mediaTypeName);\n const tab = mediaType.containers.find(x => x.name === tabName);\n if (tab) {\n return mediaType.properties.find(x => x.dataType.id === dataTypeId && x.container.id === tab.id);\n } else {\n return false;\n }\n }\n\n async doesMediaTypeContainAllowedChildNodeIds(mediaTypeName: string, allowedChildNodeIds: string[]) {\n const mediaType = await this.getByName(mediaTypeName);\n const allowedChildNodeIdsArray = mediaType.allowedMediaTypes.map(x => x.mediaType.id);\n return allowedChildNodeIdsArray.every(id => allowedChildNodeIds.includes(id));\n }\n}\n"]}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MediaTypeUiHelper = void 0;
4
4
  const UiBaseLocators_1 = require("./UiBaseLocators");
5
+ const test_1 = require("@playwright/test");
5
6
  class MediaTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
6
7
  newMediaTypeThreeDotsBtn;
7
8
  mediaEditPropertyWorkspace;
@@ -26,39 +27,44 @@ class MediaTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
26
27
  await this.openCaretButtonForName("Media Types");
27
28
  }
28
29
  async clickNewMediaTypeButton() {
29
- await this.click(this.newMediaTypeThreeDotsBtn);
30
+ await this.newMediaTypeThreeDotsBtn.click();
30
31
  }
31
32
  async isMediaTypeTreeItemVisible(name, isVisible = true) {
32
- const hasShowChildren = await this.mediaTypeTreeRoot.getAttribute('show-children') !== null;
33
- if (!hasShowChildren) {
34
- await this.click(this.mediaTypeTreeRoot.locator(this.caretBtn).first());
33
+ {
34
+ const hasShowChildren = await this.mediaTypeTreeRoot.getAttribute('show-children') !== null;
35
+ if (!hasShowChildren) {
36
+ await this.mediaTypeTreeRoot.locator(this.caretBtn).first().click();
37
+ }
38
+ await this.isTreeItemVisible(name, isVisible);
35
39
  }
36
- await this.isTreeItemVisible(name, isVisible);
37
40
  }
38
41
  async waitForMediaTypeToBeCreated() {
39
- await this.waitForLoadState();
42
+ await this.page.waitForLoadState();
40
43
  }
41
44
  async waitForMediaTypeToBeDeleted() {
42
- await this.waitForLoadState();
45
+ await this.page.waitForLoadState();
43
46
  }
44
47
  async waitForMediaTypeToBeRenamed() {
45
- await this.waitForLoadState();
48
+ await this.page.waitForLoadState();
46
49
  }
47
50
  async goToMediaType(mediaTypeName) {
48
51
  await this.clickRootFolderCaretButton();
49
52
  await this.clickLabelWithName(mediaTypeName);
50
53
  }
51
54
  async enterMediaTypeName(name) {
52
- await this.enterText(this.enterAName, name);
55
+ await this.enterAName.waitFor({ state: 'visible' });
56
+ await this.enterAName.fill(name);
53
57
  }
54
58
  async enterDescriptionForPropertyEditorWithName(propertyEditorName, description) {
55
59
  await this.mediaEditPropertyWorkspace.filter({ hasText: propertyEditorName }).getByLabel('description').fill(description);
56
60
  }
57
61
  async clickMediaTypeButton() {
58
- await this.click(this.mediaTypeBtn);
62
+ await (0, test_1.expect)(this.mediaTypeBtn).toBeVisible();
63
+ await this.mediaTypeBtn.click();
59
64
  }
60
65
  async clickMediaTypesMenu() {
61
- await this.click(this.mediaTypesMenu);
66
+ await (0, test_1.expect)(this.mediaTypesMenu).toBeVisible();
67
+ await this.mediaTypesMenu.click();
62
68
  }
63
69
  }
64
70
  exports.MediaTypeUiHelper = MediaTypeUiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {Locator, Page} from \"@playwright/test\";\n\nexport class MediaTypeUiHelper extends UiBaseLocators {\n private readonly newMediaTypeThreeDotsBtn: Locator;\n private readonly mediaEditPropertyWorkspace: Locator;\n private readonly mediaTypeBtn: Locator;\n private readonly mediaTypesMenu: Locator;\n private readonly mediaTypeTreeRoot: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newMediaTypeThreeDotsBtn = page.getByLabel('New Media Type…');\n this.mediaEditPropertyWorkspace = page.locator('umb-media-type-workspace-view-edit-property');\n this.mediaTypeBtn = this.createOptionActionListModal.locator('[name=\"Media Type\"]');\n this.mediaTypesMenu = page.locator('#menu-item').getByRole('link', {name: 'Media Types'});\n this.mediaTypeTreeRoot = page.locator('[alias=\"Umb.TreeItem.MediaType\"]').locator('uui-menu-item[label=\"Media Types\"]')\n }\n\n async clickActionsMenuForMediaType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForMediaType(\"Media Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName(\"Media Types\");\n }\n\n async clickNewMediaTypeButton() {\n await this.click(this.newMediaTypeThreeDotsBtn);\n }\n\n async isMediaTypeTreeItemVisible(name: string, isVisible: boolean = true) {\n const hasShowChildren = await this.mediaTypeTreeRoot.getAttribute('show-children') !== null;\n\n if (!hasShowChildren) {\n await this.click(this.mediaTypeTreeRoot.locator(this.caretBtn).first());\n }\n\n await this.isTreeItemVisible(name, isVisible);\n }\n\n async waitForMediaTypeToBeCreated() {\n await this.waitForLoadState();\n }\n\n async waitForMediaTypeToBeDeleted() {\n await this.waitForLoadState();\n }\n\n async waitForMediaTypeToBeRenamed() {\n await this.waitForLoadState();\n }\n\n\n async goToMediaType(mediaTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.clickLabelWithName(mediaTypeName);\n }\n\n async enterMediaTypeName(name: string) {\n await this.enterText(this.enterAName, name);\n }\n\n async enterDescriptionForPropertyEditorWithName(propertyEditorName: string, description: string) {\n await this.mediaEditPropertyWorkspace.filter({hasText: propertyEditorName}).getByLabel('description').fill(description);\n }\n\n async clickMediaTypeButton() {\n await this.click(this.mediaTypeBtn);\n }\n\n async clickMediaTypesMenu() {\n await this.click(this.mediaTypesMenu);\n }\n}\n"]}
1
+ {"version":3,"file":"MediaTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class MediaTypeUiHelper extends UiBaseLocators {\n private readonly newMediaTypeThreeDotsBtn: Locator;\n private readonly mediaEditPropertyWorkspace: Locator;\n private readonly mediaTypeBtn: Locator;\n private readonly mediaTypesMenu: Locator;\n private readonly mediaTypeTreeRoot: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newMediaTypeThreeDotsBtn = page.getByLabel('New Media Type…');\n this.mediaEditPropertyWorkspace = page.locator('umb-media-type-workspace-view-edit-property');\n this.mediaTypeBtn = this.createOptionActionListModal.locator('[name=\"Media Type\"]');\n this.mediaTypesMenu = page.locator('#menu-item').getByRole('link', {name: 'Media Types'});\n this.mediaTypeTreeRoot = page.locator('[alias=\"Umb.TreeItem.MediaType\"]').locator('uui-menu-item[label=\"Media Types\"]')\n }\n\n async clickActionsMenuForMediaType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForMediaType(\"Media Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName(\"Media Types\");\n }\n\n async clickNewMediaTypeButton() {\n await this.newMediaTypeThreeDotsBtn.click();\n }\n\n async isMediaTypeTreeItemVisible(name: string, isVisible: boolean = true) {\n {\n const hasShowChildren = await this.mediaTypeTreeRoot.getAttribute('show-children') !== null;\n\n if (!hasShowChildren) {\n await this.mediaTypeTreeRoot.locator(this.caretBtn).first().click();\n }\n\n await this.isTreeItemVisible(name, isVisible);\n }\n }\n\n async waitForMediaTypeToBeCreated() {\n await this.page.waitForLoadState();\n }\n\n async waitForMediaTypeToBeDeleted() {\n await this.page.waitForLoadState();\n }\n\n async waitForMediaTypeToBeRenamed() {\n await this.page.waitForLoadState();\n }\n\n\n async goToMediaType(mediaTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.clickLabelWithName(mediaTypeName);\n }\n\n async enterMediaTypeName(name: string) {\n await this.enterAName.waitFor({state: 'visible'});\n await this.enterAName.fill(name);\n }\n\n async enterDescriptionForPropertyEditorWithName(propertyEditorName: string, description: string) {\n await this.mediaEditPropertyWorkspace.filter({hasText: propertyEditorName}).getByLabel('description').fill(description);\n }\n\n async clickMediaTypeButton() {\n await expect(this.mediaTypeBtn).toBeVisible();\n await this.mediaTypeBtn.click();\n }\n\n async clickMediaTypesMenu() {\n await expect(this.mediaTypesMenu).toBeVisible();\n await this.mediaTypesMenu.click();\n }\n}\n"]}