Skip to content

Commit d704c44

Browse files
committed
test: supporter level test
1 parent b561869 commit d704c44

File tree

3 files changed

+72
-61
lines changed

3 files changed

+72
-61
lines changed

src/2023/Talks/components/TrackInformation.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import React, { FC, useMemo } from "react";
2-
import { TalkCard } from "./TalkCard";
3-
import { IGroup } from "../Talk.types";
4-
import { StyledSessionSection, StyledTrackInfo } from "../Talks.style";
1+
import React, {FC, useMemo} from "react";
2+
import {TalkCard} from "./TalkCard";
3+
import {StyledSessionSection, StyledTrackInfo} from "../Talks.style";
4+
import {IGroup} from "../../../types/sessions";
55

66
interface TrackInfoProps {
77
track: IGroup;

src/2024/TalkDetail/MeetingDetailContainer.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import SectionWrapper from "../../components/SectionWrapper/SectionWrapper";
55
import styled from "styled-components";
66
import {useParams} from "react-router";
77
import conferenceData from "../../data/2024.json";
8-
import {sessionAdapter, useFetchTalksById} from "../Talks/UseFetchTalks";
8+
import {useFetchTalksById} from "../Talks/UseFetchTalks";
99
import * as Sentry from "@sentry/react";
1010
import {useFetchSpeakers} from "../Speakers/UseFetchSpeakers";
1111
import MeetingDetail from "./MeetingDetail";
1212

1313
import {ISpeaker} from "../../types/speakers";
1414
import {Session} from "../../types/sessions";
15+
import {sessionAdapter} from "../../services/sessionsAdapter";
1516

1617
const StyledContainer = styled.div`
1718
background-color: ${Color.WHITE};
Lines changed: 66 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,82 @@
1-
import { fireEvent, render, screen } from "@testing-library/react";
2-
import { Supporters } from "./Supporters";
1+
import {fireEvent, render, screen} from "@testing-library/react";
2+
import {Supporters} from "./Supporters";
33
import React from "react";
4-
import { useWindowSize } from "react-use";
5-
import { BrowserRouter, Route, Routes } from "react-router";
4+
import {useWindowSize} from "react-use";
5+
import {BrowserRouter, Route, Routes} from "react-router";
6+
import {Sponsor} from "./SponsorsData";
67

78
jest.mock("react-use", () => ({
8-
useWindowSize: jest.fn(),
9+
useWindowSize: jest.fn(),
910
}));
1011

1112
describe("Supporters", () => {
12-
beforeEach(() => {
13-
(useWindowSize as jest.Mock).mockReturnValue({ width: 1024 }); // Mock window width for testing
14-
});
13+
beforeEach(() => {
14+
(useWindowSize as jest.Mock).mockReturnValue({width: 1024}); // Mock window width for testing
15+
});
1516

16-
afterEach(() => {
17-
jest.clearAllMocks();
18-
});
17+
afterEach(() => {
18+
jest.clearAllMocks();
19+
});
1920

20-
// disabled until supporters included
21-
it.skip("renders component with supporters", () => {
22-
render(
23-
<React.Suspense fallback={<span>Loading...</span>}>
24-
<Routes>
25-
<Route path={""} element={<Supporters />} />
26-
</Routes>
27-
</React.Suspense>,
28-
{ wrapper: BrowserRouter }
29-
);
21+
const supporters: Sponsor[] = [{
22+
name: "test",
23+
website: "https://www.acme.com",
24+
image: "https://www.acme.com/logo.png",
25+
}];
3026

31-
expect(screen.getByTestId("supporters")).toBeInTheDocument();
32-
expect(screen.getByText("SUPPORTERS")).toBeInTheDocument();
33-
expect(screen.getAllByRole("link")).toHaveLength(5);
34-
});
27+
// disabled until supporters included
28+
it("renders component with supporters", () => {
29+
render(
30+
<React.Suspense fallback={<span>Loading...</span>}>
31+
<Routes>
32+
<Route path={""}
33+
element={<Supporters sponsors={supporters}/>}/>
34+
</Routes>
35+
</React.Suspense>,
36+
{wrapper: BrowserRouter}
37+
);
3538

36-
it.skip("applies hover styles on mouse enter", () => {
37-
render(
38-
<React.Suspense fallback={<span>Loading...</span>}>
39-
<Routes>
40-
<Route path={"*"} element={<Supporters />} />
41-
</Routes>
42-
</React.Suspense>,
43-
{ wrapper: BrowserRouter }
44-
);
45-
const supportersElement = screen.getByTestId("supporters");
39+
expect(screen.getByTestId("supporters")).toBeInTheDocument();
40+
expect(screen.getByText("SUPPORTERS")).toBeInTheDocument();
41+
expect(screen.getAllByRole("link")).toHaveLength(1);
42+
});
4643

47-
fireEvent.mouseEnter(supportersElement);
44+
it("applies hover styles on mouse enter", () => {
45+
render(
46+
<React.Suspense fallback={<span>Loading...</span>}>
47+
<Routes>
48+
<Route path={"*"}
49+
element={<Supporters sponsors={supporters}/>}/>
50+
</Routes>
51+
</React.Suspense>,
52+
{wrapper: BrowserRouter}
53+
);
54+
const supportersElement = screen.getByTestId("supporters");
4855

49-
expect(supportersElement).toHaveClass("SponsorItem");
50-
expect(screen.getByText("SUPPORTERS")).toHaveStyle(
51-
"color: rgb(255, 252, 249)"
52-
);
53-
});
56+
fireEvent.mouseEnter(supportersElement);
5457

55-
it.skip("removes hover styles on mouse leave", () => {
56-
render(
57-
<React.Suspense fallback={<span>Loading...</span>}>
58-
<Routes>
59-
<Route path={"*"} element={<Supporters />} />
60-
</Routes>
61-
</React.Suspense>,
62-
{ wrapper: BrowserRouter }
63-
);
64-
const supporterElement = screen.getByTestId("supporters");
58+
expect(supportersElement).toHaveClass("SponsorItem");
59+
expect(screen.getByText("SUPPORTERS")).toHaveStyle(
60+
"color: rgb(255, 252, 249)"
61+
);
62+
});
6563

66-
fireEvent.mouseEnter(supporterElement);
67-
fireEvent.mouseLeave(supporterElement);
64+
it("removes hover styles on mouse leave", () => {
65+
render(
66+
<React.Suspense fallback={<span>Loading...</span>}>
67+
<Routes>
68+
<Route path={"*"}
69+
element={<Supporters sponsors={supporters}/>}/>
70+
</Routes>
71+
</React.Suspense>,
72+
{wrapper: BrowserRouter}
73+
);
74+
const supporterElement = screen.getByTestId("supporters");
6875

69-
expect(supporterElement).not.toHaveClass("hovered");
70-
expect(screen.getByText("SUPPORTERS")).toHaveStyle("color: rgb(0, 36, 84)");
71-
});
76+
fireEvent.mouseEnter(supporterElement);
77+
fireEvent.mouseLeave(supporterElement);
78+
79+
expect(supporterElement).not.toHaveClass("hovered");
80+
expect(screen.getByText("SUPPORTERS")).toHaveStyle("color: rgb(0, 36, 84)");
81+
});
7282
});

0 commit comments

Comments
 (0)