/**
|
* @file Dialog form component base class
|
* @description Intialize dialog form by passing in DialogForm name and OK / Cancel button name.
|
* Allow to check whether Ok button is clickable and perform click action of OK / Cancel button.
|
* @author Wong Jia Hui (jiahui.wong@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
import { Form } from '../e2elib/lib/src/pageobjects/form.component';
|
import { ButtonBase } from './buttonbase';
|
|
export class DialogBase extends Form {
|
// Buttons
|
public btnOk: ButtonBase;
|
public btnCancel: ButtonBase;
|
|
/**
|
* To initialize dialog by pass-in dialog name
|
*
|
* @param dialogName Name of dialog to initialize
|
* @param btnOkName Button name of positive action to save changes
|
* @param btnCancelName Button name of negative action to cancel changes
|
*/
|
public constructor(dialogName: string, btnOkName: string, btnCancelName: string) {
|
super(dialogName);
|
|
// Initialize ok and cancel button in a dialog
|
this.btnOk = new ButtonBase(btnOkName);
|
this.btnCancel = new ButtonBase(btnCancelName);
|
}
|
|
/**
|
* Perform click action on Ok button if it is clickable
|
*
|
* @param waitTime [Optional] miliseconds of how long it should wait for Ok Button to be clickable.
|
* @return boolean to indicate whether click action is performed
|
*/
|
public async clickOK(waitTime?: number): Promise<boolean> {
|
const canClickOk = await this.btnOk.isClickable(waitTime);
|
if (canClickOk) {
|
await this.btnOk.click();
|
await this.waitUntilHidden();
|
}
|
return canClickOk;
|
}
|
|
/**
|
* Perform click action on Cancel button
|
*/
|
public async clickCancel(): Promise<void> {
|
await this.btnCancel.click();
|
await this.waitUntilHidden();
|
}
|
}
|