import { GridPage } from '../Grid'; import BasePage from '../../Base'; import { expect, Locator } from '@playwright/test'; export class ColumnHeaderPageObject extends BasePage { readonly grid: GridPage; readonly btn_addColumn: Locator; readonly btn_selectAll: Locator; constructor(grid: GridPage) { super(grid.rootPage); this.grid = grid; this.btn_addColumn = this.get().locator(`.nc-grid-add-edit-column`); this.btn_selectAll = this.get().locator(`[data-testid="nc-check-all"]`); } get() { return this.rootPage.locator('.nc-grid-header'); } async getColumnHeader({ title }: { title: string }) { return this.get().locator(`th[data-title="${title}"]`); } async getColumnHeaderContextMenu({ title }: { title: string }) { return (await this.getColumnHeader({ title })).locator(`.nc-ui-dt-dropdown`); } async verifyLockMode() { // add column button await expect(this.btn_addColumn).toBeVisible({ visible: false }); // column header context menu expect(await this.get().locator('.nc-ui-dt-dropdown').count()).toBe(0); } async verifyPersonalMode() { // add column button await expect(this.btn_addColumn).toBeVisible({ visible: false }); // column header context menu expect(await this.get().locator('.nc-ui-dt-dropdown').count()).toBe(0); } async verifyCollaborativeMode() { // add column button await expect(this.btn_addColumn).toBeVisible({ visible: true }); // column header context menu expect(await this.get().locator('.nc-ui-dt-dropdown').count()).toBeGreaterThan(1); } }