test: Fix MainLayout tests by providing ThemeProvider context
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { render, screen } from "@testing-library/react"
|
import { render, screen } from "@testing-library/react"
|
||||||
import { describe, it, expect, vi } from "vitest"
|
import { describe, it, expect, vi } from "vitest"
|
||||||
import { MainLayout } from "./MainLayout"
|
import { MainLayout } from "./MainLayout"
|
||||||
|
import { ThemeProvider } from "../theme-provider"
|
||||||
|
|
||||||
describe("MainLayout", () => {
|
describe("MainLayout", () => {
|
||||||
const mockProps = {
|
const mockProps = {
|
||||||
@@ -14,22 +15,32 @@ describe("MainLayout", () => {
|
|||||||
|
|
||||||
it("renders children correctly", () => {
|
it("renders children correctly", () => {
|
||||||
render(
|
render(
|
||||||
<MainLayout {...mockProps}>
|
<ThemeProvider>
|
||||||
<div data-testid="test-child">Test Content</div>
|
<MainLayout {...mockProps}>
|
||||||
</MainLayout>
|
<div data-testid="test-child">Test Content</div>
|
||||||
|
</MainLayout>
|
||||||
|
</ThemeProvider>
|
||||||
)
|
)
|
||||||
expect(screen.getByTestId("test-child")).toBeInTheDocument()
|
expect(screen.getByTestId("test-child")).toBeInTheDocument()
|
||||||
expect(screen.getByText("Test Content")).toBeInTheDocument()
|
expect(screen.getByText("Test Content")).toBeInTheDocument()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("renders the sidebar", () => {
|
it("renders the sidebar", () => {
|
||||||
render(<MainLayout {...mockProps}>Content</MainLayout>)
|
render(
|
||||||
|
<ThemeProvider>
|
||||||
|
<MainLayout {...mockProps}>Content</MainLayout>
|
||||||
|
</ThemeProvider>
|
||||||
|
)
|
||||||
// Sidebar should have some identifying text or role
|
// Sidebar should have some identifying text or role
|
||||||
expect(screen.getByRole("complementary")).toBeInTheDocument()
|
expect(screen.getByRole("complementary")).toBeInTheDocument()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("renders the header/navigation", () => {
|
it("renders the header/navigation", () => {
|
||||||
render(<MainLayout {...mockProps}>Content</MainLayout>)
|
render(
|
||||||
|
<ThemeProvider>
|
||||||
|
<MainLayout {...mockProps}>Content</MainLayout>
|
||||||
|
</ThemeProvider>
|
||||||
|
)
|
||||||
expect(screen.getByRole("navigation")).toBeInTheDocument()
|
expect(screen.getByRole("navigation")).toBeInTheDocument()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user