@umbraco/playwright-testhelpers
Version:
Test helpers for making playwright tests for Umbraco solutions
136 lines • 5.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemberUiHelper = void 0;
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 this.click(this.detailsTab);
}
async clickMemberLinkByName(memberName) {
await this.page.getByRole('link', { name: memberName }).click();
}
async isMemberWithNameVisible(memberName, isVisible = true) {
await this.isVisible(this.memberTableCollectionRow.getByText(memberName, { exact: true }), isVisible);
}
async clickMembersSidebarButton() {
await this.click(this.membersSidebarBtn);
}
async enterSearchKeyword(keyword) {
await this.enterText(this.searchTxt, keyword);
}
async enterMemberName(name) {
await this.enterText(this.memberNameTxt, name);
}
async enterComments(comment) {
await this.enterText(this.commentsTxt, comment);
}
async enterUsername(username) {
await this.enterText(this.usernameTxt, username);
}
async enterEmail(email) {
await this.enterText(this.emailTxt, email);
}
async enterPassword(password) {
await this.enterText(this.passwordTxt, password);
}
async enterConfirmPassword(password) {
await this.enterText(this.confirmPasswordTxt, password);
}
async enterConfirmNewPassword(password) {
await this.enterText(this.confirmNewPasswordTxt, password);
}
async chooseMemberGroup(memberGroupName) {
await this.clickChooseButton();
await this.page.getByText(memberGroupName, { exact: true }).click();
await this.clickChooseContainerButton();
}
async doesMemberInfoHaveValue(infoName, value) {
return await this.hasText(this.memberInfoItems.filter({ hasText: infoName }).locator('span'), 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.enterText(this.newPasswordTxt, 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 this.click(this.infoTab);
}
async clickCreateMembersButton() {
await this.click(this.membersCreateBtn);
}
}
exports.MemberUiHelper = MemberUiHelper;
//# sourceMappingURL=MemberUiHelper.js.map