多维表格
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.

49 lines
1.5 KiB

import { expect } from '@playwright/test';
import BasePage from '../Base';
import { AccountPage } from './index';
export class AccountSettingsPage extends BasePage {
private accountPage: AccountPage;
constructor(accountPage: AccountPage) {
super(accountPage.rootPage);
this.accountPage = accountPage;
}
async goto(p: { networkValidation: boolean }) {
if (p.networkValidation) {
return this.waitForResponse({
uiAction: async () => await this.rootPage.goto('/#/account/users/settings'),
httpMethodsToMatch: ['GET'],
requestUrlPathToMatch: `api/v1/app-settings`,
});
} else {
await this.rootPage.goto('/#/account/users/settings');
await this.rootPage.waitForTimeout(500);
return;
}
}
get() {
return this.accountPage.get().locator(`[data-testid="nc-app-settings"]`);
}
getInviteOnlyCheckbox() {
return this.get().locator(`.nc-invite-only-signup-checkbox`);
}
async getInviteOnlyCheckboxValue() {
await this.get().locator(`.nc-invite-only-signup-checkbox`).waitFor({ state: 'visible' });
return this.get().locator(`.nc-invite-only-signup-checkbox`).isChecked({ timeout: 1000 });
}
async checkInviteOnlySignupCheckbox(value: boolean) {
return expect(await this.getInviteOnlyCheckboxValue()).toBe(value);
}
async toggleInviteOnlyCheckbox() {
await this.getInviteOnlyCheckbox().click();
await this.verifyToast({ message: 'Settings saved successfully' });
}
}