import React, { useState, useEffect, useContext } from 'react'; import {render, act, screen, waitFor, fireEvent} from '@testing-library/react' import { ViewportContext, ViewportContextProvider } from 'context/ViewportContext'; function ViewportView() { const [renderCount, setRenderCount] = useState(0); const viewport = useContext(ViewportContext); useEffect(() => { setRenderCount(renderCount + 1); }, [viewport.state]); return (
{ renderCount } { viewport.state.display } { viewport.state.width } { viewport.state.height }
); } function ViewportTestApp() { return ( ); } test('display size', async () => { render(); await waitFor(async () => { expect(screen.getByTestId('display').textContent).toBe('large'); expect(screen.getByTestId('width').textContent).toBe('1024'); expect(screen.getByTestId('height').textContent).toBe('768'); }); });