|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
get() {
|
|
|
|
return this.accountPage.get().locator(`[data-testid="nc-app-settings"]`);
|
|
|
|
}
|
|
|
|
|
|
|
|
getInviteOnlyCheckbox() {
|
|
|
|
return this.get().locator(`.nc-invite-only-signup-checkbox`);
|
|
|
|
}
|
|
|
|
|
|
|
|
async getInviteOnlyCheckboxValue() {
|
|
|
|
// allow time for the checkbox to be rendered
|
|
|
|
await this.rootPage.waitForTimeout(1000);
|
|
|
|
|
|
|
|
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' });
|
|
|
|
}
|
|
|
|
}
|