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'); }); });