mirror of https://github.com/nocodb/nocodb
Ramesh Mane
12 months ago
committed by
mertmit
4 changed files with 106 additions and 1 deletions
@ -0,0 +1,47 @@
|
||||
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-User-undefined"]'); |
||||
await userDropdown.waitFor({ state: 'visible' }); |
||||
console.log('userDropdown::::', userDropdown); |
||||
|
||||
await expect(userDropdown).toHaveCount(totalCount); |
||||
await this.column.get().locator('.nc-cell-user').click(); |
||||
await this.column.save({ isUpdated: true }); |
||||
} |
||||
async clearDefaultValueOptions({ columnTitle }: { columnTitle: string }) { |
||||
await this.column.openEdit({ title: columnTitle }); |
||||
|
||||
await this.column.get().locator('.nc-cell-user + svg').click(); |
||||
} |
||||
} |
@ -0,0 +1,47 @@
|
||||
import { test } from '@playwright/test'; |
||||
import { DashboardPage } from '../../../pages/Dashboard'; |
||||
import { GridPage } from '../../../pages/Dashboard/Grid'; |
||||
import setup, { unsetup } from '../../../setup'; |
||||
import { TopbarPage } from '../../../pages/Dashboard/common/Topbar'; |
||||
|
||||
test.describe('User single select', () => { |
||||
let dashboard: DashboardPage, grid: GridPage, topbar: TopbarPage; |
||||
let context: any; |
||||
|
||||
test.beforeEach(async ({ page }) => { |
||||
context = await setup({ page, isEmptyProject: false }); |
||||
dashboard = new DashboardPage(page, context.base); |
||||
grid = dashboard.grid; |
||||
topbar = dashboard.grid.topbar; |
||||
|
||||
await dashboard.treeView.createTable({ title: 'sheet1', baseTitle: context.base.title }); |
||||
|
||||
await grid.column.create({ title: 'User', type: 'User' }); |
||||
|
||||
await grid.addNewRow({ index: 0, value: 'Row 0' }); |
||||
}); |
||||
|
||||
test.afterEach(async () => { |
||||
await unsetup(context); |
||||
}); |
||||
|
||||
// test('Verify default value options count and select default value', async () => {
|
||||
// // await dashboard.grid.column.userOption.verifyDefaultValueOptions({ columnTitle: 'User', totalCount: 5 });
|
||||
// await dashboard.grid.column.userOption.allowMultipleUser({ columnTitle: 'User', allowMultiple: true });
|
||||
// });
|
||||
|
||||
test('Rename column title and delete the column', async () => { |
||||
// Update column title, refresh and verify
|
||||
await dashboard.grid.column.openEdit({ title: 'User' }); |
||||
await dashboard.grid.column.fillTitle({ title: 'UserField' }); |
||||
await dashboard.grid.column.save({ |
||||
isUpdated: true, |
||||
}); |
||||
await topbar.clickRefresh(); |
||||
await grid.column.verify({ title: 'UserField', isVisible: true }); |
||||
|
||||
// delete column and verify
|
||||
await grid.column.delete({ title: 'UserField' }); |
||||
await grid.column.verify({ title: 'UserField', isVisible: false }); |
||||
}); |
||||
}); |
Loading…
Reference in new issue