From 78453148cbcbf09942544ebfb61ae857d022a691 Mon Sep 17 00:00:00 2001 From: Sabella-8 Date: Wed, 20 Mar 2024 23:21:09 +0000 Subject: [PATCH 1/4] test for card --- src/components/Card/__test__/card.test.jsx | 31 ++++++++++++++++++++++ witch main | 11 ++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/components/Card/__test__/card.test.jsx create mode 100644 witch main diff --git a/src/components/Card/__test__/card.test.jsx b/src/components/Card/__test__/card.test.jsx new file mode 100644 index 0000000..01adc27 --- /dev/null +++ b/src/components/Card/__test__/card.test.jsx @@ -0,0 +1,31 @@ +import Card from "../Card"; +import { render, screen } from "@testing-library/react"; + +test("should render a title", () => { + render( + + ); + const titleElement = screen.getAllByText("countryName"); + expect(titleElement).toBeInTheDocument(); +}); + +test("should render a link with the correct URL", () => { + render( + + ); + const linkElement = screen.getByRole("link", { name: "Manchester" }); + expect(linkElement).toBeInTheDocument(); + expect(linkElement).toHaveAttribute("href", "https://example.com"); +}); + +test("should render an image with alt text", () => { + render( + + ); + const imageElement = screen.getByAltText("Manchester"); + expect(imageElement).toBeInTheDocument(); +}); diff --git a/witch main b/witch main new file mode 100644 index 0000000..d39530a --- /dev/null +++ b/witch main @@ -0,0 +1,11 @@ + Feature-Active-row + Feature-Search-State + Feature-implement-Search-functionality + FeatureCalculateDuration + Search-onSubmit + feature-booking-state +* feature-card + feature-deck + fetch-bookings + main + search-results From e10fda8b3aa2cbfc3fd4f2a4a54fab91ce465c5f Mon Sep 17 00:00:00 2001 From: Sabella-8 Date: Thu, 21 Mar 2024 11:47:22 +0000 Subject: [PATCH 2/4] card test --- src/components/Card/__test__/card.test.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Card/__test__/card.test.jsx b/src/components/Card/__test__/card.test.jsx index 01adc27..193ed37 100644 --- a/src/components/Card/__test__/card.test.jsx +++ b/src/components/Card/__test__/card.test.jsx @@ -9,7 +9,7 @@ test("should render a title", () => { image="test-image.jpg" /> ); - const titleElement = screen.getAllByText("countryName"); + const titleElement = screen.getByRole("heading", { name: "countryName" }); expect(titleElement).toBeInTheDocument(); }); From be5c80be313d59000dce79b336e9e6b5f6e22fd9 Mon Sep 17 00:00:00 2001 From: Sabella-8 Date: Thu, 21 Mar 2024 21:36:38 +0000 Subject: [PATCH 3/4] test-deck component --- src/components/Deck/Deck.jsx | 2 +- src/components/Deck/__test__/Deck.test.jsx | 37 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/components/Deck/__test__/Deck.test.jsx diff --git a/src/components/Deck/Deck.jsx b/src/components/Deck/Deck.jsx index c9215bc..aed596b 100644 --- a/src/components/Deck/Deck.jsx +++ b/src/components/Deck/Deck.jsx @@ -4,7 +4,7 @@ import cardsData from "@/data/fakeCards.json"; const Deck = (props) => { return ( -
+
{cardsData.map((city, index) => ( { + render(); + const cardcomponent = screen.getAllByTestId("info cards"); + const manchester = cardcomponent.filter((card) => + card.textContent.toLowerCase().includes("manchester") + ); + const glasgow = cardcomponent.filter((card) => + card.textContent.toLowerCase().includes("glasgow") + ); + const london = cardcomponent.filter((card) => + card.textContent.toLowerCase().includes("london") + ); + expect(manchester.length).toBeGreaterThan(0); + expect(glasgow.length).toBeGreaterThan(0); + expect(london.length).toBeGreaterThan(0); +}); +test("Each card should link to the correct website.", () => { + render(); + const cardcomponent = screen.getAllByTestId("info cards"); + cardcomponent.forEach((card) => { + const linkElement = card.querySelector("a"); + expect(linkElement).toBeInTheDocument(); + expect(linkElement).toHaveAttribute("href"); + }); +}); +test("Each card should link to the correct image.", () => { + render(); + const cardcomponent = screen.getAllByTestId("info cards"); + cardcomponent.forEach((card) => { + const imageElement = card.querySelector("img"); + expect(imageElement).toBeInTheDocument(); + expect(imageElement).toHaveAttribute("src"); + }); +}); From bce610945387949ac0ff68a5f7cb5849c1f27e91 Mon Sep 17 00:00:00 2001 From: Sabella-8 Date: Thu, 21 Mar 2024 22:00:40 +0000 Subject: [PATCH 4/4] test for feature active row --- .../__test__/featureactiverow.test.jsx | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/components/SearchResult/__test__/featureactiverow.test.jsx diff --git a/src/components/SearchResult/__test__/featureactiverow.test.jsx b/src/components/SearchResult/__test__/featureactiverow.test.jsx new file mode 100644 index 0000000..ef29b6e --- /dev/null +++ b/src/components/SearchResult/__test__/featureactiverow.test.jsx @@ -0,0 +1,32 @@ +import TableBody from "../TableBody"; +import { render, screen, fireEvent } from "@testing-library/react"; + +test("Verify that each row of your table can be highlighted (on and off) independently when being clicked.", () => { + render( + + + + +
+ ); + + const tableRows = screen.getAllByRole("row"); + + tableRows.forEach((row) => { + fireEvent.click(row); + expect(row).toHaveClass("selected"); + fireEvent.click(row); + expect(row).not.toHaveClass("selected"); + }); +});