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.
34 lines
1.1 KiB
34 lines
1.1 KiB
import BasePage from '../../Base'; |
|
import { expect } from '@playwright/test'; |
|
import { DataSourcePage } from './DataSourcePage'; |
|
|
|
export class AclPage extends BasePage { |
|
readonly dataSources: DataSourcePage; |
|
|
|
constructor(dataSources: DataSourcePage) { |
|
super(dataSources.rootPage); |
|
this.dataSources = dataSources; |
|
} |
|
|
|
get() { |
|
return this.dataSources.getDsDetailsModal(); |
|
} |
|
|
|
async toggle({ table, role }: { table: string; role: string }) { |
|
await this.get().locator(`.nc-acl-${table}-${role}-chkbox`).click(); |
|
} |
|
|
|
async verify({ table, role, expectedValue }: { table: string; role: string; expectedValue: boolean }) { |
|
const isChecked = await this.get().locator(`.nc-acl-${table}-${role}-chkbox`).isChecked(); |
|
expect(isChecked).toBe(expectedValue); |
|
} |
|
|
|
async save() { |
|
await this.waitForResponse({ |
|
uiAction: async () => await this.get().locator(`button:has-text("Save")`).click(), |
|
httpMethodsToMatch: ['POST'], |
|
requestUrlPathToMatch: '/visibility-rules', |
|
}); |
|
await this.verifyToast({ message: 'Updated UI ACL for tables successfully' }); |
|
} |
|
}
|
|
|