Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions apps/meteor/tests/e2e/e2e-encryption.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@ test.describe('initial setup', () => {
// Log out
await sidenav.logout();

await expect(loginPage.loginButton).toBeVisible();

// Login again
await loginPage.loginByUserState(Users.admin);

Expand Down Expand Up @@ -100,12 +98,18 @@ test.describe('initial setup', () => {
const enterE2EEPasswordModal = new EnterE2EEPasswordModal(page);
const resetE2EEPasswordModal = new ResetE2EEPasswordModal(page);

// Logout
await sidenav.logout();

// Login again
await loginPage.loginByUserState(Users.admin);

// Reset E2EE password
await enterE2EEPasswordBanner.click();
await enterE2EEPasswordModal.forgotPassword();
await resetE2EEPasswordModal.confirmReset();

// restore login
await loginPage.loginByUserState(Users.admin);
});

Expand Down Expand Up @@ -135,8 +139,6 @@ test.describe('initial setup', () => {
await sidenav.logout();

// Login again
await expect(loginPage.loginButton).toBeVisible();

await loginPage.loginByUserState(Users.admin);

// Enter the saved password
Expand Down Expand Up @@ -197,8 +199,10 @@ test.describe('basic features', () => {
await expect(encryptedRoomPage.lastMessage.encryptedIcon).toBeVisible();
await expect(encryptedRoomPage.lastMessage.body).toHaveText(messageText);

// Log out
await sidenav.logout();

// Login again
await loginPage.loginByUserState(Users.admin);

// Navigate to the encrypted channel WITHOUT entering the password
Expand Down Expand Up @@ -1005,8 +1009,6 @@ test.describe.serial('e2ee room setup', () => {
// Logout to remove e2ee keys
await poHomeChannel.sidenav.logout();

await page.locator('role=button[name="Login"]').waitFor();

await injectInitialData();
await restoreState(page, Users.admin, { except: ['private_key', 'public_key'] });

Expand Down
5 changes: 5 additions & 0 deletions apps/meteor/tests/e2e/page-objects/fragments/e2ee.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import type { Locator, Page } from '@playwright/test';
import { Modal } from './modal';
import { ToastMessages } from './toast-messages';
import { expect } from '../../utils/test';
import { LoginPage } from '../login';

abstract class E2EEBanner {
constructor(protected root: Locator) {}
Expand Down Expand Up @@ -96,8 +97,11 @@ export class EnterE2EEPasswordModal extends Modal {
}

export class ResetE2EEPasswordModal extends Modal {
private readonly login: LoginPage;

constructor(page: Page) {
super(page.getByRole('dialog', { name: 'Reset E2EE password' }));
this.login = new LoginPage(page);
}

private get resetE2EEPasswordButton() {
Expand All @@ -107,6 +111,7 @@ export class ResetE2EEPasswordModal extends Modal {
async confirmReset() {
await this.resetE2EEPasswordButton.click();
await this.waitForDismissal();
await this.login.waitForIt();
}
}

Expand Down
11 changes: 10 additions & 1 deletion apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import type { Locator, Page } from '@playwright/test';

import { LoginPage } from '../login';
import { ToastMessages } from './toast-messages';
import { expect } from '../../utils/test';

export class HomeSidenav {
private readonly page: Page;

private readonly login: LoginPage;

constructor(page: Page) {
this.page = page;
this.login = new LoginPage(page);
}

get advancedSettingsAccordion(): Locator {
Expand Down Expand Up @@ -101,6 +105,10 @@ export class HomeSidenav {
return this.page.locator('role=menuitemcheckbox[name="Preferences"]');
}

get accountLogoutOption(): Locator {
return this.userProfileMenu.getByRole('menuitemcheckbox', { name: 'Logout' });
}

get searchList(): Locator {
return this.page.getByRole('search').getByRole('listbox');
}
Expand Down Expand Up @@ -165,7 +173,8 @@ export class HomeSidenav {

async logout(): Promise<void> {
await this.btnUserProfileMenu.click();
await this.page.locator('//*[contains(@class, "rcx-option__content") and contains(text(), "Logout")]').click();
await this.accountLogoutOption.click();
await this.login.waitForIt();
}

async switchStatus(status: 'offline' | 'online'): Promise<void> {
Expand Down
Loading