@umbraco/playwright-testhelpers 16.0.24 → 16.0.26

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 (31) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +2 -0
  2. package/dist/lib/helpers/ApiHelpers.js +3 -0
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/ConstantHelper.d.ts +5 -0
  5. package/dist/lib/helpers/ConstantHelper.js +28 -1
  6. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  7. package/dist/lib/helpers/ContentUiHelper.d.ts +1 -0
  8. package/dist/lib/helpers/ContentUiHelper.js +4 -1
  9. package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
  10. package/dist/lib/helpers/DataTypeUiHelper.d.ts +4 -2
  11. package/dist/lib/helpers/DataTypeUiHelper.js +12 -6
  12. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
  13. package/dist/lib/helpers/UiBaseLocators.d.ts +1 -0
  14. package/dist/lib/helpers/UiBaseLocators.js +5 -1
  15. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  16. package/dist/lib/helpers/UiHelpers.d.ts +2 -0
  17. package/dist/lib/helpers/UiHelpers.js +3 -0
  18. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  19. package/dist/lib/helpers/UserGroupApiHelper.d.ts +15 -0
  20. package/dist/lib/helpers/UserGroupApiHelper.js +284 -0
  21. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  22. package/dist/lib/helpers/UserGroupUiHelper.js +2 -2
  23. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
  24. package/dist/lib/helpers/WebhookApiHelper.d.ts +29 -0
  25. package/dist/lib/helpers/WebhookApiHelper.js +169 -0
  26. package/dist/lib/helpers/WebhookApiHelper.js.map +1 -0
  27. package/dist/lib/helpers/WebhookUiHelper.d.ts +29 -0
  28. package/dist/lib/helpers/WebhookUiHelper.js +92 -0
  29. package/dist/lib/helpers/WebhookUiHelper.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"UserGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class UserGroupUiHelper extends UiBaseLocators {\n private readonly userGroupsBtn: Locator;\n private readonly chooseSectionBtn: Locator;\n private readonly languageInput: Locator;\n private readonly chooseLanguageBtn: Locator;\n private readonly permissionVerbBtn: Locator;\n private readonly userGroupCreateBtn: Locator;\n private readonly allowAccessToAllLanguagesBtn: Locator;\n private readonly allowAccessToAllDocumentsBtn: Locator;\n private readonly allowAccessToAllMediaBtn: Locator;\n private readonly contentStartNode: Locator;\n private readonly mediaStartNode: Locator;\n private readonly section: Locator;\n private readonly granularPermission: Locator;\n private readonly addGranularPermissionBtn: Locator;\n private readonly granularPermissionsModal: Locator;\n private readonly iconChecked: Locator;\n private readonly inputEntityUserPermissionList: Locator;\n private readonly sectionList: Locator;\n\n constructor(page: Page) {\n super(page);\n this.userGroupsBtn = page.getByLabel('User groups');\n this.permissionVerbBtn = page.locator('umb-input-user-permission-verb');\n this.chooseSectionBtn = page.locator('umb-input-section').getByLabel('Choose');\n this.languageInput = page.locator('umb-input-language');\n this.chooseLanguageBtn = this.languageInput.getByLabel('Choose');\n this.userGroupCreateBtn = page.getByLabel('Create');\n this.allowAccessToAllLanguagesBtn = page.getByText('Allow access to all languages');\n this.allowAccessToAllDocumentsBtn = page.getByText('Allow access to all documents');\n this.allowAccessToAllMediaBtn = page.getByText('Allow access to all media');\n this.contentStartNode = page.locator('umb-input-document');\n this.mediaStartNode = page.locator('umb-input-media');\n this.sectionList = page.locator('umb-input-section uui-ref-list');\n this.section = this.sectionList.locator('umb-ref-section');\n this.granularPermission = page.locator('umb-input-document-granular-user-permission');\n this.addGranularPermissionBtn = this.granularPermission.getByLabel('Add');\n this.granularPermissionsModal = page.locator('umb-entity-user-permission-settings-modal');\n this.iconChecked = page.locator('uui-toggle').locator('#icon-checked').getByRole('img');\n this.inputEntityUserPermissionList = page.locator('umb-user-group-entity-user-permission-list');\n }\n\n async clickUserGroupsButton() {\n await expect(this.userGroupsBtn).toBeVisible();\n await this.userGroupsBtn.click();\n await this.page.waitForTimeout(500);\n }\n\n async enterUserGroupName(name: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.clear();\n await this.enterAName.fill(name);\n }\n\n async addLanguageToUserGroup(languageName: string) {\n await expect(this.chooseLanguageBtn).toBeVisible();\n await this.chooseLanguageBtn.click();\n await this.clickLabelWithName(languageName, true);\n await this.clickSubmitButton();\n }\n\n async clickAllowAccessToAllLanguages() {\n await expect(this.allowAccessToAllLanguagesBtn).toBeVisible();\n await this.allowAccessToAllLanguagesBtn.click();\n }\n\n async clickAllowAccessToAllDocuments() {\n await expect(this.allowAccessToAllDocumentsBtn).toBeVisible();\n await this.allowAccessToAllDocumentsBtn.click();\n }\n\n async clickAllowAccessToAllMedia() {\n await expect(this.allowAccessToAllMediaBtn).toBeVisible();\n await this.allowAccessToAllMediaBtn.click();\n }\n\n async waitForUserGroupToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForUserGroupToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForUserGroupToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n\n async clickCreateUserGroupButton() {\n await expect(this.userGroupCreateBtn).toBeVisible();\n await this.userGroupCreateBtn.click();\n }\n\n async clickRemoveLanguageFromUserGroup(languageName: string) {\n await expect(this.page.locator('uui-ref-node').filter({hasText: languageName}).getByLabel('Remove')).toBeVisible();\n await this.page.locator('uui-ref-node').filter({hasText: languageName}).getByLabel('Remove').click();\n }\n\n async isUserGroupWithNameVisible(name: string, isVisible = true) {\n return await expect(this.page.locator('uui-table-row', {hasText: name})).toBeVisible({visible: isVisible});\n }\n\n async clickUserGroupWithName(name: string) {\n await expect(this.page.getByRole('link', {name: name})).toBeVisible();\n await this.page.getByRole('link', {name: name}).click();\n await this.page.waitForTimeout(200);\n }\n\n async clickPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.permissionVerbBtn.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async clickGranularPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.granularPermissionsModal.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async doesUserGroupHavePermission(permissionName: string, hasPermission = true) {\n await expect(this.permissionVerbBtn.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async doesUserGroupHaveGranularPermission(permissionName: string, hasPermission = true) {\n await expect(this.granularPermissionsModal.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async addSectionWithNameToUserGroup(sectionName: string) {\n await this.clickChooseSectionButton();\n await this.clickLabelWithName(sectionName, true);\n await this.clickSubmitButton();\n }\n\n async clickChooseSectionButton() {\n await expect(this.chooseSectionBtn).toBeVisible();\n await this.chooseSectionBtn.click();\n }\n\n async doesUserGroupTableHaveSection(userGroupName: string, sectionName: string, hasSection = true) {\n await expect(this.page.locator('uui-table-row', {hasText: userGroupName}).locator('umb-user-group-table-sections-column-layout', {hasText: sectionName})).toBeVisible({visible: hasSection});\n }\n\n async doesUserGroupContainLanguage(languageName: string, isVisible = true) {\n await expect(this.languageInput).toBeVisible();\n await expect(this.languageInput.filter({hasText: languageName})).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveSectionFromUserGroup(sectionName: string) {\n await expect(this.section.filter({hasText: sectionName}).getByLabel('Remove')).toBeVisible();\n await this.section.filter({hasText: sectionName}).getByLabel('Remove').click();\n }\n\n async clickRemoveContentStartNodeFromUserGroup(contentStartNodeName: string) {\n await expect(this.contentStartNode.filter({hasText: contentStartNodeName}).getByLabel('Remove')).toBeVisible();\n await this.contentStartNode.filter({hasText: contentStartNodeName}).getByLabel('Remove').click();\n }\n\n async clickRemoveMediaStartNodeFromUserGroup(mediaStartNodeName: string) {\n const removeMediaStartNodeWithNameLocator = this.mediaStartNode.filter({hasText: mediaStartNodeName}).getByLabel('Remove');\n await expect(removeMediaStartNodeWithNameLocator).toBeVisible();\n // Force click is needed\n await removeMediaStartNodeWithNameLocator.click({force: true});\n }\n\n async doesUserGroupHavePermissionEnabled(permissionName: string[]) {\n return await Promise.all(\n permissionName.map(permission => this.doesUserGroupHavePermission(permission))\n );\n }\n\n async clickGranularPermissionWithName(permissionName: string) {\n await expect(this.granularPermission.getByText(permissionName)).toBeVisible();\n await this.granularPermission.getByText(permissionName).click();\n }\n\n async clickAddGranularPermission() {\n await expect(this.addGranularPermissionBtn).toBeVisible();\n await this.addGranularPermissionBtn.click();\n }\n\n async clickRemoveGranularPermissionWithName(permissionName: string) {\n await expect(this.granularPermission.filter({hasText: permissionName}).getByLabel('Remove')).toBeVisible();\n await this.granularPermission.filter({hasText: permissionName}).getByLabel('Remove').click();\n }\n\n async doesSettingHaveValue(headline: string, settings) {\n for (let index = 0; index < Object.keys(settings).length; index++) {\n const [label, description] = settings[index];\n const propertyLocator = this.page.locator('uui-box').filter({hasText: headline}).locator('umb-property-layout').nth(index);\n await expect(propertyLocator.locator('#headerColumn #label')).toHaveText(label);\n if (description !== '')\n await expect(propertyLocator.locator('#description')).toHaveText(description);\n }\n }\n\n async doesPermissionsSettingsHaveValue(settings) {\n for (let index = 0; index < Object.keys(settings).length; index++) {\n const [name, description] = settings[index];\n const permissionItemLocator = this.inputEntityUserPermissionList.locator(this.permissionVerbBtn).nth(index);\n await expect(permissionItemLocator.locator('#name')).toHaveText(name);\n if (description !== '')\n await expect(permissionItemLocator.locator('#setting small')).toHaveText(description);\n }\n }\n\n async doesUserGroupContainSection(section: string) {\n return await expect(this.sectionList).toContainText(section);\n }\n\n async doesUserGroupHaveSections(sections: string[]) {\n return await Promise.all(\n sections.map(section => this.doesUserGroupContainSection(section))\n );\n }\n\n async doesUserGroupSectionsHaveCount(count: number) {\n return await expect(this.section).toHaveCount(count);\n }\n}"]}
1
+ {"version":3,"file":"UserGroupUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class UserGroupUiHelper extends UiBaseLocators {\n private readonly userGroupsBtn: Locator;\n private readonly chooseSectionBtn: Locator;\n private readonly languageInput: Locator;\n private readonly chooseLanguageBtn: Locator;\n private readonly permissionVerbBtn: Locator;\n private readonly userGroupCreateBtn: Locator;\n private readonly allowAccessToAllLanguagesBtn: Locator;\n private readonly allowAccessToAllDocumentsBtn: Locator;\n private readonly allowAccessToAllMediaBtn: Locator;\n private readonly contentStartNode: Locator;\n private readonly mediaStartNode: Locator;\n private readonly section: Locator;\n private readonly granularPermission: Locator;\n private readonly addGranularPermissionBtn: Locator;\n private readonly granularPermissionsModal: Locator;\n private readonly iconChecked: Locator;\n private readonly inputEntityUserPermissionList: Locator;\n private readonly sectionList: Locator;\n\n constructor(page: Page) {\n super(page);\n this.userGroupsBtn = page.getByLabel('User groups');\n this.permissionVerbBtn = page.locator('umb-input-user-permission-verb');\n this.chooseSectionBtn = page.locator('umb-input-section').getByLabel('Choose');\n this.languageInput = page.locator('umb-input-language');\n this.chooseLanguageBtn = this.languageInput.getByLabel('Choose');\n this.userGroupCreateBtn = page.getByLabel('Create');\n this.allowAccessToAllLanguagesBtn = page.getByText('Allow access to all languages');\n this.allowAccessToAllDocumentsBtn = page.getByText('Allow access to all documents');\n this.allowAccessToAllMediaBtn = page.getByText('Allow access to all media');\n this.contentStartNode = page.locator('umb-input-document');\n this.mediaStartNode = page.locator('umb-input-media');\n this.sectionList = page.locator('umb-input-section uui-ref-list');\n this.section = this.sectionList.locator('umb-ref-section');\n this.granularPermission = page.locator('umb-input-document-granular-user-permission');\n this.addGranularPermissionBtn = this.granularPermission.getByLabel('Add');\n this.granularPermissionsModal = page.locator('umb-entity-user-permission-settings-modal');\n this.iconChecked = page.locator('uui-toggle').locator('#icon-checked').getByRole('img');\n this.inputEntityUserPermissionList = page.locator('umb-user-group-entity-user-permission-list');\n }\n\n async clickUserGroupsButton() {\n await expect(this.userGroupsBtn).toBeVisible();\n await this.userGroupsBtn.click();\n await this.page.waitForTimeout(500);\n }\n\n async enterUserGroupName(name: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.clear();\n await this.enterAName.fill(name);\n }\n\n async addLanguageToUserGroup(languageName: string) {\n await expect(this.chooseLanguageBtn).toBeVisible();\n await this.chooseLanguageBtn.click();\n await this.clickLabelWithName(languageName, true);\n await this.clickSubmitButton();\n }\n\n async clickAllowAccessToAllLanguages() {\n await expect(this.allowAccessToAllLanguagesBtn).toBeVisible();\n await this.allowAccessToAllLanguagesBtn.click();\n }\n\n async clickAllowAccessToAllDocuments() {\n await expect(this.allowAccessToAllDocumentsBtn).toBeVisible();\n await this.allowAccessToAllDocumentsBtn.click();\n }\n\n async clickAllowAccessToAllMedia() {\n await expect(this.allowAccessToAllMediaBtn).toBeVisible();\n await this.allowAccessToAllMediaBtn.click();\n }\n\n async waitForUserGroupToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForUserGroupToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForUserGroupToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n\n async clickCreateUserGroupButton() {\n await expect(this.userGroupCreateBtn).toBeVisible();\n await this.userGroupCreateBtn.click();\n }\n\n async clickRemoveLanguageFromUserGroup(languageName: string) {\n await expect(this.page.locator('umb-entity-item-ref').filter({hasText: languageName}).getByLabel('Remove')).toBeVisible();\n await this.page.locator('umb-entity-item-ref').filter({hasText: languageName}).getByLabel('Remove').click();\n }\n\n async isUserGroupWithNameVisible(name: string, isVisible = true) {\n return await expect(this.page.locator('uui-table-row', {hasText: name})).toBeVisible({visible: isVisible});\n }\n\n async clickUserGroupWithName(name: string) {\n await expect(this.page.getByRole('link', {name: name})).toBeVisible();\n await this.page.getByRole('link', {name: name}).click();\n await this.page.waitForTimeout(200);\n }\n\n async clickPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.permissionVerbBtn.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async clickGranularPermissionsByName(permissionName: string[]) {\n for (let i = 0; i < permissionName.length; i++) {\n await this.granularPermissionsModal.getByText(permissionName[i], {exact: true}).click();\n }\n }\n\n async doesUserGroupHavePermission(permissionName: string, hasPermission = true) {\n await expect(this.permissionVerbBtn.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async doesUserGroupHaveGranularPermission(permissionName: string, hasPermission = true) {\n await expect(this.granularPermissionsModal.filter({has: this.page.getByLabel(permissionName, {exact: true})}).filter({has: this.iconChecked})).toBeVisible({visible: hasPermission});\n }\n\n async addSectionWithNameToUserGroup(sectionName: string) {\n await this.clickChooseSectionButton();\n await this.clickLabelWithName(sectionName, true);\n await this.clickSubmitButton();\n }\n\n async clickChooseSectionButton() {\n await expect(this.chooseSectionBtn).toBeVisible();\n await this.chooseSectionBtn.click();\n }\n\n async doesUserGroupTableHaveSection(userGroupName: string, sectionName: string, hasSection = true) {\n await expect(this.page.locator('uui-table-row', {hasText: userGroupName}).locator('umb-user-group-table-sections-column-layout', {hasText: sectionName})).toBeVisible({visible: hasSection});\n }\n\n async doesUserGroupContainLanguage(languageName: string, isVisible = true) {\n await expect(this.languageInput).toBeVisible();\n await expect(this.languageInput.filter({hasText: languageName})).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveSectionFromUserGroup(sectionName: string) {\n await expect(this.section.filter({hasText: sectionName}).getByLabel('Remove')).toBeVisible();\n await this.section.filter({hasText: sectionName}).getByLabel('Remove').click();\n }\n\n async clickRemoveContentStartNodeFromUserGroup(contentStartNodeName: string) {\n await expect(this.contentStartNode.filter({hasText: contentStartNodeName}).getByLabel('Remove')).toBeVisible();\n await this.contentStartNode.filter({hasText: contentStartNodeName}).getByLabel('Remove').click();\n }\n\n async clickRemoveMediaStartNodeFromUserGroup(mediaStartNodeName: string) {\n const removeMediaStartNodeWithNameLocator = this.mediaStartNode.filter({hasText: mediaStartNodeName}).getByLabel('Remove');\n await expect(removeMediaStartNodeWithNameLocator).toBeVisible();\n // Force click is needed\n await removeMediaStartNodeWithNameLocator.click({force: true});\n }\n\n async doesUserGroupHavePermissionEnabled(permissionName: string[]) {\n return await Promise.all(\n permissionName.map(permission => this.doesUserGroupHavePermission(permission))\n );\n }\n\n async clickGranularPermissionWithName(permissionName: string) {\n await expect(this.granularPermission.getByText(permissionName)).toBeVisible();\n await this.granularPermission.getByText(permissionName).click();\n }\n\n async clickAddGranularPermission() {\n await expect(this.addGranularPermissionBtn).toBeVisible();\n await this.addGranularPermissionBtn.click();\n }\n\n async clickRemoveGranularPermissionWithName(permissionName: string) {\n await expect(this.granularPermission.filter({hasText: permissionName}).getByLabel('Remove')).toBeVisible();\n await this.granularPermission.filter({hasText: permissionName}).getByLabel('Remove').click();\n }\n\n async doesSettingHaveValue(headline: string, settings) {\n for (let index = 0; index < Object.keys(settings).length; index++) {\n const [label, description] = settings[index];\n const propertyLocator = this.page.locator('uui-box').filter({hasText: headline}).locator('umb-property-layout').nth(index);\n await expect(propertyLocator.locator('#headerColumn #label')).toHaveText(label);\n if (description !== '')\n await expect(propertyLocator.locator('#description')).toHaveText(description);\n }\n }\n\n async doesPermissionsSettingsHaveValue(settings) {\n for (let index = 0; index < Object.keys(settings).length; index++) {\n const [name, description] = settings[index];\n const permissionItemLocator = this.inputEntityUserPermissionList.locator(this.permissionVerbBtn).nth(index);\n await expect(permissionItemLocator.locator('#name')).toHaveText(name);\n if (description !== '')\n await expect(permissionItemLocator.locator('#setting small')).toHaveText(description);\n }\n }\n\n async doesUserGroupContainSection(section: string) {\n return await expect(this.sectionList).toContainText(section);\n }\n\n async doesUserGroupHaveSections(sections: string[]) {\n return await Promise.all(\n sections.map(section => this.doesUserGroupContainSection(section))\n );\n }\n\n async doesUserGroupSectionsHaveCount(count: number) {\n return await expect(this.section).toHaveCount(count);\n }\n}"]}
@@ -0,0 +1,29 @@
1
+ import { Page } from "@playwright/test";
2
+ import { ApiHelpers } from "./ApiHelpers";
3
+ export declare class WebhookApiHelper {
4
+ api: ApiHelpers;
5
+ page: Page;
6
+ webhookSiteUrl: string;
7
+ constructor(api: ApiHelpers, page: Page);
8
+ get(id: string): Promise<any>;
9
+ doesExist(id: string): Promise<boolean>;
10
+ create(webhookData: any): Promise<string | undefined>;
11
+ delete(id: string): Promise<import("playwright-core").APIResponse>;
12
+ update(webhook: object): Promise<import("playwright-core").APIResponse>;
13
+ getAll(): Promise<import("playwright-core").APIResponse>;
14
+ doesNameExist(name: string): Promise<any>;
15
+ getByName(name: string): Promise<any>;
16
+ ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
17
+ generateWebhookSiteToken(): Promise<any>;
18
+ getWebhookSiteRequestResponse(webhookSiteToken: string, timeoutMs?: number, pollInterval?: number): Promise<any>;
19
+ doesWebhookHaveEvent(webhookName: string, eventName: string): Promise<any>;
20
+ doesWebhookHaveContentTypeId(webhookName: string, contentTypeId: string): Promise<any>;
21
+ doesWebhookHaveHeader(webhookName: string, headerName: string, headerValue: string): Promise<boolean>;
22
+ doesWebhookHaveUrl(webhookName: string, url: string): Promise<boolean>;
23
+ isWebhookEnabled(webhookName: string, isEnabled?: boolean): Promise<void>;
24
+ getEventTypeValue(eventName: string): Promise<string>;
25
+ getEventAliasValue(eventName: string): Promise<string>;
26
+ createDefaultWebhook(webhookName: string, webhookSiteToken: string, eventName?: string, isEnabled?: boolean): Promise<string | undefined>;
27
+ createWebhookForSpecificContentType(webhookName: string, webhookSiteToken: string, eventName: string, contentTypeName: string): Promise<string | undefined>;
28
+ createWebhookWithHeader(webhookName: string, webhookSiteToken: string, eventName: string, headerName: string, headerValue: string): Promise<string | undefined>;
29
+ }
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebhookApiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
6
+ const ConstantHelper_1 = require("./ConstantHelper");
7
+ class WebhookApiHelper {
8
+ api;
9
+ page;
10
+ webhookSiteUrl = 'https://webhook.site/';
11
+ constructor(api, page) {
12
+ this.api = api;
13
+ this.page = page;
14
+ }
15
+ async get(id) {
16
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);
17
+ const json = await response.json();
18
+ if (json !== null) {
19
+ return json;
20
+ }
21
+ return null;
22
+ }
23
+ async doesExist(id) {
24
+ const response = await this.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);
25
+ return response.status() === 200;
26
+ }
27
+ async create(webhookData) {
28
+ if (webhookData == null) {
29
+ return;
30
+ }
31
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/webhook', webhookData);
32
+ // Returns the id of the created webhook
33
+ return response.headers().location.split("/").pop();
34
+ }
35
+ async delete(id) {
36
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);
37
+ }
38
+ async update(webhook) {
39
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/webhook/', webhook);
40
+ }
41
+ async getAll() {
42
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook?pageSize=50&skip=0&take=10000');
43
+ }
44
+ async doesNameExist(name) {
45
+ return await this.getByName(name);
46
+ }
47
+ async getByName(name) {
48
+ const allWebhooks = await this.getAll();
49
+ const jsonWebhooks = await allWebhooks.json();
50
+ for (const webhook of jsonWebhooks.items) {
51
+ if (webhook.name === name) {
52
+ return await this.get(webhook.id);
53
+ }
54
+ }
55
+ return null;
56
+ }
57
+ async ensureNameNotExists(name) {
58
+ const allWebhooks = await this.getAll();
59
+ const jsonWebhooks = await allWebhooks.json();
60
+ for (const webhook of jsonWebhooks.items) {
61
+ if (webhook.name === name) {
62
+ return await this.delete(webhook.id);
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ async generateWebhookSiteToken() {
68
+ const createWebhookResponse = await this.page.request.post(this.webhookSiteUrl + 'token', {
69
+ headers: {
70
+ 'Accept': 'application/json'
71
+ }
72
+ });
73
+ const webhookData = await createWebhookResponse.json();
74
+ const webhookToken = webhookData.uuid;
75
+ return webhookToken;
76
+ }
77
+ async getWebhookSiteRequestResponse(webhookSiteToken, timeoutMs = 15000, pollInterval = 1000) {
78
+ const requestUrl = this.webhookSiteUrl + 'token/' + webhookSiteToken + '/requests';
79
+ const start = Date.now();
80
+ while (Date.now() - start < timeoutMs) {
81
+ const requestResponse = await this.page.request.get(requestUrl, {
82
+ headers: {
83
+ 'Accept': 'application/json'
84
+ }
85
+ });
86
+ const requestJson = await requestResponse.json();
87
+ if (requestJson.total > 0) {
88
+ return requestJson.data;
89
+ }
90
+ // Polling again if there is no webhook received yet
91
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
92
+ }
93
+ return null;
94
+ }
95
+ async doesWebhookHaveEvent(webhookName, eventName) {
96
+ const webhookData = await this.getByName(webhookName);
97
+ return webhookData.events.find(event => event.eventName === eventName);
98
+ }
99
+ async doesWebhookHaveContentTypeId(webhookName, contentTypeId) {
100
+ const webhookData = await this.getByName(webhookName);
101
+ return webhookData.contentTypeKeys.includes(contentTypeId);
102
+ }
103
+ async doesWebhookHaveHeader(webhookName, headerName, headerValue) {
104
+ const webhookData = await this.getByName(webhookName);
105
+ return webhookData.headers[headerName] === headerValue;
106
+ }
107
+ async doesWebhookHaveUrl(webhookName, url) {
108
+ const webhookData = await this.getByName(webhookName);
109
+ return webhookData.url === url;
110
+ }
111
+ async isWebhookEnabled(webhookName, isEnabled = true) {
112
+ const webhookData = await this.getByName(webhookName);
113
+ return (0, test_1.expect)(webhookData.enabled).toBe(isEnabled);
114
+ }
115
+ async getEventTypeValue(eventName) {
116
+ const eventData = ConstantHelper_1.ConstantHelper.webhookEvents.find(event => event.eventName === eventName);
117
+ return eventData?.eventType || '';
118
+ }
119
+ async getEventAliasValue(eventName) {
120
+ const eventData = ConstantHelper_1.ConstantHelper.webhookEvents.find(event => event.eventName === eventName);
121
+ return eventData?.alias || '';
122
+ }
123
+ async createDefaultWebhook(webhookName, webhookSiteToken, eventName = 'Content Published', isEnabled = true) {
124
+ await this.ensureNameNotExists(webhookName);
125
+ const webhookUrl = this.webhookSiteUrl + webhookSiteToken;
126
+ const eventAlias = await this.getEventAliasValue(eventName);
127
+ const webhook = new json_models_builders_1.WebhookBuilder()
128
+ .withName(webhookName)
129
+ .withUrl(webhookUrl)
130
+ .withEventAlias(eventAlias)
131
+ .withEnabled(isEnabled)
132
+ .build();
133
+ return await this.create(webhook);
134
+ }
135
+ async createWebhookForSpecificContentType(webhookName, webhookSiteToken, eventName, contentTypeName) {
136
+ await this.ensureNameNotExists(webhookName);
137
+ const webhookUrl = this.webhookSiteUrl + webhookSiteToken;
138
+ const eventAlias = await this.getEventAliasValue(eventName);
139
+ const eventType = await this.getEventTypeValue(eventName);
140
+ let contentTypeData;
141
+ if (eventType == 'Content') {
142
+ contentTypeData = await this.api.documentType.getByName(contentTypeName);
143
+ }
144
+ else {
145
+ contentTypeData = await this.api.mediaType.getByName(contentTypeName);
146
+ }
147
+ const webhook = new json_models_builders_1.WebhookBuilder()
148
+ .withName(webhookName)
149
+ .withUrl(webhookUrl)
150
+ .withEventAlias(eventAlias)
151
+ .withContentTypeKey(contentTypeData.id)
152
+ .build();
153
+ return await this.create(webhook);
154
+ }
155
+ async createWebhookWithHeader(webhookName, webhookSiteToken, eventName, headerName, headerValue) {
156
+ await this.ensureNameNotExists(webhookName);
157
+ const webhookUrl = this.webhookSiteUrl + webhookSiteToken;
158
+ const eventAlias = await this.getEventAliasValue(eventName);
159
+ const webhook = new json_models_builders_1.WebhookBuilder()
160
+ .withName(webhookName)
161
+ .withUrl(webhookUrl)
162
+ .withEventAlias(eventAlias)
163
+ .withHeader(headerName, headerValue)
164
+ .build();
165
+ return await this.create(webhook);
166
+ }
167
+ }
168
+ exports.WebhookApiHelper = WebhookApiHelper;
169
+ //# sourceMappingURL=WebhookApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/WebhookApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Page} from \"@playwright/test\";\nimport {ApiHelpers} from \"./ApiHelpers\";\nimport {WebhookBuilder} from \"@umbraco/json-models-builders\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class WebhookApiHelper {\n api: ApiHelpers;\n page: Page;\n webhookSiteUrl: string = 'https://webhook.site/';\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);\n return response.status() === 200;\n }\n\n async create(webhookData) {\n if (webhookData == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/webhook', webhookData);\n // Returns the id of the created webhook\n return response.headers().location.split(\"/\").pop();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/webhook/' + id);\n }\n\n async update(webhook: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/webhook/', webhook);\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/webhook?pageSize=50&skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const allWebhooks = await this.getAll();\n const jsonWebhooks = await allWebhooks.json();\n\n for (const webhook of jsonWebhooks.items) {\n if (webhook.name === name) {\n return await this.get(webhook.id);\n }\n }\n return null;\n }\n\n async ensureNameNotExists(name: string) {\n const allWebhooks = await this.getAll();\n const jsonWebhooks = await allWebhooks.json();\n\n for (const webhook of jsonWebhooks.items) {\n if (webhook.name === name) {\n return await this.delete(webhook.id);\n }\n }\n return null;\n }\n\n async generateWebhookSiteToken() {\n const createWebhookResponse = await this.page.request.post(this.webhookSiteUrl + 'token', {\n headers: {\n 'Accept': 'application/json'\n }\n });\n const webhookData = await createWebhookResponse.json();\n const webhookToken = webhookData.uuid;\n return webhookToken;\n }\n\n async getWebhookSiteRequestResponse(webhookSiteToken: string, timeoutMs: number = 15000, pollInterval: number = 1000) {\n const requestUrl = this.webhookSiteUrl + 'token/' + webhookSiteToken + '/requests';\n const start = Date.now();\n\n while (Date.now() - start < timeoutMs) {\n const requestResponse = await this.page.request.get(requestUrl, {\n headers: {\n 'Accept': 'application/json'\n }\n });\n const requestJson = await requestResponse.json();\n if (requestJson.total > 0) {\n return requestJson.data;\n }\n \n // Polling again if there is no webhook received yet\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n return null;\n }\n\n async doesWebhookHaveEvent(webhookName: string, eventName: string) {\n const webhookData = await this.getByName(webhookName);\n return webhookData.events.find(event => event.eventName === eventName);\n }\n\n async doesWebhookHaveContentTypeId(webhookName: string, contentTypeId: string) {\n const webhookData = await this.getByName(webhookName);\n return webhookData.contentTypeKeys.includes(contentTypeId);\n }\n\n async doesWebhookHaveHeader(webhookName: string, headerName: string, headerValue: string) {\n const webhookData = await this.getByName(webhookName);\n return webhookData.headers[headerName] === headerValue;\n }\n\n async doesWebhookHaveUrl(webhookName: string, url: string) {\n const webhookData = await this.getByName(webhookName);\n return webhookData.url === url;\n }\n\n async isWebhookEnabled(webhookName: string, isEnabled: boolean = true) {\n const webhookData = await this.getByName(webhookName);\n return expect(webhookData.enabled).toBe(isEnabled);\n }\n\n async getEventTypeValue(eventName: string) {\n const eventData = ConstantHelper.webhookEvents.find(event => event.eventName === eventName);\n return eventData?.eventType || '';\n }\n\n async getEventAliasValue(eventName: string) {\n const eventData = ConstantHelper.webhookEvents.find(event => event.eventName === eventName);\n return eventData?.alias || '';\n }\n\n async createDefaultWebhook(webhookName: string, webhookSiteToken: string, eventName: string = 'Content Published', isEnabled: boolean = true) {\n await this.ensureNameNotExists(webhookName);\n const webhookUrl = this.webhookSiteUrl + webhookSiteToken;\n const eventAlias = await this.getEventAliasValue(eventName);\n\n const webhook = new WebhookBuilder()\n .withName(webhookName)\n .withUrl(webhookUrl)\n .withEventAlias(eventAlias)\n .withEnabled(isEnabled)\n .build();\n\n return await this.create(webhook);\n }\n\n async createWebhookForSpecificContentType(webhookName: string, webhookSiteToken: string, eventName: string, contentTypeName: string) {\n await this.ensureNameNotExists(webhookName);\n const webhookUrl = this.webhookSiteUrl + webhookSiteToken;\n const eventAlias = await this.getEventAliasValue(eventName);\n const eventType = await this.getEventTypeValue(eventName);\n let contentTypeData;\n if (eventType == 'Content') {\n contentTypeData = await this.api.documentType.getByName(contentTypeName);\n } else {\n contentTypeData = await this.api.mediaType.getByName(contentTypeName);\n }\n\n const webhook = new WebhookBuilder()\n .withName(webhookName)\n .withUrl(webhookUrl)\n .withEventAlias(eventAlias)\n .withContentTypeKey(contentTypeData.id)\n .build();\n\n return await this.create(webhook);\n }\n\n async createWebhookWithHeader(webhookName: string, webhookSiteToken: string, eventName: string, headerName: string, headerValue: string) {\n await this.ensureNameNotExists(webhookName);\n const webhookUrl = this.webhookSiteUrl + webhookSiteToken;\n const eventAlias = await this.getEventAliasValue(eventName);\n\n const webhook = new WebhookBuilder()\n .withName(webhookName)\n .withUrl(webhookUrl)\n .withEventAlias(eventAlias)\n .withHeader(headerName, headerValue)\n .build();\n\n return await this.create(webhook);\n }\n}"]}
@@ -0,0 +1,29 @@
1
+ import { Page } from "@playwright/test";
2
+ import { UiBaseLocators } from "./UiBaseLocators";
3
+ export declare class WebhookUiHelper extends UiBaseLocators {
4
+ private readonly webhookCreateBtn;
5
+ private readonly webhookNameTxt;
6
+ private readonly urlTxt;
7
+ private readonly chooseEventBtn;
8
+ private readonly chooseContentTypeBtn;
9
+ private readonly enabledToggle;
10
+ private readonly addHeadersBtn;
11
+ private readonly headerNameTxt;
12
+ private readonly headerValueTxt;
13
+ private readonly deleteWebhookEntityAction;
14
+ private readonly headerRemoveBtn;
15
+ constructor(page: Page);
16
+ goToWebhooks(): Promise<void>;
17
+ goToWebhookWithName(name: string): Promise<void>;
18
+ clickWebhookCreateButton(): Promise<void>;
19
+ enterWebhookName(name: string): Promise<void>;
20
+ enterUrl(url: string): Promise<void>;
21
+ clickChooseEventButton(): Promise<void>;
22
+ clickChooseContentTypeButton(): Promise<void>;
23
+ clickEnabledToggleButton(): Promise<void>;
24
+ clickAddHeadersButton(): Promise<void>;
25
+ enterHeaderName(name: string): Promise<void>;
26
+ enterHeaderValue(value: string): Promise<void>;
27
+ clickDeleteWebhookWithName(name: string): Promise<void>;
28
+ clickHeaderRemoveButton(): Promise<void>;
29
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebhookUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const UiBaseLocators_1 = require("./UiBaseLocators");
6
+ const ConstantHelper_1 = require("./ConstantHelper");
7
+ class WebhookUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
+ webhookCreateBtn;
9
+ webhookNameTxt;
10
+ urlTxt;
11
+ chooseEventBtn;
12
+ chooseContentTypeBtn;
13
+ enabledToggle;
14
+ addHeadersBtn;
15
+ headerNameTxt;
16
+ headerValueTxt;
17
+ deleteWebhookEntityAction;
18
+ headerRemoveBtn;
19
+ constructor(page) {
20
+ super(page);
21
+ this.webhookCreateBtn = page.getByTestId('collection-action:Umb.CollectionAction.Webhook.Create');
22
+ this.webhookNameTxt = page.locator('#name #input');
23
+ this.urlTxt = page.locator('umb-property-layout[label="URL"] #input');
24
+ this.chooseEventBtn = page.locator('umb-property-layout[label="Events"]').getByLabel('Choose');
25
+ this.chooseContentTypeBtn = page.locator('umb-property-layout[label="Content Type"]').getByLabel('Choose');
26
+ this.enabledToggle = page.locator('umb-property-layout[label="Enabled"] #toggle');
27
+ this.addHeadersBtn = page.locator('umb-property-layout[label="Headers"] #add');
28
+ this.headerNameTxt = page.locator('umb-input-webhook-headers').locator('[list="nameList"]');
29
+ this.headerValueTxt = page.locator('umb-input-webhook-headers').locator('[list="valueList"]');
30
+ this.deleteWebhookEntityAction = page.getByTestId('entity-action:Umb.EntityAction.Webhook.Delete');
31
+ this.headerRemoveBtn = page.locator('umb-input-webhook-headers').locator('[label="Remove"]');
32
+ }
33
+ async goToWebhooks() {
34
+ await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
35
+ await this.goToSettingsTreeItem('Webhooks');
36
+ }
37
+ async goToWebhookWithName(name) {
38
+ await this.goToWebhooks();
39
+ await this.clickTextButtonWithName(name);
40
+ }
41
+ async clickWebhookCreateButton() {
42
+ await (0, test_1.expect)(this.webhookCreateBtn).toBeVisible();
43
+ await this.webhookCreateBtn.click();
44
+ }
45
+ async enterWebhookName(name) {
46
+ await (0, test_1.expect)(this.webhookNameTxt).toBeVisible();
47
+ await this.webhookNameTxt.clear();
48
+ await this.webhookNameTxt.fill(name);
49
+ }
50
+ async enterUrl(url) {
51
+ await (0, test_1.expect)(this.urlTxt).toBeVisible();
52
+ await this.urlTxt.clear();
53
+ await this.urlTxt.fill(url);
54
+ }
55
+ async clickChooseEventButton() {
56
+ await (0, test_1.expect)(this.chooseEventBtn).toBeVisible();
57
+ await this.chooseEventBtn.click();
58
+ }
59
+ async clickChooseContentTypeButton() {
60
+ await (0, test_1.expect)(this.chooseContentTypeBtn).toBeVisible();
61
+ await this.chooseContentTypeBtn.click();
62
+ }
63
+ async clickEnabledToggleButton() {
64
+ await (0, test_1.expect)(this.enabledToggle).toBeVisible();
65
+ await this.enabledToggle.click();
66
+ }
67
+ async clickAddHeadersButton() {
68
+ await (0, test_1.expect)(this.addHeadersBtn).toBeVisible();
69
+ await this.addHeadersBtn.click();
70
+ }
71
+ async enterHeaderName(name) {
72
+ await (0, test_1.expect)(this.headerNameTxt).toBeVisible();
73
+ await this.headerNameTxt.clear();
74
+ await this.headerNameTxt.fill(name);
75
+ }
76
+ async enterHeaderValue(value) {
77
+ await (0, test_1.expect)(this.headerValueTxt).toBeVisible();
78
+ await this.headerValueTxt.clear();
79
+ await this.headerValueTxt.fill(value);
80
+ }
81
+ async clickDeleteWebhookWithName(name) {
82
+ const deleteLocator = this.page.locator('uui-table-row').filter({ has: this.page.getByText(name, { exact: true }) }).locator(this.deleteWebhookEntityAction);
83
+ await (0, test_1.expect)(deleteLocator).toBeVisible();
84
+ await deleteLocator.click();
85
+ }
86
+ async clickHeaderRemoveButton() {
87
+ await (0, test_1.expect)(this.headerRemoveBtn).toBeVisible();
88
+ await this.headerRemoveBtn.click();
89
+ }
90
+ }
91
+ exports.WebhookUiHelper = WebhookUiHelper;
92
+ //# sourceMappingURL=WebhookUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/WebhookUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class WebhookUiHelper extends UiBaseLocators {\n private readonly webhookCreateBtn: Locator;\n private readonly webhookNameTxt: Locator;\n private readonly urlTxt: Locator;\n private readonly chooseEventBtn: Locator;\n private readonly chooseContentTypeBtn: Locator;\n private readonly enabledToggle: Locator;\n private readonly addHeadersBtn: Locator;\n private readonly headerNameTxt: Locator;\n private readonly headerValueTxt: Locator;\n private readonly deleteWebhookEntityAction: Locator;\n private readonly headerRemoveBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.webhookCreateBtn = page.getByTestId('collection-action:Umb.CollectionAction.Webhook.Create');\n this.webhookNameTxt = page.locator('#name #input');\n this.urlTxt = page.locator('umb-property-layout[label=\"URL\"] #input');\n this.chooseEventBtn = page.locator('umb-property-layout[label=\"Events\"]').getByLabel('Choose');\n this.chooseContentTypeBtn = page.locator('umb-property-layout[label=\"Content Type\"]').getByLabel('Choose');\n this.enabledToggle = page.locator('umb-property-layout[label=\"Enabled\"] #toggle');\n this.addHeadersBtn = page.locator('umb-property-layout[label=\"Headers\"] #add');\n this.headerNameTxt = page.locator('umb-input-webhook-headers').locator('[list=\"nameList\"]');\n this.headerValueTxt = page.locator('umb-input-webhook-headers').locator('[list=\"valueList\"]');\n this.deleteWebhookEntityAction = page.getByTestId('entity-action:Umb.EntityAction.Webhook.Delete');\n this.headerRemoveBtn = page.locator('umb-input-webhook-headers').locator('[label=\"Remove\"]');\n }\n\n async goToWebhooks() {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.goToSettingsTreeItem('Webhooks');\n }\n\n async goToWebhookWithName(name: string) {\n await this.goToWebhooks();\n await this.clickTextButtonWithName(name);\n }\n\n async clickWebhookCreateButton() {\n await expect(this.webhookCreateBtn).toBeVisible();\n await this.webhookCreateBtn.click();\n }\n\n async enterWebhookName(name: string) {\n await expect(this.webhookNameTxt).toBeVisible();\n await this.webhookNameTxt.clear();\n await this.webhookNameTxt.fill(name)\n }\n\n async enterUrl(url: string) {\n await expect(this.urlTxt).toBeVisible();\n await this.urlTxt.clear();\n await this.urlTxt.fill(url);\n }\n\n async clickChooseEventButton() {\n await expect(this.chooseEventBtn).toBeVisible();\n await this.chooseEventBtn.click();\n }\n\n async clickChooseContentTypeButton() {\n await expect(this.chooseContentTypeBtn).toBeVisible();\n await this.chooseContentTypeBtn.click();\n }\n\n async clickEnabledToggleButton() {\n await expect(this.enabledToggle).toBeVisible();\n await this.enabledToggle.click();\n }\n\n async clickAddHeadersButton() {\n await expect(this.addHeadersBtn).toBeVisible();\n await this.addHeadersBtn.click();\n }\n\n async enterHeaderName(name: string) {\n await expect(this.headerNameTxt).toBeVisible();\n await this.headerNameTxt.clear();\n await this.headerNameTxt.fill(name);\n }\n\n async enterHeaderValue(value: string) {\n await expect(this.headerValueTxt).toBeVisible();\n await this.headerValueTxt.clear();\n await this.headerValueTxt.fill(value);\n }\n\n async clickDeleteWebhookWithName(name: string) {\n const deleteLocator = this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator(this.deleteWebhookEntityAction);\n await expect(deleteLocator).toBeVisible();\n await deleteLocator.click();\n }\n\n async clickHeaderRemoveButton() {\n await expect(this.headerRemoveBtn).toBeVisible();\n await this.headerRemoveBtn.click();\n }\n}"]}