E2E/Playwright: Instantiate page in pw (#29765)
* instantiate page in pw * update spec * fix storage key and require user when logging in via API --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
20e9c6aa3e
Коммит
90e3d2833e
@@ -21,4 +21,5 @@ const pages = {
|
||||
DraftPage,
|
||||
};
|
||||
|
||||
export {pages, ChannelsPage, LandingLoginPage, LoginPage, SignupPage, ScheduledDraftPage, DraftPage};
|
||||
export {ChannelsPage, LandingLoginPage, LoginPage, SignupPage, ScheduledDraftPage, DraftPage};
|
||||
export default pages;
|
||||
|
||||
@@ -3,14 +3,11 @@
|
||||
|
||||
import {expect, Page} from '@playwright/test';
|
||||
|
||||
import {AdminConfig} from '@mattermost/types/config';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {components} from '@e2e-support/ui/components';
|
||||
|
||||
export default class LoginPage {
|
||||
readonly adminConfig: AdminConfig;
|
||||
|
||||
readonly page: Page;
|
||||
|
||||
readonly title;
|
||||
@@ -18,6 +15,7 @@ export default class LoginPage {
|
||||
readonly bodyCard;
|
||||
readonly loginInput;
|
||||
readonly loginPlaceholder;
|
||||
readonly loginWithAdLdapPlaceholder;
|
||||
readonly passwordInput;
|
||||
readonly passwordToggleButton;
|
||||
readonly signInButton;
|
||||
@@ -30,19 +28,15 @@ export default class LoginPage {
|
||||
readonly header;
|
||||
readonly footer;
|
||||
|
||||
constructor(page: Page, adminConfig: AdminConfig) {
|
||||
constructor(page: Page) {
|
||||
this.page = page;
|
||||
this.adminConfig = adminConfig;
|
||||
|
||||
const loginInputPlaceholder = adminConfig.LdapSettings.Enable
|
||||
? 'Email, Username or AD/LDAP Username'
|
||||
: 'Email or Username';
|
||||
|
||||
this.title = page.locator('h1:has-text("Log in to your account")');
|
||||
this.subtitle = page.locator('text=Collaborate with your team in real-time');
|
||||
this.bodyCard = page.locator('.login-body-card-content');
|
||||
this.loginInput = page.locator('#input_loginId');
|
||||
this.loginPlaceholder = page.locator(`[placeholder="${loginInputPlaceholder}"]`);
|
||||
this.loginPlaceholder = page.locator(`[placeholder="Email or Username"]`);
|
||||
this.loginWithAdLdapPlaceholder = page.locator(`[placeholder="Email, Username or AD/LDAP Username"]`);
|
||||
this.passwordInput = page.locator('#input_password-input');
|
||||
this.passwordToggleButton = page.getByRole('button', {name: 'Show or hide password'});
|
||||
this.signInButton = page.locator('button:has-text("Log in")');
|
||||
|
||||
@@ -20,6 +20,10 @@ class SystemConsolePage {
|
||||
readonly systemUsersDateRangeMenu;
|
||||
readonly systemUsersColumnToggleMenu;
|
||||
readonly systemUsersActionMenus;
|
||||
|
||||
// modal
|
||||
readonly confirmModal;
|
||||
readonly exportModal;
|
||||
readonly saveChangesModal;
|
||||
|
||||
constructor(page: Page) {
|
||||
@@ -47,6 +51,9 @@ class SystemConsolePage {
|
||||
this.systemUsersActionMenus = Array.from(Array(10).keys()).map(
|
||||
(index) => new components.SystemUsersFilterMenu(page.locator(`#actionMenu-systemUsersTable-${index}`)),
|
||||
);
|
||||
|
||||
this.confirmModal = new components.GenericConfirmModal(page.locator('#confirmModal'));
|
||||
this.exportModal = new components.GenericConfirmModal(page.getByRole('dialog', {name: 'Export user data'}));
|
||||
this.saveChangesModal = new components.SystemUsers(page.locator('div.modal-content'));
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user