From 2f2909e98ba339a7eb8d3b3ca246a2b7704a7613 Mon Sep 17 00:00:00 2001 From: ShayLevi <61374483+ShayLevi@users.noreply.github.com> Date: Wed, 25 Dec 2024 12:49:55 +0200 Subject: [PATCH] vp test: test if video on components page is playing (#771) --- test/e2e/specs/componentsPage.spec.ts | 17 +++++++++++++++++ test/e2e/src/pom/PageManager.ts | 5 +++++ test/e2e/src/pom/componentsPage.ts | 16 ++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 test/e2e/specs/componentsPage.spec.ts create mode 100644 test/e2e/src/pom/componentsPage.ts diff --git a/test/e2e/specs/componentsPage.spec.ts b/test/e2e/specs/componentsPage.spec.ts new file mode 100644 index 00000000..b6399b80 --- /dev/null +++ b/test/e2e/specs/componentsPage.spec.ts @@ -0,0 +1,17 @@ +import { vpTest } from '../fixtures/vpTest'; +import { expect, test } from '@playwright/test'; +import { waitForPageToLoadWithTimeout } from '../src/helpers/waitForPageToLoadWithTimeout'; +import { getLinkByName } from '../testData/pageLinksData'; +import { ExampleLinkName } from '../testData/ExampleLinkNames'; + +const link = getLinkByName(ExampleLinkName.Components); + +vpTest(`Test if video on components page is playing as expected`, async ({ page, pomPages }) => { + await test.step('Navigate to components page by clicking on link', async () => { + await pomPages.mainPage.clickLinkByName(link.name); + await waitForPageToLoadWithTimeout(page, 5000); + }); + await test.step('Validating that components video is playing (in case isPause is false)', async () => { + expect(await pomPages.componentsPage.componentsVideoComponent.validateVideoPaused(false)); + }); +}); diff --git a/test/e2e/src/pom/PageManager.ts b/test/e2e/src/pom/PageManager.ts index 5aab4aa7..a39b10bd 100644 --- a/test/e2e/src/pom/PageManager.ts +++ b/test/e2e/src/pom/PageManager.ts @@ -10,6 +10,7 @@ import { ChaptersPage } from './chaptersPage'; import { CldAnalyticsPage } from './cldAnalyticsPage'; import { CodecsAndFormats } from './codecsAndFormats'; import { ColorsApiPage } from './colorsApiPage'; +import { ComponentsPage } from './componentsPage'; /** * Page manager, @@ -101,5 +102,9 @@ export class PageManager { public get colorsApiPage(): ColorsApiPage { return this.getPage(ColorsApiPage); } + + public get componentsPage(): ComponentsPage { + return this.getPage(ComponentsPage); + } } export default PageManager; diff --git a/test/e2e/src/pom/componentsPage.ts b/test/e2e/src/pom/componentsPage.ts new file mode 100644 index 00000000..4e943fa8 --- /dev/null +++ b/test/e2e/src/pom/componentsPage.ts @@ -0,0 +1,16 @@ +import { Page } from '@playwright/test'; +import { VideoComponent } from '../../components/videoComponent'; +import { BasePage } from './BasePage'; +const COMPONENTS_PAGE_VIDEO_SELECTOR = '//*[@id="player_html5_api"]'; + +/** + * Video player examples components page object + */ +export class ComponentsPage extends BasePage { + public componentsVideoComponent: VideoComponent; + + constructor(page: Page) { + super(page); + this.componentsVideoComponent = new VideoComponent(page, COMPONENTS_PAGE_VIDEO_SELECTOR); + } +}