diff --git a/src/sections/dashboard/components/sidebar/sidebar.test.tsx b/src/sections/dashboard/components/sidebar/sidebar.test.tsx
new file mode 100644
index 0000000..338ae9f
--- /dev/null
+++ b/src/sections/dashboard/components/sidebar/sidebar.test.tsx
@@ -0,0 +1,36 @@
+import { render, fireEvent, screen } from '@testing-library/react';
+import Sidebar from '@/sections/dashboard/components/sidebar/sidebar';
+import React from 'react';
+
+describe('Sidebar', () => {
+ afterEach(() => {
+ jest.restoreAllMocks();
+ });
+
+ it('should render Sidebar without throwing an error', () => {
+ const sidebar = render();
+ expect(sidebar).toBeTruthy();
+ });
+
+ it('given sidebar is closed when the toggle button is clicked then should toggle to open ', () => {
+ const mockHandleToggle = jest.fn();
+ jest.spyOn(React, 'useState').mockReturnValue([false, mockHandleToggle]);
+
+ render();
+
+ const button = screen.getByRole('button');
+ fireEvent.click(button);
+
+ expect(mockHandleToggle).toHaveBeenCalledWith(true);
+ });
+
+ it('should apply transition to nav when the toggle button is clicked', () => {
+ render();
+ const button = screen.getByRole('button');
+
+ fireEvent.click(button);
+
+ const nav = screen.getByTestId('sidebar-nav');
+ expect(nav.className).toContain('duration-500');
+ });
+});
diff --git a/src/sections/dashboard/components/sidebar/sidebar.tsx b/src/sections/dashboard/components/sidebar/sidebar.tsx
index 1befe36..19857af 100644
--- a/src/sections/dashboard/components/sidebar/sidebar.tsx
+++ b/src/sections/dashboard/components/sidebar/sidebar.tsx
@@ -1,6 +1,6 @@
'use client';
-import React, { useState } from 'react';
+import React from 'react';
import { cn } from '@/lib/utils';
import { Separator } from '@/components/ui/separator';
@@ -33,7 +33,7 @@ interface SidebarProps {
export default function Sidebar({ className }: Readonly) {
const { isOpen, toggle } = useSidebar();
- const [switched, setSwitched] = useState(false);
+ const [switched, setSwitched] = React.useState(false);
const handleToggle = () => {
setSwitched(true);
@@ -48,6 +48,7 @@ export default function Sidebar({ className }: Readonly) {
isOpen ? 'w-72' : 'w-[78px]',
className
)}
+ data-testid='sidebar-nav'
>