UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

58 lines 2.32 kB
import { useContext } from '.'; import { describe, expect, test } from '@jest/globals'; import { renderHook } from '@testing-library/react'; import { useContext as useReactContext } from 'react'; import { ArgumentTypes } from '../../enums/ArgumentTypes'; const testUseCase = () => { return {}; }; describe('useContext', () => { test('should return the default context with value `null` if map has not saved a usecase with default args', () => { const _renderHook = renderHook(() => { const context = useContext(testUseCase); const value = useReactContext(context); return value; }), result = _renderHook.result; const current = result.current; expect(current).toBe(null); }); test('should return the default context with value `null` if map has not saved a usecase with `ArgumentTypes.None` & `UseCaseModes.Normal`', () => { const _renderHook2 = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }), result = _renderHook2.result; const current = result.current; expect(current).toBe(null); }); test('should return the default context with value `null` as unmount this hook', () => { const _renderHook3 = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }), result1 = _renderHook3.result, unmount1 = _renderHook3.unmount; const current1 = result1.current; expect(typeof current1).toBe('object'); unmount1(); const _renderHook4 = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }), result2 = _renderHook4.result; const current2 = result2.current; expect(current2).toBe(null); }); test('should return a new context if map has not saved a usecase with `ArgumentTypes.Entity` & `UseCaseModes.Normal`', () => { const _renderHook5 = renderHook(() => { return useContext(testUseCase, ArgumentTypes.Entity); }), result = _renderHook5.result; const current = result.current; expect(typeof current).toBe('object'); }); });