Skip to content

Commit da679f1

Browse files
committed
fix: Add 2025 and 2026 routing logic and tests for talk and speaker detail pages in TalkCard.
1 parent acc0f5f commit da679f1

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

src/components/common/TalkCard.test.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,33 @@ describe("TalkCard", () => {
112112
expect(talkLink.closest("a")).toHaveAttribute("href", "/2023/talk/123");
113113
});
114114

115+
it("links to correct talk detail route for 2025", () => {
116+
renderTalkCard({ year: "2025" });
117+
const talkLink = screen.getByText("Test Talk Title");
118+
expect(talkLink.closest("a")).toHaveAttribute("href", "/2025/talk/123");
119+
});
120+
121+
it("links to correct talk detail route for 2026", () => {
122+
renderTalkCard({ year: "2026" });
123+
const talkLink = screen.getByText("Test Talk Title");
124+
expect(talkLink.closest("a")).toHaveAttribute("href", "/2026/talk/123");
125+
});
126+
115127
it("links to correct speaker detail route", () => {
116128
renderTalkCard({ year: "2024" });
117129
const speakerLink = screen.getByText("John Doe").closest("a");
118130
expect(speakerLink).toHaveAttribute("href", "/2024/speaker/speaker-1");
119131
});
132+
133+
it("links to correct speaker detail route for 2025", () => {
134+
renderTalkCard({ year: "2025" });
135+
const speakerLink = screen.getByText("John Doe").closest("a");
136+
expect(speakerLink).toHaveAttribute("href", "/2025/speaker/speaker-1");
137+
});
138+
139+
it("links to correct speaker detail route for 2026", () => {
140+
renderTalkCard({ year: "2026" });
141+
const speakerLink = screen.getByText("John Doe").closest("a");
142+
expect(speakerLink).toHaveAttribute("href", "/2026/speaker/speaker-1");
143+
});
120144
});

src/components/common/TalkCard.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ import {
77
ROUTE_2023_TALK_DETAIL,
88
ROUTE_2024_SPEAKER_DETAIL,
99
ROUTE_2024_TALK_DETAIL,
10+
ROUTE_2025_SPEAKER_DETAIL,
11+
ROUTE_2025_TALK_DETAIL,
12+
ROUTE_2026_SPEAKER_DETAIL,
13+
ROUTE_2026_TALK_DETAIL,
1014
ROUTE_SPEAKER_DETAIL,
1115
ROUTE_TALK_DETAIL,
1216
} from "@constants/routes";
@@ -53,6 +57,12 @@ export interface TalkCardProps {
5357
}
5458

5559
const getTalkDetailRoute = (year: string): string => {
60+
if (year === "2026") {
61+
return ROUTE_2026_TALK_DETAIL;
62+
}
63+
if (year === "2025") {
64+
return ROUTE_2025_TALK_DETAIL;
65+
}
5666
if (year === "2024") {
5767
return ROUTE_2024_TALK_DETAIL;
5868
}
@@ -64,12 +74,18 @@ const getTalkDetailRoute = (year: string): string => {
6474
};
6575

6676
const getSpeakerDetailRoute = (year: string): string => {
67-
if (year === "2023") {
68-
return ROUTE_2023_SPEAKER_DETAIL;
77+
if (year === "2026") {
78+
return ROUTE_2026_SPEAKER_DETAIL;
79+
}
80+
if (year === "2025") {
81+
return ROUTE_2025_SPEAKER_DETAIL;
6982
}
7083
if (year === "2024") {
7184
return ROUTE_2024_SPEAKER_DETAIL;
7285
}
86+
if (year === "2023") {
87+
return ROUTE_2023_SPEAKER_DETAIL;
88+
}
7389

7490
return ROUTE_SPEAKER_DETAIL;
7591
};

0 commit comments

Comments
 (0)