/**
|
* @file S&OP WebMessageBox component to wrap common methods the team encounter during development
|
* @description WebMessageBox class extending libappbase's WebMessageBox.
|
* All S&OP page objects inherit from our own class (inheriting e2e/libappbase), but we can propose common methods to them.
|
* @author Kong Ching Shien (ckg6@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
import { Button } from '../e2elib/lib/src/pageobjects/button/button.component';
|
import { WebMessageBox } from '../libappbase/webmessagebox';
|
|
export enum WebMessageButton {
|
Yes = 'Yes',
|
No = 'No',
|
OK = 'OK',
|
}
|
|
export class WebMessageBoxSOP extends WebMessageBox {
|
private readonly _btnOk = new Button('btnAction9');
|
|
/**
|
* Click OK button to dismiss message box and wait till hidden.
|
*/
|
public async selectOk(): Promise<void> {
|
await this._btnOk.click();
|
await this.waitUntilHidden();
|
}
|
|
/**
|
* Verify web message text and click button to dismiss.
|
*
|
* @param message Text to verify.
|
* @param clickButton Button to click to dismiss message box.
|
*/
|
public async verifyMessageAndDismiss(message: string, clickButton: WebMessageButton): Promise<void> {
|
await this.waitUntilPresent();
|
expect(await this.getMessage()).toBe(message, 'Verify web message box text');
|
|
switch (clickButton) {
|
case WebMessageButton.Yes:
|
await this.selectYes();
|
break;
|
case WebMessageButton.No:
|
await this.selectNo();
|
break;
|
case WebMessageButton.OK:
|
await this.selectOk();
|
break;
|
default:
|
break;
|
}
|
}
|
}
|
|
const stepWebMessageBox = {
|
clickButton: (buttonName: string): string => `In message box, click ${buttonName}.`,
|
verifyMessageAndDismiss: (message: string, buttonName: string = 'OK'): string => `In message box, verify message "${message}" and click ${buttonName} to dismiss dialog.`,
|
};
|
|
export { stepWebMessageBox as StepWebMessageBox };
|