HiveBrain v1.2.0
Get Started
← Back to all entries
debugreactCritical

Jest test fails : TypeError: window.matchMedia is not a function

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
matchmediafunctionjestwindowtesttypeerrornotfails

Problem

This is my first front-end testing experience. In this project, I'm using Jest snapshot testing and got an error TypeError: window.matchMedia is not a function inside my component.

I go through Jest documentation, I found the "Manual mocks" section, but I have not any idea about how to do that yet.

Solution

The Jest documentation now has an "official" workaround:
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: jest.fn().mockImplementation(query => ({
matches: false,
media: query,
onchange: null,
addListener: jest.fn(), // Deprecated
removeListener: jest.fn(), // Deprecated
addEventListener: jest.fn(),
removeEventListener: jest.fn(),
dispatchEvent: jest.fn(),
})),
});


Mocking methods which are not implemented in JSDOM

Context

Stack Overflow Q#39830580, score: 323

Revisions (0)

No revisions yet.