import { SettingsPage } from '.'; import { isEE } from '../../../setup/db'; import BasePage from '../../Base'; export class MiscSettingsPage extends BasePage { private readonly settings: SettingsPage; constructor(settings: SettingsPage) { super(settings.rootPage); this.settings = settings; } get() { return this.settings.get().locator(`[data-testid="nc-settings-subtab-visibility"]`); } async selectTab(tab: 'snapshots-tab' | 'visibility-tab') { await this.settings.get().getByTestId(tab).click(); } async clickShowM2MTables() { if (isEE()) { await this.selectTab('visibility-tab'); } const clickAction = () => this.get().locator('.nc-settings-meta-misc-m2m').first().click(); await this.waitForResponse({ uiAction: clickAction, requestUrlPathToMatch: 'tables?includeM2M', httpMethodsToMatch: ['GET'], }); } async clickShowNullEmptyFilters() { if (isEE()) { await this.selectTab('visibility-tab'); } await this.waitForResponse({ uiAction: () => this.rootPage.locator('.nc-settings-show-null-and-empty-in-filter').first().click(), requestUrlPathToMatch: '/api/v1/db/meta/projects', httpMethodsToMatch: ['PATCH'], }); } }