// frontend/tests/journey/JourneyClient.test.tsx — JF-1: 4단계 라벨 + 패널 라벨 import { render } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import { journey } from "./fixtures"; vi.mock("@/lib/hooks/useJourney", () => ({ useJourney: () => ({ data: journey, error: null, isLoading: false, retry: vi.fn() }), })); // next/navigation 의존 없음 (JourneyClient 는 셸 밖 본문만 렌더) import { JourneyClient } from "@/components/journey/JourneyClient"; describe("JourneyClient (JF-1)", () => { it("4단계 라벨 + 단계 시간을 렌더한다", () => { const { container } = render(); const text = container.textContent ?? ""; ["아침 준비", "오전 집중", "오후 협업", "마무리 & 내일"].forEach((t) => expect(text).toContain(t), ); // 단계 시간(라벨 영역) expect(text).toContain("06:40 – 09:00"); expect(text).toContain("17:00 – 23:00"); // 헤더 제목 expect(text).toContain("오늘의 여정"); }); it("패널 라벨 '4단계 · 12개 항목 · 5명 협업'", () => { const { container } = render(); const label = container.querySelector(".jx-label"); expect(label).toBeTruthy(); const t = label!.textContent ?? ""; expect(t).toContain("오늘의 흐름"); expect(t).toContain("4단계"); expect(t).toContain("12개 항목"); expect(t).toContain("5명 협업"); }); });