import { element, by } from '../e2elib/node_modules/protractor/built';
|
import { QLogType } from '../e2elib/lib/src/main/qlogtype.enum';
|
import { QUtils } from '../e2elib/lib/src/main/qutils.class';
|
import { WebLogin } from '../e2elib/lib/src/pageobjects/weblogin.component';
|
import { WebLogout } from '../e2elib/lib/src/pageobjects/weblogout.component';
|
import { QConsole } from '../e2elib/lib/src/helper/qconsole';
|
|
export class AppBase {
|
/**
|
* Performs application login action.
|
*
|
* @returns Promise object indicating the completion of login action
|
*/
|
public async login(username?: string, clearViewCache: boolean = true): Promise<void> {
|
// Login
|
// S&OP Added username argument for PCS to login as different user
|
const webLogin = new WebLogin();
|
try {
|
await webLogin.login(undefined, username);
|
|
// S&OP added IF statement (some test require viewAutoSave true thus can pass false to skip setting this to false)
|
if (clearViewCache) {
|
await QConsole.viewAutoSave(false);
|
await QConsole.clearViewCache();
|
}
|
} catch (err) {
|
expect(err).toBeLogged(QLogType.ERROR);
|
return;
|
}
|
}
|
|
/**
|
* Performs application logout action.
|
*
|
* @returns Promise object indicating the completion of logout action
|
*/
|
public async logout(): Promise<void> {
|
// Logout
|
const webLogout = new WebLogout();
|
await webLogout.logout();
|
}
|
|
/**
|
* Checks for any unexpected toast messages.
|
*
|
* @returns Promise object indicating the completion of check
|
*/
|
public async checkToastMessage(): Promise<void> {
|
await QUtils.checkToastMessage();
|
}
|
|
/**
|
* Turn off auto view save and clear view cache. For turning the feature ON, pass boolean when calling App.login method.
|
*/
|
public async disableAutoViewSave(): Promise<void> {
|
await QConsole.viewAutoSave(false);
|
await QConsole.clearViewCache();
|
}
|
|
/**
|
* Get application title.
|
*
|
* @returns Application title string
|
*/
|
public async getTitle(): Promise<string> {
|
const title = element(by.css('section.experience')).element(by.css('.title'));
|
return title.getText();
|
}
|
}
|