Skip to content

Commit a41d772

Browse files
committed
test: add data-active and theme inheritance assertions
1 parent 63bc906 commit a41d772

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

packages/react/__tests__/Footer.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ describe("Footer", () => {
3636
renderFooter({ variant: "tab-bar" });
3737
const homeButton = screen.getByText("Home").closest("button");
3838
expect(homeButton?.className).toContain("text-primary");
39+
expect(homeButton).toHaveAttribute("data-active", "true");
3940
});
4041
});
4142

packages/react/__tests__/Header.test.tsx

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { render, screen, fireEvent } from "@testing-library/react";
22
import { describe, it, expect, vi } from "vitest";
33
import { Header } from "../src/Header";
4+
import { HeaderNav, HeaderNavItem } from "../src/HeaderNav";
45
import { AppShellProvider } from "../src/context";
56

67
function renderHeader(props: Record<string, any> = {}) {
@@ -81,4 +82,34 @@ describe("Header", () => {
8182
expect(header?.className).toContain("sticky");
8283
});
8384
});
85+
86+
describe("theme inheritance", () => {
87+
it("passes primary theme to HeaderNavItem", () => {
88+
renderHeader({
89+
theme: "primary",
90+
nav: (
91+
<HeaderNav>
92+
<HeaderNavItem label="Home" active />
93+
</HeaderNav>
94+
),
95+
});
96+
const navItem = screen.getByRole("button", { name: "Home" });
97+
// Primary theme active item should have bg-white/20
98+
expect(navItem.className).toContain("bg-white/20");
99+
});
100+
101+
it("passes dark theme to HeaderNavItem", () => {
102+
renderHeader({
103+
theme: "dark",
104+
nav: (
105+
<HeaderNav>
106+
<HeaderNavItem label="Home" active />
107+
</HeaderNav>
108+
),
109+
});
110+
const navItem = screen.getByRole("button", { name: "Home" });
111+
// Dark theme active item should have bg-white/10
112+
expect(navItem.className).toContain("bg-white/10");
113+
});
114+
});
84115
});

packages/react/__tests__/ScrollNav.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ describe("ScrollNavItem", () => {
5353
const button = screen.getByRole("button", { name: "Active Tab" });
5454
expect(button.className).toContain("bg-foreground");
5555
expect(button.className).toContain("text-background");
56+
expect(button).toHaveAttribute("data-active", "true");
5657
});
5758

5859
it("applies inactive styles", () => {

0 commit comments

Comments
 (0)