import React, { useState, useEffect, useContext } from 'react'; import {render, act, screen, waitFor, fireEvent} from '@testing-library/react' import { SettingsContext, SettingsContextProvider } from 'context/SettingsContext'; function ViewportView() { const [renderCount, setRenderCount] = useState(0); const settings = useContext(SettingsContext); useEffect(() => { setRenderCount(renderCount + 1); }, [settings.state]); return (
{ renderCount } { settings.state.display } { settings.state.width } { settings.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'); }); });