Skip to content

v1.6.0

Choose a tag to compare

@trurl-master trurl-master released this 03 Sep 14:59
· 60 commits to master since this release
55f0d4e

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:

  1. It's recommended to use a dedicated size mocking method (mockElementSize) instead of mockElementBoundingClientRect

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...
})
  1. Depending on your case you can omit passing the element to the .resize function, it will be triggered automatically (if the size is mocked)

PS. Check the new docs for more details