@umbraco/playwright-testhelpers
Version:
Test helpers for making playwright tests for Umbraco solutions
155 lines • 6.56 kB
JavaScript
"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