From dbf771e866f943d166d01d907d2497b7eeada339 Mon Sep 17 00:00:00 2001 From: Tamir <1tamir198@gmail.com> Date: Sat, 30 Mar 2024 18:18:26 +0300 Subject: [PATCH 1/3] Check that we have elements on the screen --- components/BeOurFriends/BeOurFriends.tsx | 4 +- components/Common/DiscordLink.tsx | 1 + components/Home/Quote.tsx | 1 + components/Home/TitleSection.tsx | 2 +- components/Home/WhatNow.tsx | 4 +- components/Paths/Paths.tsx | 4 +- tests/mainPage.spec.ts | 47 ++++++++++++++++++++++++ 7 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 tests/mainPage.spec.ts diff --git a/components/BeOurFriends/BeOurFriends.tsx b/components/BeOurFriends/BeOurFriends.tsx index d5876012..ba1783d9 100644 --- a/components/BeOurFriends/BeOurFriends.tsx +++ b/components/BeOurFriends/BeOurFriends.tsx @@ -57,10 +57,10 @@ const BeOurFriends = () => { dir={direction} className="flex flex-col justify-start py-16 md:py-32" > -
+
-
+
{cards.map((card, index) => ( {

diff --git a/components/Home/TitleSection.tsx b/components/Home/TitleSection.tsx index 87f68c00..21fc5c76 100644 --- a/components/Home/TitleSection.tsx +++ b/components/Home/TitleSection.tsx @@ -6,7 +6,7 @@ export default function TitleSection() { return (
-

+

{t('title')} -
{t('subTitle')} diff --git a/components/Home/WhatNow.tsx b/components/Home/WhatNow.tsx index d855bfb1..651ec838 100644 --- a/components/Home/WhatNow.tsx +++ b/components/Home/WhatNow.tsx @@ -7,7 +7,7 @@ function WhatNow() { return (
-

{t('title')}

+

{t('title')}

@@ -20,7 +20,7 @@ function WhatNow() {

{t('paragraph')}

-
diff --git a/components/Paths/Paths.tsx b/components/Paths/Paths.tsx index aeee0885..98a17cf5 100644 --- a/components/Paths/Paths.tsx +++ b/components/Paths/Paths.tsx @@ -42,10 +42,10 @@ const variants = { export default function Paths() { return (
-
+
-
+
{paths.map((path, index) => ( { + await page.goto(BASE_URL); + + const title = page.getByTestId('homePage-title'); + title.scrollIntoViewIfNeeded(); + expect(title).toBeVisible(); + + const topDiscordLink = page.getByTestId('homePage-discordLink'); + topDiscordLink.scrollIntoViewIfNeeded(); + expect(topDiscordLink).toBeVisible(); + + const linusTorvaldsQuote = page.getByTestId('linusTorvaldsQuote'); + linusTorvaldsQuote.scrollIntoViewIfNeeded(); + expect(linusTorvaldsQuote).toBeVisible(); + + const beOurFirendsTitle = page.getByTestId('beOurFirendsTitle'); + beOurFirendsTitle.scrollIntoViewIfNeeded(); + expect(beOurFirendsTitle).toBeVisible(); + + const beOurFirendsItemContainer = page.getByTestId( + 'beOurFirendsItemContainer' + ); + beOurFirendsItemContainer.scrollIntoViewIfNeeded(); + expect(beOurFirendsItemContainer).toBeVisible(); + + //TODO check that beOurFirendsItemContainer git 6 childrens + + const pathsTitle = page.getByTestId('pathsTitle'); + pathsTitle.scrollIntoViewIfNeeded(); + expect(pathsTitle).toBeVisible(); + + const pathsTitleContainer = page.getByTestId('pathsTitleContainer'); + pathsTitleContainer.scrollIntoViewIfNeeded(); + expect(pathsTitleContainer).toBeVisible(); + + const whatNowTitle = page.getByTestId('whatNowTitle'); + whatNowTitle.scrollIntoViewIfNeeded(); + expect(whatNowTitle).toBeVisible(); + + const whatNowButton = page.getByTestId('whatNowButton'); + whatNowButton.scrollIntoViewIfNeeded(); + expect(whatNowButton).toBeVisible(); +}); From 8336beabbdcc48104ef93af227c521d9b4d8bd59 Mon Sep 17 00:00:00 2001 From: Tamir <1tamir198@gmail.com> Date: Sat, 30 Mar 2024 18:43:09 +0300 Subject: [PATCH 2/3] Refactor test - reduced repeating code --- components/BeOurFriends/BeOurFriends.tsx | 11 ++++- components/Home/TitleSection.tsx | 5 +- components/Home/WhatNow.tsx | 5 +- components/Paths/Paths.tsx | 11 ++++- tests/mainPage.spec.ts | 60 ++++++++++-------------- 5 files changed, 51 insertions(+), 41 deletions(-) diff --git a/components/BeOurFriends/BeOurFriends.tsx b/components/BeOurFriends/BeOurFriends.tsx index ba1783d9..2857b989 100644 --- a/components/BeOurFriends/BeOurFriends.tsx +++ b/components/BeOurFriends/BeOurFriends.tsx @@ -57,12 +57,19 @@ const BeOurFriends = () => { dir={direction} className="flex flex-col justify-start py-16 md:py-32" > -
+
-
+
{cards.map((card, index) => (
-

+

{t('title')} -
{t('subTitle')} diff --git a/components/Home/WhatNow.tsx b/components/Home/WhatNow.tsx index 651ec838..a8da09ac 100644 --- a/components/Home/WhatNow.tsx +++ b/components/Home/WhatNow.tsx @@ -20,7 +20,10 @@ function WhatNow() {

{t('paragraph')}

-
diff --git a/components/Paths/Paths.tsx b/components/Paths/Paths.tsx index 98a17cf5..67e90268 100644 --- a/components/Paths/Paths.tsx +++ b/components/Paths/Paths.tsx @@ -42,12 +42,19 @@ const variants = { export default function Paths() { return (
-
+
-
+
{paths.map((path, index) => ( { await page.goto(BASE_URL); - const title = page.getByTestId('homePage-title'); - title.scrollIntoViewIfNeeded(); - expect(title).toBeVisible(); + await checkElementVisibility(page, 'homePage-title'); + await checkElementVisibility(page, 'homePage-discordLink'); - const topDiscordLink = page.getByTestId('homePage-discordLink'); - topDiscordLink.scrollIntoViewIfNeeded(); - expect(topDiscordLink).toBeVisible(); + await checkElementVisibility(page, 'linusTorvaldsQuote'); - const linusTorvaldsQuote = page.getByTestId('linusTorvaldsQuote'); - linusTorvaldsQuote.scrollIntoViewIfNeeded(); - expect(linusTorvaldsQuote).toBeVisible(); + await checkElementVisibility(page, 'beOurFirendsTitle'); + await checkElementVisibility(page, 'beOurFirendsItemContainer'); + await checkElementVisibility(page, 'beOurFirendsItem0'); + await checkElementVisibility(page, 'beOurFirendsItem1'); + await checkElementVisibility(page, 'beOurFirendsItem2'); + await checkElementVisibility(page, 'beOurFirendsItem3'); + await checkElementVisibility(page, 'beOurFirendsItem4'); + await checkElementVisibility(page, 'beOurFirendsItem5'); - const beOurFirendsTitle = page.getByTestId('beOurFirendsTitle'); - beOurFirendsTitle.scrollIntoViewIfNeeded(); - expect(beOurFirendsTitle).toBeVisible(); + await checkElementVisibility(page, 'pathsTitle'); + await checkElementVisibility(page, 'pathsTitleContainer'); - const beOurFirendsItemContainer = page.getByTestId( - 'beOurFirendsItemContainer' - ); - beOurFirendsItemContainer.scrollIntoViewIfNeeded(); - expect(beOurFirendsItemContainer).toBeVisible(); + await checkElementVisibility(page, 'pathsTitleItem0'); + await checkElementVisibility(page, 'pathsTitleItem1'); + await checkElementVisibility(page, 'pathsTitleItem2'); - //TODO check that beOurFirendsItemContainer git 6 childrens - - const pathsTitle = page.getByTestId('pathsTitle'); - pathsTitle.scrollIntoViewIfNeeded(); - expect(pathsTitle).toBeVisible(); - - const pathsTitleContainer = page.getByTestId('pathsTitleContainer'); - pathsTitleContainer.scrollIntoViewIfNeeded(); - expect(pathsTitleContainer).toBeVisible(); - - const whatNowTitle = page.getByTestId('whatNowTitle'); - whatNowTitle.scrollIntoViewIfNeeded(); - expect(whatNowTitle).toBeVisible(); - - const whatNowButton = page.getByTestId('whatNowButton'); - whatNowButton.scrollIntoViewIfNeeded(); - expect(whatNowButton).toBeVisible(); + await checkElementVisibility(page, 'whatNowTitle'); + await checkElementVisibility(page, 'whatNowButton'); }); From 2ad8bcabd62abb3807308abe581477774f34b73e Mon Sep 17 00:00:00 2001 From: Tamir <1tamir198@gmail.com> Date: Sat, 30 Mar 2024 18:47:45 +0300 Subject: [PATCH 3/3] Removed redundent argument from test functions --- tests/mainPage.spec.ts | 53 ++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/tests/mainPage.spec.ts b/tests/mainPage.spec.ts index 68adaaf5..028eb0ec 100644 --- a/tests/mainPage.spec.ts +++ b/tests/mainPage.spec.ts @@ -11,27 +11,34 @@ async function checkElementVisibility(page: Page, elementTestId: string) { test('Check main page elements exist', async ({ page }) => { await page.goto(BASE_URL); - await checkElementVisibility(page, 'homePage-title'); - await checkElementVisibility(page, 'homePage-discordLink'); - - await checkElementVisibility(page, 'linusTorvaldsQuote'); - - await checkElementVisibility(page, 'beOurFirendsTitle'); - await checkElementVisibility(page, 'beOurFirendsItemContainer'); - await checkElementVisibility(page, 'beOurFirendsItem0'); - await checkElementVisibility(page, 'beOurFirendsItem1'); - await checkElementVisibility(page, 'beOurFirendsItem2'); - await checkElementVisibility(page, 'beOurFirendsItem3'); - await checkElementVisibility(page, 'beOurFirendsItem4'); - await checkElementVisibility(page, 'beOurFirendsItem5'); - - await checkElementVisibility(page, 'pathsTitle'); - await checkElementVisibility(page, 'pathsTitleContainer'); - - await checkElementVisibility(page, 'pathsTitleItem0'); - await checkElementVisibility(page, 'pathsTitleItem1'); - await checkElementVisibility(page, 'pathsTitleItem2'); - - await checkElementVisibility(page, 'whatNowTitle'); - await checkElementVisibility(page, 'whatNowButton'); + async function checkElementVisibility(elementTestId: string) { + const element = page.getByTestId(elementTestId); + element.scrollIntoViewIfNeeded(); + const isVisible = await element.isVisible(); + expect(isVisible).toBeTruthy(); + } + + await checkElementVisibility('homePage-title'); + await checkElementVisibility('homePage-discordLink'); + + await checkElementVisibility('linusTorvaldsQuote'); + + await checkElementVisibility('beOurFirendsTitle'); + await checkElementVisibility('beOurFirendsItemContainer'); + await checkElementVisibility('beOurFirendsItem0'); + await checkElementVisibility('beOurFirendsItem1'); + await checkElementVisibility('beOurFirendsItem2'); + await checkElementVisibility('beOurFirendsItem3'); + await checkElementVisibility('beOurFirendsItem4'); + await checkElementVisibility('beOurFirendsItem5'); + + await checkElementVisibility('pathsTitle'); + await checkElementVisibility('pathsTitleContainer'); + + await checkElementVisibility('pathsTitleItem0'); + await checkElementVisibility('pathsTitleItem1'); + await checkElementVisibility('pathsTitleItem2'); + + await checkElementVisibility('whatNowTitle'); + await checkElementVisibility('whatNowButton'); });