import { ColumnPageObject } from '.'; import BasePage from '../../../Base'; import { expect } from '@playwright/test'; export class UserOptionColumnPageObject extends BasePage { readonly column: ColumnPageObject; constructor(column: ColumnPageObject) { super(column.rootPage); this.column = column; } get() { return this.column.get(); } async allowMultipleUser({ columnTitle, allowMultiple = false }: { columnTitle: string; allowMultiple?: boolean }) { await this.column.openEdit({ title: columnTitle }); const checkbox = this.get().locator('[data-testid="user-column-allow-multiple"]'); const isChecked = await checkbox.isChecked(); if ((isChecked && !allowMultiple) || (!isChecked && allowMultiple)) { await checkbox.click(); } await this.rootPage.waitForTimeout(5000); await this.column.save({ isUpdated: true }); } async verifyDefaultValueOptions({ columnTitle, totalCount }: { columnTitle: string; totalCount: number }) { await this.column.openEdit({ title: columnTitle }); await this.column.get().locator('.nc-cell-user').click(); const userDropdown = this.get().locator(`[data-testid="select-option-${columnTitle}-undefined"]`); await userDropdown.waitFor({ state: 'visible' }); console.log('userDropdown::::', userDropdown); await expect(userDropdown).toHaveCount(totalCount); await this.column.get().locator('.nc-cell-user').click(); // Press `Escape` to close the dropdown await this.rootPage.keyboard.press('Escape'); await this.get().waitFor({ state: 'hidden' }); } async clearDefaultValueOptions({ columnTitle }: { columnTitle: string }) { await this.column.openEdit({ title: columnTitle }); await this.column.get().locator('.nc-cell-user + svg').click(); } }