diff --git a/.gitignore b/.gitignore
index 78df164..8ec47e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+.cocoindex_code
\ No newline at end of file
diff --git a/src/components/UI/Checkbox/SGLCeckBox.test.tsx b/src/components/UI/Checkbox/SGLCeckBox.test.tsx
new file mode 100644
index 0000000..a897937
--- /dev/null
+++ b/src/components/UI/Checkbox/SGLCeckBox.test.tsx
@@ -0,0 +1,43 @@
+import { render, screen, fireEvent } from '@testing-library/react'
+import { describe, it, expect, vi } from 'vitest'
+import { SGLCheckbox } from './SGLCheckbox'
+
+describe('SGLCheckbox', () => {
+ it('should toggle from checked to unchecked', () => {
+ render()
+
+ const checkbox = screen.getByRole('checkbox')
+
+ fireEvent.click(checkbox)
+
+ expect(checkbox).not.toBeChecked()
+ })
+ it('should toggle from unchecked to checked ', () => {
+ render()
+
+ const checkbox = screen.getByRole('checkbox')
+
+ fireEvent.click(checkbox)
+
+ expect(checkbox).toBeChecked()
+ })
+ it('should be disabled ', () => {
+ render()
+
+ const checkbox = screen.getByRole('checkbox')
+
+ expect(checkbox).toBeDisabled()
+ })
+ it('should change on onChange', () => {
+ const handleOnChange = vi.fn()
+
+ render()
+
+ const checkbox = screen.getByRole('checkbox')
+
+ expect(checkbox).not.toBeChecked()
+ fireEvent.click(checkbox)
+ expect(checkbox).toBeChecked()
+ expect(handleOnChange).toHaveBeenCalledTimes(1)
+ })
+})