// frontend/tests/journey/JourneyBottom.test.tsx — JF-4: 게이지 2개, 테이블 5행, 별 on 2개 import { render } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { JourneyTable } from "@/components/journey/JourneyTable"; import { Gauge } from "@/components/journey/Gauge"; import { journey } from "./fixtures"; describe("JourneyTable + Gauge (JF-4)", () => { it("작업 테이블은 5행, 별(star) on=2개", () => { const { container } = render( , ); const rows = container.querySelectorAll("tbody tr"); expect(rows).toHaveLength(5); const starsOn = container.querySelectorAll(".star.on"); expect(starsOn).toHaveLength(2); }); it("상태 chip 키(prog/review/done/sched)가 적용된다", () => { const { container } = render( , ); expect(container.querySelector(".chip.prog")).toBeTruthy(); expect(container.querySelector(".chip.review")).toBeTruthy(); expect(container.querySelector(".chip.done")).toBeTruthy(); expect(container.querySelector(".chip.sched")).toBeTruthy(); }); it("반원 게이지 2개 — 딥 워크 5.2시간, 활동 링 72%", () => { const { container, getByText } = render(
{journey.gauges.map((g, i) => ( ))}
, ); const gauges = container.querySelectorAll(".gauge"); expect(gauges).toHaveLength(2); expect(getByText("딥 워크")).toBeInTheDocument(); expect(getByText("5.2")).toBeInTheDocument(); expect(getByText("활동 링")).toBeInTheDocument(); expect(getByText("72")).toBeInTheDocument(); }); });