diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index 0e2e9f4..9b76a64 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -9,6 +9,7 @@ import { defineConfig, devices } from "@playwright/test"; /** * See https://playwright.dev/docs/test-configuration. */ +//const baseURL = `http://localhost:3000/`; const baseURL = `http://web.hypso.ies.ntnu.no:3000/`; export default defineConfig({ diff --git a/frontend/tests/project.desktop.spec.ts b/frontend/tests/project.desktop.spec.ts new file mode 100644 index 0000000..92af9f7 --- /dev/null +++ b/frontend/tests/project.desktop.spec.ts @@ -0,0 +1,33 @@ +import { test, expect } from "@playwright/test"; + +//BASE_URL: http://web.hypso.ies.ntnu.no:3000/ + +test.describe("All Project Page Test", () => { + test("CheckHeadingAndSubtitleIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Projects" }).click(); + await expect(page).toHaveURL("/projects"); + await expect(page.getByTestId("pageHeader")).toBeVisible(); + await expect(page.getByTestId("pageSubtitle")).toBeVisible(); + }); + test("CheckIfCardIsClickable", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Projects" }).click(); + await expect(page).toHaveURL("/projects"); + await expect(page.getByTestId("projectCard").first()).toBeVisible(); + await page.getByTestId("projectCard").first().click(); + //Checks if the URL matches /projects/anySlug + await expect(page).toHaveURL(/\/projects\/.+$/); + }); +}); + +test.describe("Individual Project Page Test", () => { + test("TestHeadingAndParagraphIsVisible", async ({ page }) => { + await page.goto("/"); + await page.getByRole("button", { name: "Projects" }).click(); + await page.getByTestId("projectCard").first().click(); + await expect(page).toHaveURL(/\/projects\/.+$/); + await expect(page.getByRole("heading").first()).toBeVisible(); + await expect(page.getByTestId("blockParagraph").first()).toBeVisible(); + }); +}); diff --git a/frontend/tests/project.mobile.spec.ts b/frontend/tests/project.mobile.spec.ts new file mode 100644 index 0000000..6a766bf --- /dev/null +++ b/frontend/tests/project.mobile.spec.ts @@ -0,0 +1,42 @@ +import { test, expect } from "@playwright/test"; + +//BASE_URL: http://web.hypso.ies.ntnu.no:3000/ + +test.describe("All Project 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: "Projects" }).click(); + await expect(page).toHaveURL("/projects"); + 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: "Projects" }).click(); + await expect(page).toHaveURL("/projects"); + await expect(page.getByTestId("projectCard").first()).toBeVisible(); + await page.getByTestId("projectCard").first().click(); + //Checks if the URL matches /projects/anySlug + await expect(page).toHaveURL(/\/projects\/.+$/); + }); +}); + +test.describe("Individual Project 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: "Projects" }).click(); + await page.getByTestId("projectCard").first().click(); + await expect(page).toHaveURL(/\/projects\/.+$/); + await expect(page.getByRole("heading").first()).toBeVisible(); + await expect(page.getByTestId("blockParagraph").first()).toBeVisible(); + }); +});