|
|
|
import { Page } from '@playwright/test';
|
|
|
|
import BasePage from '../Base';
|
|
|
|
import { AccountSettingsPage } from './Settings';
|
|
|
|
import { AccountTokenPage } from './Token';
|
|
|
|
import { AccountUsersPage } from './Users';
|
|
|
|
import { AccountAppStorePage } from './AppStore';
|
|
|
|
import { AccountLicensePage } from './License';
|
|
|
|
import { AccountAuthenticationPage } from './Authentication';
|
|
|
|
import { AccountSetupPage } from './Setup';
|
|
|
|
|
|
|
|
export class AccountPage extends BasePage {
|
|
|
|
readonly settings: AccountSettingsPage;
|
|
|
|
readonly setup: AccountSetupPage;
|
|
|
|
readonly token: AccountTokenPage;
|
|
|
|
readonly users: AccountUsersPage;
|
|
|
|
readonly appStore: AccountAppStorePage;
|
|
|
|
readonly license: AccountLicensePage;
|
|
|
|
readonly authentication: AccountAuthenticationPage;
|
|
|
|
|
|
|
|
constructor(page: Page) {
|
|
|
|
super(page);
|
|
|
|
this.settings = new AccountSettingsPage(this);
|
|
|
|
this.token = new AccountTokenPage(this);
|
|
|
|
this.users = new AccountUsersPage(this);
|
|
|
|
this.appStore = new AccountAppStorePage(this);
|
|
|
|
this.license = new AccountLicensePage(this);
|
|
|
|
this.authentication = new AccountAuthenticationPage(this);
|
|
|
|
this.setup = new AccountSetupPage(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
get() {
|
|
|
|
return this.rootPage.locator('body');
|
|
|
|
}
|
|
|
|
|
|
|
|
async openAppMenu() {
|
|
|
|
await this.rootPage.locator('.nc-menu-accounts').click();
|
|
|
|
}
|
|
|
|
|
|
|
|
async signOut() {
|
|
|
|
await this.openAppMenu();
|
|
|
|
await this.rootPage.locator('div.nc-account-dropdown-item:has-text("Sign Out"):visible').click();
|
|
|
|
await this.rootPage.locator('[data-testid="nc-form-signin"]:visible').waitFor();
|
|
|
|
}
|
|
|
|
}
|