From 72c65cb14b71570f283bebcdb5c8fe0add6eb5d0 Mon Sep 17 00:00:00 2001 From: Aleksey Biryukov Date: Mon, 29 Jun 2026 18:22:01 +0500 Subject: [PATCH] YH-2157: add test for hook useModal --- src/shared/libs/fp/useModal/useModal.test.ts | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/shared/libs/fp/useModal/useModal.test.ts diff --git a/src/shared/libs/fp/useModal/useModal.test.ts b/src/shared/libs/fp/useModal/useModal.test.ts new file mode 100644 index 000000000..74115c62d --- /dev/null +++ b/src/shared/libs/fp/useModal/useModal.test.ts @@ -0,0 +1,44 @@ +import { renderHook } from '@testing-library/react'; +import { act } from 'react'; + +import { useModal } from './useModal'; + +describe('useModal', () => { + test('should initialize with isOpen = false', () => { + const { result } = renderHook(() => useModal()); + expect(result.current.isOpen).toBe(false); + }); + + test('should set isOpen to true when onOpen is called', () => { + const { result } = renderHook(() => useModal()); + act(() => { + result.current.onOpen(); + }); + expect(result.current.isOpen).toBe(true); + }); + + test('should set isOpen to false when onClose is called', () => { + const { result } = renderHook(() => useModal()); + act(() => { + result.current.onOpen(); + }); + expect(result.current.isOpen).toBe(true); + + act(() => { + result.current.onClose(); + }); + expect(result.current.isOpen).toBe(false); + }); + + test('onToggle should toggle isOpen', () => { + const { result } = renderHook(() => useModal()); + act(() => { + result.current.onToggle(); + }); + expect(result.current.isOpen).toBe(true); + act(() => { + result.current.onToggle(); + }); + expect(result.current.isOpen).toBe(false); + }); +});