Jsdom Testing Mocks Versions Save

A set of tools for emulating browser behavior in jsdom environment

v1.13.0

2 months ago

v1.12.0

2 months ago
  • Fix a bug when the callback was being called on unobserved nodes (#54)

Thanks @davidr64 for the contribution!

v1.11.0

8 months ago

Test support for @swc/jest

v1.10.0

8 months ago

Removes dependencies on window during import. Thank you @sbaechler!

v1.10.0-beta.0

10 months ago

v1.9.0

1 year ago
  • Improve support for vitest
  • Add configMocks

v1.9.0-beta.0

1 year ago
  • Remove forgotten dependencies on jest
  • Add configMocks

v1.8.0

1 year ago

Added missing support for steps easing in the WAAPI implementation

v1.7.0

1 year ago

Thanks to @adjsky there's less bugs in the Animation API mock 🎉

Fixes:

  • element.animate will now correctly accept the id option
  • when animation is cancelled it will remove itself from the list of animations associated with the element

Potentially it can break your code if you were relying on the current behaviour.

v1.6.0

1 year ago

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