UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

53 lines (52 loc) 2.27 kB
import { describe, expect, test } from '@jest/globals'; import { renderHook } from '@testing-library/react'; import { useContext } from '.'; import { ArgumentTypes } from '../../enums/ArgumentTypes'; import { useContext as useReactContext } from 'react'; 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 { result } = renderHook(() => { const context = useContext(testUseCase); const value = useReactContext(context); return value; }); const { current } = result; 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 { result } = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }); const { current } = result; expect(current).toBe(null); }); test('should return the default context with value `null` as unmount this hook', () => { const { result: result1, unmount: unmount1 } = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }); const { current: current1 } = result1; expect(typeof current1).toBe('object'); unmount1(); const { result: result2 } = renderHook(() => { const context = useContext(testUseCase, ArgumentTypes.None); const value = useReactContext(context); return value; }); const { current: current2 } = result2; expect(current2).toBe(null); }); test('should return a new context if map has not saved a usecase with `ArgumentTypes.Entity` & `UseCaseModes.Normal`', () => { const { result } = renderHook(() => { return useContext(testUseCase, ArgumentTypes.Entity); }); const { current } = result; expect(typeof current).toBe('object'); }); });