Skip to content

Commit 309a86e

Browse files
Add ts-node as a dev dependency and improve Header component tests
1 parent 166f769 commit 309a86e

3 files changed

Lines changed: 178 additions & 47 deletions

File tree

package-lock.json

Lines changed: 145 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"lint-staged": "^15.2.7",
2424
"prettier": "^3.2.5",
2525
"storybook-addon-pseudo-states": "^9.1.10",
26+
"ts-node": "^10.9.2",
2627
"turbo": "^2.0.4",
2728
"typescript": "^5.6.3"
2829
},

packages/lib/src/header/Header.test.tsx

Lines changed: 32 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -31,57 +31,42 @@ describe("Header component tests", () => {
3131
expect(getByAltText("DXC Logo")).toBeTruthy();
3232
});
3333

34-
describe("HamburguerButton component", () => {
35-
test("hamburger button triggers onClick when clicked", () => {
36-
mockMatchMedia.mockImplementation(() => ({
37-
matches: true,
38-
addEventListener: jest.fn(),
39-
removeEventListener: jest.fn(),
40-
}));
34+
test("hamburger button triggers onClick when clicked", () => {
35+
mockMatchMedia.mockImplementation(() => ({
36+
matches: true,
37+
addEventListener: jest.fn(),
38+
removeEventListener: jest.fn(),
39+
}));
4140

42-
const navItems: Item[] = [{ label: "Home", onSelect: jest.fn() }];
43-
render(<DxcHeader logo={defaultHeaderBranding} navItems={navItems} />);
41+
const navItems: Item[] = [{ label: "Home", onSelect: jest.fn() }];
42+
render(<DxcHeader logo={defaultHeaderBranding} navItems={navItems} />);
4443

45-
const menuButton = screen.getByRole("button", { name: /toggle menu/i });
46-
fireEvent.click(menuButton);
47-
expect(screen.getByText("Home")).toBeInTheDocument();
48-
});
44+
const menuButton = screen.getByRole("button", { name: /toggle menu/i });
45+
fireEvent.click(menuButton);
46+
expect(screen.getByText("Home")).toBeInTheDocument();
4947
});
5048

51-
describe("sanitizeNavItems function coverage", () => {
52-
test("handles nested group items beyond LEVEL_LIMIT (should be ignored)", () => {
53-
const deepNestedItems: (Item | GroupItem)[] = [
54-
{
55-
label: "Services",
56-
items: [
57-
{ label: "Web Design", onSelect: jest.fn() },
58-
{
59-
label: "Development", // This nested group should be ignored due to LEVEL_LIMIT = 1
60-
items: [
61-
{ label: "Frontend", onSelect: jest.fn() },
62-
{ label: "Backend", onSelect: jest.fn() },
63-
],
64-
},
65-
],
66-
},
67-
];
49+
test("handles nested group items beyond LEVEL_LIMIT (should be ignored)", () => {
50+
const deepNestedItems: (Item | GroupItem)[] = [
51+
{
52+
label: "Services",
53+
items: [
54+
{ label: "Web Design", onSelect: jest.fn() },
55+
{
56+
label: "Development", // This nested group should be ignored due to LEVEL_LIMIT = 1
57+
items: [
58+
{ label: "Frontend", onSelect: jest.fn() },
59+
{ label: "Backend", onSelect: jest.fn() },
60+
],
61+
},
62+
],
63+
},
64+
];
6865

69-
render(<DxcHeader logo={defaultHeaderBranding} navItems={deepNestedItems} />);
70-
expect(screen.getByAltText("DXC Logo")).toBeInTheDocument();
71-
});
72-
73-
test("handles mixed simple items and group items", () => {
74-
const mixedItems: (Item | GroupItem)[] = [
75-
{ label: "Home", onSelect: jest.fn() },
76-
{
77-
label: "Services",
78-
items: [{ label: "Web Design", onSelect: jest.fn() }],
79-
},
80-
{ label: "Contact", onSelect: jest.fn() },
81-
];
82-
83-
render(<DxcHeader logo={defaultHeaderBranding} navItems={mixedItems} />);
84-
expect(screen.getByAltText("DXC Logo")).toBeInTheDocument();
85-
});
66+
render(<DxcHeader logo={defaultHeaderBranding} navItems={deepNestedItems} />);
67+
expect(screen.getByText("Services")).toBeInTheDocument();
68+
expect(screen.queryByText("Development")).not.toBeInTheDocument();
69+
expect(screen.queryByText("Frontend")).not.toBeInTheDocument();
70+
expect(screen.queryByText("Backend")).not.toBeInTheDocument();
8671
});
8772
});

0 commit comments

Comments
 (0)