|
|
|
import { DashboardPage } from "..";
|
|
|
|
import BasePage from "../../Base";
|
|
|
|
import { AuditSettingsPage } from "./Audit";
|
|
|
|
import { SettingsErdPage } from "./Erd";
|
|
|
|
import { MetaDataPage } from "./Metadata";
|
|
|
|
import { AppStoreSettingsPage } from "./AppStore";
|
|
|
|
import { MiscSettingsPage } from "./Miscellaneous";
|
|
|
|
import { TeamsPage } from "./Teams";
|
|
|
|
import { AclPage } from "./Acl";
|
|
|
|
|
|
|
|
export enum SettingTab {
|
|
|
|
TeamAuth = "teamAndAuth",
|
|
|
|
AppStore = "appStore",
|
|
|
|
ProjectMetadata = "projMetaData",
|
|
|
|
Audit = "audit",
|
|
|
|
}
|
|
|
|
|
|
|
|
export enum SettingsSubTab {
|
|
|
|
ERD = "erd",
|
|
|
|
Miscellaneous = "misc",
|
|
|
|
ACL = "acl",
|
|
|
|
}
|
|
|
|
|
|
|
|
export class SettingsPage extends BasePage {
|
|
|
|
private readonly dashboard: DashboardPage;
|
|
|
|
readonly audit: AuditSettingsPage;
|
|
|
|
readonly appStore: AppStoreSettingsPage;
|
|
|
|
readonly metaData: MetaDataPage;
|
|
|
|
readonly miscellaneous: MiscSettingsPage;
|
|
|
|
readonly erd: SettingsErdPage;
|
|
|
|
readonly teams: TeamsPage;
|
|
|
|
readonly acl: AclPage;
|
|
|
|
|
|
|
|
constructor(dashboard: DashboardPage) {
|
|
|
|
super(dashboard.rootPage);
|
|
|
|
this.dashboard = dashboard;
|
|
|
|
this.audit = new AuditSettingsPage(this);
|
|
|
|
this.appStore = new AppStoreSettingsPage(this);
|
|
|
|
this.metaData = new MetaDataPage(this);
|
|
|
|
this.miscellaneous = new MiscSettingsPage(this);
|
|
|
|
this.erd = new SettingsErdPage(this);
|
|
|
|
this.teams = new TeamsPage(this);
|
|
|
|
this.acl = new AclPage(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
get() {
|
|
|
|
return this.rootPage.locator(".nc-modal-settings");
|
|
|
|
}
|
|
|
|
|
|
|
|
async selectTab({
|
|
|
|
tab,
|
|
|
|
subTab,
|
|
|
|
}: {
|
|
|
|
tab: SettingTab;
|
|
|
|
subTab?: SettingsSubTab;
|
|
|
|
}) {
|
|
|
|
await this.get().locator(`li[data-menu-id="${tab}"]`).click();
|
|
|
|
if (subTab)
|
|
|
|
await this.get().locator(`li[data-menu-id="${subTab}"]`).click();
|
|
|
|
}
|
|
|
|
|
|
|
|
async selectSubTab({ subTab }: { subTab: SettingsSubTab }) {
|
|
|
|
await this.get().locator(`li[data-menu-id="${subTab}"]`).click();
|
|
|
|
}
|
|
|
|
|
|
|
|
async close() {
|
|
|
|
await this.get().locator('[pw-data="settings-modal-close-button"]').click();
|
|
|
|
await this.get().waitFor({ state: "hidden" });
|
|
|
|
}
|
|
|
|
}
|