mirror of
https://github.com/gethomepage/homepage.git
synced 2026-04-04 01:01:22 -07:00
34 lines
913 B
JavaScript
34 lines
913 B
JavaScript
// @vitest-environment jsdom
|
|
|
|
import { fireEvent, render, screen } from "@testing-library/react";
|
|
import { useContext } from "react";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
import { TabContext, TabProvider } from "./tab";
|
|
|
|
function Reader() {
|
|
const { activeTab, setActiveTab } = useContext(TabContext);
|
|
return (
|
|
<div>
|
|
<div data-testid="value">{String(activeTab)}</div>
|
|
<button type="button" onClick={() => setActiveTab("next")}>
|
|
next
|
|
</button>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
describe("utils/contexts/tab", () => {
|
|
it("provides initial tab and allows updates", () => {
|
|
render(
|
|
<TabProvider initialTab="first">
|
|
<Reader />
|
|
</TabProvider>,
|
|
);
|
|
|
|
expect(screen.getByTestId("value")).toHaveTextContent("first");
|
|
fireEvent.click(screen.getByRole("button", { name: "next" }));
|
|
expect(screen.getByTestId("value")).toHaveTextContent("next");
|
|
});
|
|
});
|