v1.6.0
An attempt to get a little bit closer to the ResizeObserver spec.
There are no breaking changes (as far as I see), the old code should still work. However there's a small change in philosophy, so here's a recommended migration guide:
- It's recommended to use a dedicated size mocking method (
mockElementSize) instead ofmockElementBoundingClientRect
Before:
import { mockResizeObserver, mockElementBoundingClientRect } from 'jsdom-testing-mocks';
const resizeObserver = mockResizeObserver();
it('works', () => {
render(<TestedComponent />);
const element = screen.getBySomething(...)
// tests...
mockElementBoundingClientRect(element, {
width: 300, height: 200,
});
act(() => {
resizeObserver.resize(element);
});
// tests...
})After:
import { mockResizeObserver } from 'jsdom-testing-mocks';
const resizeObserver = mockResizeObserver();
it('works', () => {
render(<TestedComponent />);
const element = screen.getBySomething(...)
// tests...
resizeObserver.mockElementSize(element, {
contentBoxSize: { inlineSize: 300, blockSize: 200 },
});
act(() => {
resizeObserver.resize(element);
});
// tests...
})- Depending on your case you can omit passing the element to the
.resizefunction, it will be triggered automatically (if the size is mocked)
PS. Check the new docs for more details