@rocketsofawesome/mirage
Version:
[Live Demo of the Pattern Library](https://rocketsofawesome.github.io/mirage/)
58 lines (47 loc) • 1.38 kB
JavaScript
import React from 'react'
import { ThemeProvider } from 'styled-components'
import * as enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
import 'jest-enzyme'
import { theme } from './core/theme'
const localStorageMock = {
getItem: jest.fn(),
setItem: jest.fn(),
clear: jest.fn(),
}
const shallowWithTheme = (component) => {
const context = enzyme.shallow(<ThemeProvider theme={theme} />)
.instance()
.getChildContext()
return enzyme.shallow(component, { context })
}
const mountWithTheme = (component) => {
const context = enzyme.shallow(<ThemeProvider theme={theme} />)
.instance()
.getChildContext()
return enzyme.mount(component, {
context,
childContextTypes: ThemeProvider.childContextTypes,
})
}
const renderWithTheme = (component) => {
const context = enzyme.shallow(<ThemeProvider theme={theme} />)
.instance()
.getChildContext()
return enzyme.render(component, {
context,
childContextTypes: ThemeProvider.childContextTypes,
})
}
window.matchMedia = window.matchMedia || function() {
return {
matches : false,
addListener : function() {},
removeListener: function() {}
};
};
global.localStorage = localStorageMock;
global.shallowWithTheme = shallowWithTheme;
global.mountWithTheme = mountWithTheme
global.renderWithTheme = renderWithTheme
enzyme.configure({ adapter: new Adapter() });