diff --git a/__tests__/components/tooltip.spec.tsx b/__tests__/components/tooltip.spec.tsx
new file mode 100644
index 0000000..e74c9db
--- /dev/null
+++ b/__tests__/components/tooltip.spec.tsx
@@ -0,0 +1,65 @@
+import { fireEvent, render, screen, waitFor } from "@testing-library/react"
+
+import { Tooltip } from "@/components/Tooltip/Tooltip"
+
+describe("Tooltip", () => {
+ it("should render tooltip content when open is true", () => {
+ render(
+
+ Hover me
+
+ )
+
+ expect(screen.getByText("Hover me")).toBeInTheDocument()
+
+ const tooltipContent = document.querySelector('[data-radix-popper-content-wrapper]')
+ expect(tooltipContent).toBeInTheDocument()
+ expect(tooltipContent).toHaveTextContent("Click me")
+ })
+
+ it("should not render tooltip content when open is false or undefined", () => {
+ render(
+
+ Hover me
+
+ )
+
+ expect(screen.getByText("Hover me")).toBeInTheDocument()
+ const tooltipContent = document.querySelector('[data-radix-popper-content-wrapper]')
+ expect(tooltipContent).not.toBeInTheDocument()
+ })
+
+ it("calls onOpenChange when tooltip open state changes", async () => {
+ const handleOpenChange = jest.fn()
+
+ render(
+
+
+
+ )
+
+ expect(screen.queryByText("Controlled")).not.toBeInTheDocument()
+
+ fireEvent.mouseOver(screen.getByText("Hover me"))
+
+ expect(screen.queryByText("Controlled")).not.toBeInTheDocument()
+
+ handleOpenChange(true)
+
+ expect(handleOpenChange).toHaveBeenCalledWith(true)
+ })
+
+ it("renders arrow when withArrow is true", () => {
+ const { container } = render(
+
+
+
+ )
+
+ console.log(container.innerHTML)
+
+ const arrow = document.querySelector('svg')
+ expect(arrow).toBeInTheDocument()
+ })
+
+})