// 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(<JourneyClient />);
    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(<JourneyClient />);
    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명 협업");
  });
});
