import { fixture } from "../hooks/pageFixture"; import { expect, Page } from "@playwright/test"; import Core from '../global/global'; export default class Assertion { constructor() { } async isVisible(locator: string) { const timestamp = new Date().toISOString(); const core = Core.getInstance(); let status = 'Success'; let obj: any; let message = 'Action completed successfully'; obj = await core.Element.get(locator); await expect(obj).toBeVisible(); message = 'Object is visible and assertion completed successfully'; fixture.logger.info(message) //ActionLogger.log({timestamp, locator, status, message,}); } async getText(locator: string) { const timestamp = new Date().toISOString(); let status = 'Success'; let message = 'Action completed successfully'; const core = Core.getInstance(); try { const obj = await core.Element.get(locator); const objTextContent = await obj.textContent(); message = "Text: " + objTextContent; } catch (error) { status = 'Failed'; if (error instanceof Error) { message = error.message; } } finally { fixture.logger.info(message) } } async isTextGreaterThan(locator: string, value: number) { const timestamp = new Date().toISOString(); let status = 'Success'; let message = 'Action completed successfully'; let textContent = "0"; const core = Core.getInstance(); try { const obj = await core.Element.get(locator); textContent = await obj.textContent(); message = "Text: " + textContent; } catch (error) { status = 'Failed'; if (error instanceof Error) { message = error.message; } } finally { await expect(Number(textContent)).toBeGreaterThan(Number(value)); fixture.logger.info(message) } } async assertTitle(title: string) { const pageTitle = await fixture.page.title(); await expect(fixture.page).toHaveTitle(title); fixture.logger.info("Page title: "+ pageTitle); } async assertTitleContains(title: string) { const pageTitle = await fixture.page.title(); await expect(pageTitle).toContain(title); fixture.logger.info("Page title: "+ pageTitle); } async assertURL(url: string) { const pageTitle = await fixture.page.title(); await expect(fixture.page).toHaveURL(url); fixture.logger.info("Page title: "+ pageTitle); } async assertURLContains(title: string) { const pageTitle = await fixture.page.title(); const pageURL = await fixture.page.url(); await expect(pageURL).toContain(title); fixture.logger.info("Page title: "+ pageTitle); } }