import { WebElement } from '@contour/fet/lib/elements'; import { Button } from '@contour/fet/lib/elements/button'; import { ContourBanner } from '../../../elements/contourBanner'; import commonLoc from '../../../pages/common/common.locator'; import { CompanySettingsPage } from '../../../pages/companySettings/companySettings.page'; import { ForgotPasswordPage } from '../../../pages/login/forgotPassword/forgotPassword.page'; import { LoginPage } from '../../../pages/login/login.page'; import { ResetPasswordPage } from '../../../pages/login/resetPassword/resetPassword.page'; import { NavigationBarPage } from '../../../pages/navigationBar/navigationBar.page'; import scenarioContext from '../../../util/scenarioContext'; export async function scrollToAndClick(pageName, elementName) { const button = new Button(contourfet.getPageElement(pageName, elementName)); await button.clickElement(true, true); } export async function assertPage(pageName: string) { const pageMapping = { 'forgot password': async function () { await new ForgotPasswordPage().assertPage(); }, 'reset password': async function () { await new ResetPasswordPage().assertPage(); }, home: async function () { await new NavigationBarPage().assertPage(); }, login: async function () { await new LoginPage().assertPage(); }, companySettings: async function () { await new CompanySettingsPage().assertPage(); } }; if (!(pageName in pageMapping)) { throw new Error('Invalid page name given !!'); } await pageMapping[pageName](); } export async function getPageTitle(): Promise { const el = new WebElement(commonLoc.default.locators.pageTitle); return (await el.getText()).trim(); } export async function checkElementMatchText(pageName: string, elementName: string, text: string) { logger.debug(`elementMatchText: pageName: ${pageName} ,elementName: ${elementName} ,text: ${text}`); const value = scenarioContext().mapContextVariable(text); const el = new WebElement(contourfet.getPageElement(pageName, elementName)); await el.checkEqualsText(value, false); } export async function checkBannerTextMatches(_bannerType: string, expText?: string) { if (expText) { const banner = new ContourBanner(); await banner.getBanner().checkEqualsText(expText); } }