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.
63 lines
1.7 KiB
63 lines
1.7 KiB
import { expect } from "@playwright/test"; |
|
import BasePage from "../../../Base"; |
|
import { ToolbarPage } from "./index"; |
|
|
|
export class ToolbarFieldsPage extends BasePage { |
|
readonly toolbar: ToolbarPage; |
|
|
|
constructor(toolbar: ToolbarPage) { |
|
super(toolbar.rootPage); |
|
this.toolbar = toolbar; |
|
} |
|
|
|
get() { |
|
return this.rootPage.locator(`[pw-data="nc-fields-menu"]`); |
|
} |
|
|
|
async toggle({ title }: { title: string }) { |
|
await this.toolbar.clickFields(); |
|
await this.get() |
|
.locator(`[pw-data="nc-fields-menu-${title}"]`) |
|
.locator('input[type="checkbox"]') |
|
.click(); |
|
await this.toolbar.clickFields(); |
|
} |
|
|
|
async verify({ title, checked }: { title: string, checked: boolean }) { |
|
const checkbox = this.get() |
|
.locator(`[pw-data="nc-fields-menu-${title}"]`) |
|
.locator('input[type="checkbox"]'); |
|
|
|
if (checked) { |
|
await expect(checkbox).toBeChecked(); |
|
} else { |
|
await expect(checkbox).not.toBeChecked(); |
|
} |
|
} |
|
|
|
async click({ title }: { title: string }) { |
|
await this.get() |
|
.locator(`[pw-data="nc-fields-menu-${title}"]`) |
|
.locator('input[type="checkbox"]') |
|
.click(); |
|
await this.toolbar.parent.waitLoading(); |
|
} |
|
|
|
async hideAll() { |
|
await this.toolbar.clickFields(); |
|
await this.get().locator(`button:has-text("Hide all")`).click(); |
|
await this.toolbar.clickFields(); |
|
} |
|
|
|
async showAll() { |
|
await this.toolbar.clickFields(); |
|
await this.get().locator(`button:has-text("Show all")`).click(); |
|
await this.toolbar.clickFields(); |
|
} |
|
|
|
async toggleShowSystemFields() { |
|
await this.toolbar.clickFields(); |
|
await this.get().locator(`.nc-fields-show-system-fields`).click(); |
|
await this.toolbar.clickFields(); |
|
} |
|
}
|
|
|