diff --git a/frontend/tests/componentTests/SatelliteSelector.spec.tsx b/frontend/tests/componentTests/SatelliteSelector.spec.tsx new file mode 100644 index 0000000..336646a --- /dev/null +++ b/frontend/tests/componentTests/SatelliteSelector.spec.tsx @@ -0,0 +1,2 @@ +import SatelliteSelector from "@/components/homeComponents/SatelliteSelector"; +import { test, expect } from "@playwright/experimental-ct-react"; diff --git a/frontend/tests/e2e/blog.desktop.spec.ts b/frontend/tests/e2e/blog.desktop.spec.ts index d8649d4..9d86179 100644 --- a/frontend/tests/e2e/blog.desktop.spec.ts +++ b/frontend/tests/e2e/blog.desktop.spec.ts @@ -9,8 +9,10 @@ test.describe("Blogs pages test", () => { await expect(page.getByTestId("pageSubtitle")).toBeVisible(); await page.getByTestId("blogsSatellitesButton").click(); await expect(page).toHaveURL("/blog?page=1&tag=Satellites"); - await expect(page.getByTestId("articleTag")).toHaveText("Satellites"); - await page.getByTestId("blogCardLink").click(); + await expect(page.getByTestId("articleTag").first()).toHaveText( + "Satellites", + ); + await page.getByTestId("blogCardLink").first().click(); await expect(page).toHaveURL(/\/blog\/.+$/); }); test("individualBlogPagetest", async ({ page }) => { diff --git a/frontend/tests/project.desktop.spec.ts b/frontend/tests/e2e/project.desktop.spec.ts similarity index 100% rename from frontend/tests/project.desktop.spec.ts rename to frontend/tests/e2e/project.desktop.spec.ts diff --git a/frontend/tests/project.mobile.spec.ts b/frontend/tests/e2e/project.mobile.spec.ts similarity index 100% rename from frontend/tests/project.mobile.spec.ts rename to frontend/tests/e2e/project.mobile.spec.ts diff --git a/frontend/tests/e2e/satellite.desktop.spec.ts b/frontend/tests/e2e/satellite.desktop.spec.ts new file mode 100644 index 0000000..c236843 --- /dev/null +++ b/frontend/tests/e2e/satellite.desktop.spec.ts @@ -0,0 +1,34 @@ +import { test, expect } from "@playwright/test"; + +test.describe("All Satellites Page Test", () => { + test("CheckHeadingAndSubtitleIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Satellites" }).click(); + await expect(page).toHaveURL("/satellites"); + await expect(page.getByTestId("pageHeader")).toBeVisible(); + await expect(page.getByTestId("pageSubtitle")).toBeVisible(); + }); + test("CheckIfCardIsClickable", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Satellites" }).click(); + await expect(page).toHaveURL("/satellites"); + await expect( + page.getByTestId("satellitesTableRow").first(), + ).toBeVisible(); + await page.getByTestId("satellitesTableRow").first().click(); + //Checks if the URL matches /satellites/anySlug + await expect(page).toHaveURL(/\/satellites\/.+$/); + }); +}); + +test.describe("Individual Satellite Page Test", () => { + test("TestHeadingAndParagraphIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Satellites" }).click(); + await page.getByTestId("satellitesTableRow").first().click(); + await expect(page).toHaveURL(/\/satellites\/.+$/); + await expect(page.getByRole("heading").first()).toBeVisible(); + await expect(page.getByRole("heading").nth(2)).toBeVisible(); + await expect(page.getByTestId("blockParagraph").first()).toBeVisible(); + }); +}); diff --git a/frontend/tests/e2e/satellite.mobile.spec.ts b/frontend/tests/e2e/satellite.mobile.spec.ts new file mode 100644 index 0000000..df4561e --- /dev/null +++ b/frontend/tests/e2e/satellite.mobile.spec.ts @@ -0,0 +1,45 @@ +import { test, expect } from "@playwright/test"; + +test.describe("All Satellites Page Test", () => { + test.use({ + viewport: { width: 390, height: 844 }, + }); + + test("CheckHeadingAndSubtitleIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("navigation").getByRole("button").click(); + await page.getByRole("button", { name: "Satellites" }).click(); + await expect(page).toHaveURL("/satellites"); + await expect(page.getByTestId("pageHeader")).toBeVisible(); + await expect(page.getByTestId("pageSubtitle")).toBeVisible(); + }); + test("CheckIfCardIsClickable", async ({ page }) => { + await page.goto("/"); + await page.getByRole("navigation").getByRole("button").click(); + await page.getByRole("button", { name: "Satellites" }).click(); + await expect(page).toHaveURL("/satellites"); + await expect( + page.getByTestId("satellitesTableRow").first(), + ).toBeVisible(); + await page.getByTestId("satellitesTableRow").first().click(); + //Checks if the URL matches /satellites/anySlug + await expect(page).toHaveURL(/\/satellites\/.+$/); + }); +}); + +test.describe("Individual Satellite Page Test", () => { + test.use({ + viewport: { width: 390, height: 844 }, + }); + + test("TestHeadingAndParagraphIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("navigation").getByRole("button").click(); + await page.getByRole("button", { name: "Satellites" }).click(); + await page.getByTestId("satellitesTableRow").first().click(); + await expect(page).toHaveURL(/\/satellites\/.+$/); + await expect(page.getByRole("heading").first()).toBeVisible(); + await expect(page.getByRole("heading").nth(2)).toBeVisible(); + await expect(page.getByTestId("blockParagraph").first()).toBeVisible(); + }); +});