import React from "react";
import { render, screen } from "@testing-library/react";
import DataSet from "./DataSet";
describe("DataSet", () => {
it("renders title and value", () => {
render();
expect(screen.getByText("Author")).toBeInTheDocument();
expect(screen.getByText("Alice")).toBeInTheDocument();
});
it("uses vertical orientation by default (no horizontal class, no colon)", () => {
const { container } = render();
expect(container.querySelector(".data-set__horizontal")).toBeNull();
expect(container.querySelector("dt")?.textContent).toBe("Author");
});
it("applies horizontal orientation class and appends a colon to the title", () => {
const { container } = render(
);
expect(
container.querySelector(".data-set__horizontal")
).toBeInTheDocument();
expect(container.querySelector("dt")?.textContent).toBe("Author:");
});
it("applies the text-only modifier when textOnly is set", () => {
const { container } = render(
);
expect(container.querySelector(".data-set--text-only")).toBeInTheDocument();
});
it("applies the multiline modifier when multiline is set", () => {
const { container } = render(
);
expect(container.querySelector(".data-set--multiline")).toBeInTheDocument();
});
it("does not apply the multiline modifier by default", () => {
const { container } = render();
expect(container.querySelector(".data-set--multiline")).toBeNull();
});
it("merges a custom className alongside the base class", () => {
const { container } = render(
);
const root = container.firstChild as HTMLElement;
expect(root).toHaveClass("data-set");
expect(root).toHaveClass("custom-class");
});
});