Object.defineProperty(window, 'CSS', {value: null}); Object.defineProperty(document, 'doctype', { value: '' }); Object.defineProperty(window, 'getComputedStyle', { value: () => { return { display: 'none', appearance: ['-webkit-appearance'] }; } }); /** * ISSUE: https://github.com/angular/material2/issues/7101 * Workaround for JSDOM missing transform property */ Object.defineProperty(document.body.style, 'transform', { value: () => { return { enumerable: true, configurable: true, }; }, }); Object.defineProperty(window, 'matchMedia', { value: (query) => { return { matches: false, media: query, onchange: null, // addListener: jest.fn(), // deprecated // removeListener: jest.fn(), // deprecated // addEventListener: jest.fn(), // removeEventListener: jest.fn(), // dispatchEvent: jest.fn() }; }, }); Object.defineProperty(window, 'getComputedStyle', { value: (query) => { return { getPropertyValue: ()=>'', }; }, });