mirror of https://github.com/nocodb/nocodb
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.
61 lines
1.8 KiB
61 lines
1.8 KiB
import { DashboardPage } from '..'; |
|
import BasePage from '../../Base'; |
|
import { AuditSettingsPage } from './Audit'; |
|
import { MiscSettingsPage } from './Miscellaneous'; |
|
import { TeamsPage } from './Teams'; |
|
import { DataSourcesPage } from './DataSources'; |
|
import { SourcePage } from './Source'; |
|
|
|
export enum SettingTab { |
|
TeamAuth = 'teamAndAuth', |
|
DataSources = 'dataSources', |
|
Audit = 'audit', |
|
ProjectSettings = 'baseSettings', |
|
} |
|
|
|
export enum SettingsSubTab { |
|
ERD = 'erd', |
|
Miscellaneous = 'misc', |
|
ACL = 'acl', |
|
} |
|
|
|
export class SettingsPage extends BasePage { |
|
readonly audit: AuditSettingsPage; |
|
readonly source: SourcePage; |
|
readonly miscellaneous: MiscSettingsPage; |
|
readonly dataSources: DataSourcesPage; |
|
readonly teams: TeamsPage; |
|
|
|
constructor(dashboard: DashboardPage) { |
|
super(dashboard.rootPage); |
|
this.audit = new AuditSettingsPage(this); |
|
this.miscellaneous = new MiscSettingsPage(this); |
|
this.dataSources = new DataSourcesPage(this); |
|
this.teams = new TeamsPage(this); |
|
this.source = new SourcePage(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('[data-testid="settings-modal-close-button"]').click(); |
|
await this.get().waitFor({ state: 'hidden' }); |
|
} |
|
|
|
async toggleNullEmptyFilters() { |
|
await this.selectTab({ tab: SettingTab.ProjectSettings, subTab: SettingsSubTab.Miscellaneous }); |
|
await this.miscellaneous.clickShowNullEmptyFilters(); |
|
await this.close(); |
|
} |
|
}
|
|
|