rerenderer
Version:
For React: Easy handling of object editing and state update re-renders
24 lines (23 loc) • 1.01 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import renderer, { act } from 'react-test-renderer';
import { RerenderProvider, useRerender } from '../src/rerender';
describe('RerenderProvider and useRerender', function () {
it('re-renders children when refresh is called', function () {
var renderCount = 0;
function TestComponent() {
renderCount++;
var rerender = useRerender().rerender;
return _jsx("button", { onClick: rerender, children: renderCount });
}
var testRenderer = renderer.create(_jsx(RerenderProvider, { children: _jsx(TestComponent, {}) }));
var button = testRenderer.root.findByType('button');
// Initial render count
expect(button.children).toEqual(['1']);
// Trigger refresh to force re-render
act(function () {
button.props.onClick();
});
// After refresh, renderCount should be incremented
expect(button.children).toEqual(['2']);
});
});