多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.9 KiB

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();
}
}