UNPKG

@umbraco/playwright-testhelpers

Version:

Test helpers for making playwright tests for Umbraco solutions

155 lines 6.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemberUiHelper = void 0; const test_1 = require("@playwright/test"); const UiBaseLocators_1 = require("./UiBaseLocators"); const ConstantHelper_1 = require("./ConstantHelper"); class MemberUiHelper extends UiBaseLocators_1.UiBaseLocators { membersTab; searchTxt; memberNameTxt; commentsTxt; detailsTab; usernameTxt; emailTxt; passwordTxt; confirmNewPasswordTxt; approvedToggle; lockedOutToggle; twoFactorAuthenticationToggle; memberInfoItems; changePasswordBtn; membersMenu; infoTab; membersCreateBtn; membersSidebar; membersSidebarBtn; memberTableCollectionRow; constructor(page) { super(page); this.membersTab = page.locator('uui-tab[label="Members"]'); this.searchTxt = page.locator('#input-search'); this.memberNameTxt = page.locator('#name-input #input'); this.commentsTxt = page.locator('umb-content-workspace-view-edit-tab').locator('umb-property').filter({ hasText: 'Comments' }).locator('#textarea'); this.detailsTab = page.locator('uui-tab').filter({ hasText: 'Details' }).locator('svg'); this.usernameTxt = page.getByLabel('Username', { exact: true }); this.emailTxt = page.getByLabel('Email', { exact: true }); this.passwordTxt = page.getByLabel('Enter your new password', { exact: true }); this.confirmNewPasswordTxt = page.getByLabel('Confirm new password', { exact: true }); this.approvedToggle = page.locator('[label="Approved"] #toggle'); this.lockedOutToggle = page.locator('[label="Locked out"] #toggle'); this.twoFactorAuthenticationToggle = page.locator('[label="Two-Factor authentication"] #toggle'); this.memberInfoItems = page.locator('umb-stack > div'); this.changePasswordBtn = page.getByLabel('Change password', { exact: true }); this.membersMenu = page.locator('umb-menu').getByLabel('Members', { exact: true }); this.infoTab = page.locator('uui-tab').filter({ hasText: 'Info' }).locator('svg'); this.membersCreateBtn = page.locator('umb-create-member-collection-action').getByLabel('Create', { exact: true }); this.membersSidebar = page.getByTestId('section-sidebar:Umb.SectionSidebarApp.Menu.MemberManagement'); this.membersSidebarBtn = this.membersSidebar.locator('uui-menu-item').filter({ hasText: 'Members' }); this.memberTableCollectionRow = page.locator('umb-member-table-collection-view').locator('uui-table-row'); } async clickMembersTab() { await this.membersTab.click(); } async clickDetailsTab() { await (0, test_1.expect)(this.detailsTab).toBeVisible(); await this.detailsTab.click(); } async clickMemberLinkByName(memberName) { await this.page.getByRole('link', { name: memberName }).click(); } async isMemberWithNameVisible(memberName, isVisible = true) { await (0, test_1.expect)(this.memberTableCollectionRow.getByText(memberName, { exact: true })).toBeVisible({ visible: isVisible }); } async clickMembersSidebarButton() { await (0, test_1.expect)(this.membersSidebarBtn).toBeVisible(); await this.membersSidebarBtn.click(); } async enterSearchKeyword(keyword) { await (0, test_1.expect)(this.searchTxt).toBeVisible(); await this.searchTxt.clear(); await this.searchTxt.fill(keyword); } async enterMemberName(name) { await (0, test_1.expect)(this.memberNameTxt).toBeVisible(); await this.memberNameTxt.clear(); await this.memberNameTxt.fill(name); } async enterComments(comment) { await (0, test_1.expect)(this.commentsTxt).toBeVisible(); await this.commentsTxt.clear(); await this.commentsTxt.fill(comment); } async enterUsername(username) { await (0, test_1.expect)(this.usernameTxt).toBeVisible(); await this.usernameTxt.clear(); await this.usernameTxt.fill(username); } async enterEmail(email) { await (0, test_1.expect)(this.emailTxt).toBeVisible(); await this.emailTxt.clear(); await this.emailTxt.fill(email); } async enterPassword(password) { await this.passwordTxt.clear(); await this.passwordTxt.fill(password); } async enterConfirmPassword(password) { await this.confirmPasswordTxt.clear(); await this.confirmPasswordTxt.fill(password); } async enterConfirmNewPassword(password) { await this.confirmNewPasswordTxt.clear(); await this.confirmNewPasswordTxt.fill(password); } async chooseMemberGroup(memberGroupName) { await this.clickChooseButton(); await this.page.getByText(memberGroupName, { exact: true }).click(); await this.clickChooseContainerButton(); } async doesMemberInfoHaveValue(infoName, value) { return (0, test_1.expect)(this.memberInfoItems.filter({ hasText: infoName }).locator('span')).toHaveText(value); } async clickApprovedToggle() { await this.approvedToggle.click(); } async clickLockedOutToggle() { await this.lockedOutToggle.click(); } async clickTwoFactorAuthenticationToggle() { await this.twoFactorAuthenticationToggle.click(); } async clickChangePasswordButton() { await this.changePasswordBtn.click(); } async clickRemoveMemberGroupByName(memberGroupName) { await this.page.locator('[name="' + memberGroupName + '"]').getByLabel('Remove').click(); } async enterNewPassword(password) { await this.newPasswordTxt.clear(); await this.newPasswordTxt.fill(password); } async clickMembersMenu() { await this.membersMenu.click(); } async waitForMemberToBeCreated() { await this.waitForNetworkToBeIdle(); } async waitForMemberToBeDeleted() { await this.waitForNetworkToBeIdle(); } async goToMembers() { await this.goToSection(ConstantHelper_1.ConstantHelper.sections.members); await this.clickMembersMenu(); } async clickInfoTab() { await (0, test_1.expect)(this.infoTab).toBeVisible(); await this.infoTab.click(); } async clickCreateMembersButton() { await (0, test_1.expect)(this.membersCreateBtn).toBeVisible(); await this.membersCreateBtn.click(); } } exports.MemberUiHelper = MemberUiHelper; //# sourceMappingURL=MemberUiHelper.js.map