/* eslint-disable react/no-children-prop */ import { render } from '@testing-library/react'; import { MatchBreakpoint } from '../MatchBreakpoint'; import { BreakpointsContext } from '../BreakpointsContext'; import type { BreakpointsProps, Breakpoints } from '../breakpoints'; describe('MatchBreakpoint', () => { type MyBreakpoints = 'sm' | 'md' | 'lg'; const breakpoints: Breakpoints = { sm: 100, md: 200, lg: 300 }; const Sm = () =>
sm
; const Md = () =>
md
; const Lg = () =>
lg
; describe('property "is"', () => { const breakpointsProps: BreakpointsProps = { breakpoints, currentBreakpoint: 'md', }; it('renders [Md]', () => { const result = render( } /> } /> } /> , ); expect(result.queryByText('sm')).toBeFalsy(); expect(result.queryByText('md')).toBeTruthy(); expect(result.queryByText('lg')).toBeFalsy(); }); it('renders [1]', () => { const result = render( 1} /> 2} /> , ); expect(result.queryByText('1')).toBeTruthy(); expect(result.queryByText('2')).toBeFalsy(); }); }); describe('property "not"', () => { const breakpointsProps: BreakpointsProps = { breakpoints, currentBreakpoint: 'md', }; it('renders [Sm,Lg]', () => { const result = render( } /> } /> } /> , ); expect(result.queryByText('sm')).toBeTruthy(); expect(result.queryByText('md')).toBeFalsy(); expect(result.queryByText('lg')).toBeTruthy(); }); it('renders [1] for ["sm", "lg]', () => { const result = render( 1} /> 2} /> , ); expect(result.queryByText('1')).toBeTruthy(); expect(result.queryByText('2')).toBeFalsy(); }); }); describe('property "min"', () => { const breakpointsProps: BreakpointsProps = { breakpoints, currentBreakpoint: 'md', }; it('renders [Md,Lg]', () => { const result = render( } /> } /> } /> , ); expect(result.queryByText('sm')).toBeTruthy(); expect(result.queryByText('md')).toBeTruthy(); expect(result.queryByText('lg')).toBeFalsy(); }); }); describe('property "max"', () => { const breakpointsProps: BreakpointsProps = { breakpoints, currentBreakpoint: 'md', }; it('renders [Sm,Md]', () => { const result = render( } /> } /> } /> , ); expect(result.queryByText('sm')).toBeFalsy(); expect(result.queryByText('md')).toBeTruthy(); expect(result.queryByText('lg')).toBeTruthy(); }); }); });