Files
nocodb/tests/playwright/pages/Account/SetupConfig.ts
2024-08-27 07:23:44 +00:00

42 lines
1.2 KiB
TypeScript

import BasePage from '../Base';
import { AccountSetupPage } from './Setup';
export class AccountSetupConfigPage extends BasePage {
private setupPage: AccountSetupPage;
constructor(setupPage: AccountSetupPage) {
super(setupPage.rootPage);
this.setupPage = setupPage;
}
async goto(category: 'email' | 'storage', plugin: string) {
await this.rootPage.goto(`/#/account/setup/${category}/${plugin}`);
}
get() {
return this.setupPage.get().getByTestId('nc-setup-config');
}
async fillForm(data: any) {
for (const key in data) {
const fieldWrapper = this.get().getByTestId(`nc-form-input-${key}`);
// if switch then toggle
if (await fieldWrapper.locator('.ant-switch').isVisible()) {
if (data[key]) {
await fieldWrapper.locator('.ant-switch').click();
}
} else {
await fieldWrapper.locator('input').focus();
await fieldWrapper.locator('input').fill(data[key]?.toString?.());
}
}
}
async test() {
await this.get().getByTestId('nc-setup-config-action-test').click();
}
async save() {
await this.get().getByTestId('nc-setup-config-action-save').click();
}
}