mirror of
https://github.com/penpot/penpotqa.git
synced 2024-07-06 04:51:46 +00:00
PENPOT-1192,1193,1194
This commit is contained in:
parent
ebe70b3958
commit
73fa9c158b
|
@ -62,6 +62,7 @@ exports.TeamPage = class TeamPage extends BasePage {
|
|||
this.ownerRoleSelector = page.locator('li:has-text("Owner")');
|
||||
this.transferOwnershipButton = page.locator('input[value="Transfer ownership"]');
|
||||
this.leaveTeamButton = page.locator('input[value="Leave team"]');
|
||||
this.deleteMemberButton = page.locator('input[value="Delete member"]');
|
||||
this.inviteMembersToTeamEmailInput = page.locator(
|
||||
'input[placeholder="Emails, comma separated"]',
|
||||
);
|
||||
|
@ -91,6 +92,9 @@ exports.TeamPage = class TeamPage extends BasePage {
|
|||
this.memberRecordleaveTeamMenuItem = page.locator(
|
||||
'li:has-text("Leave team")',
|
||||
);
|
||||
this.memberRecordDeleteMemberMenuItem = page.locator(
|
||||
'li:has-text("Remove member")',
|
||||
);
|
||||
this.invitationWarningSpan = page.locator(
|
||||
'aside[class*="warning"] div[class*="context_notification"]',
|
||||
);
|
||||
|
@ -263,6 +267,9 @@ exports.TeamPage = class TeamPage extends BasePage {
|
|||
await this.leaveTeamButton.click();
|
||||
}
|
||||
|
||||
async clickOnDeleteMemberButton() {
|
||||
await this.deleteMemberButton.click();
|
||||
}
|
||||
async resendInvitation() {
|
||||
await this.invitationRecordOptionsMenuButton.click();
|
||||
await this.invitationRecordResendInvititationMenuItem.click();
|
||||
|
@ -321,4 +328,17 @@ exports.TeamPage = class TeamPage extends BasePage {
|
|||
async hoverOnTeamName() {
|
||||
await this.teamInfoSection.hover();
|
||||
}
|
||||
|
||||
async deleteTeamMember(name) {
|
||||
const locator = await this.page.locator(`//div[contains(@class, 'team__member-name') and contains(text(), '${name}')]/../../following-sibling::div/button`);
|
||||
await locator.click();
|
||||
await this.memberRecordDeleteMemberMenuItem.click();
|
||||
await this.clickOnDeleteMemberButton();
|
||||
await expect(locator).not.toBeVisible();
|
||||
}
|
||||
|
||||
async isDeleteTeamMemberDisabled(name) {
|
||||
const locator = await this.page.locator(`//div[contains(@class, 'team__member-name') and contains(text(), '${name}')]/../../following-sibling::div/button`);
|
||||
await expect(locator).not.toBeVisible();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1092,6 +1092,229 @@ test.describe(() => {
|
|||
},
|
||||
);
|
||||
|
||||
mainTest(
|
||||
qase(1192,'DA-106 Team. Members - delete team member (as owner)'),
|
||||
async ({ page }, testInfo) => {
|
||||
await testInfo.setTimeout(testInfo.timeout + 60000);
|
||||
const firstAdmin = random().concat('autotest');
|
||||
const firstEmail = `${process.env.GMAIL_NAME}+${firstAdmin}@gmail.com`;
|
||||
const profilePage = new ProfilePage(page);
|
||||
const dashboardPage = new DashboardPage(page);
|
||||
const loginPage = new LoginPage(page);
|
||||
const teamPage = new TeamPage(page);
|
||||
const registerPage = new RegisterPage(page);
|
||||
await teamPage.createTeam(team);
|
||||
await teamPage.isTeamSelected(team);
|
||||
await teamPage.openInvitationsPageViaOptionsMenu();
|
||||
await teamPage.clickInviteMembersToTeamButton();
|
||||
await teamPage.isInviteMembersPopUpHeaderDisplayed(
|
||||
'Invite members to the team',
|
||||
);
|
||||
await teamPage.enterEmailToInviteMembersPopUp(firstEmail);
|
||||
await teamPage.selectInvitationRoleInPopUp('Admin');
|
||||
await teamPage.clickSendInvitationButton();
|
||||
await teamPage.isSuccessMessageDisplayed('Invitation sent successfully');
|
||||
await page.waitForTimeout(30000);
|
||||
const firstInvite = await getRegisterMessage(firstEmail);
|
||||
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
|
||||
await page.goto(firstInvite.inviteUrl);
|
||||
await registerPage.isRegisterPageOpened();
|
||||
await registerPage.enterEmail(firstEmail);
|
||||
await registerPage.enterPassword(process.env.LOGIN_PWD);
|
||||
await registerPage.clickOnCreateAccountBtn();
|
||||
await registerPage.enterFullName(firstAdmin);
|
||||
await registerPage.clickOnAcceptTermsCheckbox();
|
||||
await registerPage.clickOnCreateAccountSecondBtn();
|
||||
await dashboardPage.isOnboardingNextBtnDisplayed();
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.checkOnboardingWelcomeHeader('Before you start');
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.reloadPage();
|
||||
await teamPage.isTeamSelected(team);
|
||||
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
await loginPage.enterEmail(process.env.LOGIN_EMAIL);
|
||||
await loginPage.enterPwd(process.env.LOGIN_PWD);
|
||||
await loginPage.clickLoginButton();
|
||||
await dashboardPage.isDashboardOpenedAfterLogin();
|
||||
await teamPage.switchTeam(team);
|
||||
await teamPage.isTeamSelected(team);
|
||||
await teamPage.openMembersPageViaOptionsMenu();
|
||||
await teamPage.isMultipleMemberRecordDisplayed(
|
||||
firstAdmin,
|
||||
firstEmail,
|
||||
'Admin'
|
||||
);
|
||||
await teamPage.deleteTeamMember(firstAdmin);
|
||||
},
|
||||
);
|
||||
|
||||
mainTest(
|
||||
qase(1193,'DA-107 Team. Members - delete team member (as admin)'),
|
||||
async ({ page }, testInfo) => {
|
||||
await testInfo.setTimeout(testInfo.timeout + 60000);
|
||||
const firstAdmin = random().concat('autotest');
|
||||
const secondAdmin = random().concat('autotest');
|
||||
const firstEmail = `${process.env.GMAIL_NAME}+${firstAdmin}@gmail.com`;
|
||||
const secondEmail = `${process.env.GMAIL_NAME}+${secondAdmin}@gmail.com`;
|
||||
const profilePage = new ProfilePage(page);
|
||||
const dashboardPage = new DashboardPage(page);
|
||||
const loginPage = new LoginPage(page);
|
||||
const teamPage = new TeamPage(page);
|
||||
const registerPage = new RegisterPage(page);
|
||||
await teamPage.createTeam(team);
|
||||
await teamPage.isTeamSelected(team);
|
||||
await teamPage.openInvitationsPageViaOptionsMenu();
|
||||
await teamPage.clickInviteMembersToTeamButton();
|
||||
await teamPage.isInviteMembersPopUpHeaderDisplayed(
|
||||
'Invite members to the team',
|
||||
);
|
||||
await teamPage.enterEmailToInviteMembersPopUp(`${firstEmail}, ${secondEmail}`);
|
||||
await teamPage.selectInvitationRoleInPopUp('Admin');
|
||||
await teamPage.clickSendInvitationButton();
|
||||
await teamPage.isSuccessMessageDisplayed('Invitation sent successfully');
|
||||
await page.waitForTimeout(30000);
|
||||
const firstInvite = await getRegisterMessage(firstEmail);
|
||||
const secondInvite = await getRegisterMessage(secondEmail);
|
||||
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
|
||||
await page.goto(firstInvite.inviteUrl);
|
||||
await registerPage.isRegisterPageOpened();
|
||||
await registerPage.enterEmail(firstEmail);
|
||||
await registerPage.enterPassword(process.env.LOGIN_PWD);
|
||||
await registerPage.clickOnCreateAccountBtn();
|
||||
await registerPage.enterFullName(firstAdmin);
|
||||
await registerPage.clickOnAcceptTermsCheckbox();
|
||||
await registerPage.clickOnCreateAccountSecondBtn();
|
||||
await dashboardPage.isOnboardingNextBtnDisplayed();
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.checkOnboardingWelcomeHeader('Before you start');
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.reloadPage();
|
||||
await teamPage.isTeamSelected(team);
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
await page.goto(secondInvite.inviteUrl);
|
||||
await registerPage.isRegisterPageOpened();
|
||||
await registerPage.enterEmail(secondEmail);
|
||||
await registerPage.enterPassword(process.env.LOGIN_PWD);
|
||||
await registerPage.clickOnCreateAccountBtn();
|
||||
await registerPage.enterFullName(secondAdmin);
|
||||
await registerPage.clickOnAcceptTermsCheckbox();
|
||||
await registerPage.clickOnCreateAccountSecondBtn();
|
||||
await dashboardPage.isOnboardingNextBtnDisplayed();
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.checkOnboardingWelcomeHeader('Before you start');
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.reloadPage();
|
||||
await teamPage.isTeamSelected(team);
|
||||
|
||||
await teamPage.openMembersPageViaOptionsMenu();
|
||||
await teamPage.isMultipleMemberRecordDisplayed(
|
||||
firstAdmin,
|
||||
firstEmail,
|
||||
'Admin'
|
||||
);
|
||||
await teamPage.isMultipleMemberRecordDisplayed(
|
||||
secondAdmin,
|
||||
secondEmail,
|
||||
'Admin'
|
||||
);
|
||||
await teamPage.deleteTeamMember(firstAdmin);
|
||||
},
|
||||
);
|
||||
|
||||
mainTest(
|
||||
qase(1194,'DA-108 Team. Members - unable to delete team member (as editor)'),
|
||||
async ({ page }, testInfo) => {
|
||||
await testInfo.setTimeout(testInfo.timeout + 60000);
|
||||
const firstAdmin = random().concat('autotest');
|
||||
const secondAdmin = random().concat('autotest');
|
||||
const firstEmail = `${process.env.GMAIL_NAME}+${firstAdmin}@gmail.com`;
|
||||
const secondEmail = `${process.env.GMAIL_NAME}+${secondAdmin}@gmail.com`;
|
||||
const profilePage = new ProfilePage(page);
|
||||
const dashboardPage = new DashboardPage(page);
|
||||
const loginPage = new LoginPage(page);
|
||||
const teamPage = new TeamPage(page);
|
||||
const registerPage = new RegisterPage(page);
|
||||
await teamPage.createTeam(team);
|
||||
await teamPage.isTeamSelected(team);
|
||||
await teamPage.openInvitationsPageViaOptionsMenu();
|
||||
await teamPage.clickInviteMembersToTeamButton();
|
||||
await teamPage.isInviteMembersPopUpHeaderDisplayed(
|
||||
'Invite members to the team',
|
||||
);
|
||||
await teamPage.enterEmailToInviteMembersPopUp(`${firstEmail}`);
|
||||
await teamPage.selectInvitationRoleInPopUp('Admin');
|
||||
await teamPage.clickSendInvitationButton();
|
||||
await teamPage.isSuccessMessageDisplayed('Invitation sent successfully');
|
||||
await teamPage.clickInviteMembersToTeamButton();
|
||||
await teamPage.isInviteMembersPopUpHeaderDisplayed(
|
||||
'Invite members to the team',
|
||||
);
|
||||
await teamPage.enterEmailToInviteMembersPopUp(`${secondEmail}`);
|
||||
await teamPage.selectInvitationRoleInPopUp('Editor');
|
||||
await teamPage.clickSendInvitationButton();
|
||||
await teamPage.isSuccessMessageDisplayed('Invitation sent successfully');
|
||||
await page.waitForTimeout(30000);
|
||||
const firstInvite = await getRegisterMessage(firstEmail);
|
||||
const secondInvite = await getRegisterMessage(secondEmail);
|
||||
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
|
||||
await page.goto(firstInvite.inviteUrl);
|
||||
await registerPage.isRegisterPageOpened();
|
||||
await registerPage.enterEmail(firstEmail);
|
||||
await registerPage.enterPassword(process.env.LOGIN_PWD);
|
||||
await registerPage.clickOnCreateAccountBtn();
|
||||
await registerPage.enterFullName(firstAdmin);
|
||||
await registerPage.clickOnAcceptTermsCheckbox();
|
||||
await registerPage.clickOnCreateAccountSecondBtn();
|
||||
await dashboardPage.isOnboardingNextBtnDisplayed();
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.checkOnboardingWelcomeHeader('Before you start');
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.reloadPage();
|
||||
await teamPage.isTeamSelected(team);
|
||||
await profilePage.logout();
|
||||
await loginPage.isLoginPageOpened();
|
||||
await page.goto(secondInvite.inviteUrl);
|
||||
await registerPage.isRegisterPageOpened();
|
||||
await registerPage.enterEmail(secondEmail);
|
||||
await registerPage.enterPassword(process.env.LOGIN_PWD);
|
||||
await registerPage.clickOnCreateAccountBtn();
|
||||
await registerPage.enterFullName(secondAdmin);
|
||||
await registerPage.clickOnAcceptTermsCheckbox();
|
||||
await registerPage.clickOnCreateAccountSecondBtn();
|
||||
await dashboardPage.isOnboardingNextBtnDisplayed();
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.checkOnboardingWelcomeHeader('Before you start');
|
||||
await dashboardPage.clickOnOnboardingNextBtn();
|
||||
await dashboardPage.reloadPage();
|
||||
await teamPage.isTeamSelected(team);
|
||||
|
||||
await teamPage.openMembersPageViaOptionsMenu();
|
||||
await teamPage.isMultipleMemberRecordDisplayed(
|
||||
firstAdmin,
|
||||
firstEmail,
|
||||
'Admin'
|
||||
);
|
||||
await teamPage.isMultipleMemberRecordDisplayed(
|
||||
secondAdmin,
|
||||
secondEmail,
|
||||
'Editor'
|
||||
);
|
||||
await teamPage.isDeleteTeamMemberDisabled(firstAdmin);
|
||||
},
|
||||
);
|
||||
|
||||
test.afterEach(async ({ page }) => {
|
||||
const teamPage = new TeamPage(page);
|
||||
const dashboardPage = new DashboardPage(page);
|
||||
|
|
Loading…
Reference in New Issue
Block a user