@bootstrap-styled/provider
Version:
BootstrapProvider and UtilityProvider components help you manage reset, global styles and original bootstrap class utilities
107 lines (95 loc) • 3.54 kB
JavaScript
"use strict";
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _theme = _interopRequireDefault(require("bootstrap-styled/lib/theme"));
var _index = _interopRequireDefault(require("../index"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var children = /*#__PURE__*/_react.default.createElement("h1", null, "Test");
var renderComponent = function renderComponent() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _enzyme.mount)(
/*#__PURE__*/
// eslint-disable-line function-paren-newline
_react.default.createElement(_index.default, {
theme: props.theme,
injectGlobal: false,
reset: false
}, props.children));
}; // eslint-disable-line function-paren-newline
describe('<BootstrapProvider />', function () {
describe('<ThemeProvider />', function () {
it('should render a <ThemeProvider />', function () {
var renderedComponent = renderComponent({
theme: _theme.default,
children: children
});
expect(renderedComponent.find('ThemeProvider').length).toBe(1);
});
it('should pass a theme with red to <ThemeProvider />', function () {
var renderedComponent = renderComponent({
theme: _theme.default,
children: children
});
expect(renderedComponent.props().theme['$enable-transitions']).toEqual(true);
});
it('should not apply windows phone 8 fix', function () {
var renderedComponent = renderComponent({
theme: _theme.default,
children: children
});
expect(renderedComponent.state('isWindowPhone8Fixed')).toBe(null);
});
it('should apply windows phone 8 fix', function () {
/* eslint-disable no-restricted-properties, no-underscore-dangle */
navigator.__defineGetter__('userAgent', function () {
return 'IEMobile/10.0';
}); // customized user agent
/* eslint-enable no-restricted-properties, no-underscore-dangle */
var renderedComponent = renderComponent({
theme: _theme.default,
children: children
});
expect(renderedComponent.state('isWindowPhone8Fixed')).toBe(true);
});
it('should contain the default color of $brand-primary', function () {
var renderedComponent = renderComponent({
children: children
});
expect(renderedComponent.find('ThemeProvider').props().theme['$brand-primary']).toBe(_theme.default['$brand-primary']);
});
it('should contain the overriden color of $brand-primary', function () {
var renderedComponent = renderComponent({
children: children,
theme: {
'$brand-primary': 'red'
}
});
expect(renderedComponent.find('ThemeProvider').props().theme['$brand-primary']).toBe('red');
});
});
describe('<BootstrapProvider /> utils', function () {
it('should apply all utilities', function () {
var renderedComponent = renderComponent({
theme: _theme.default,
children: children,
utils: {
screen: true,
print: true,
align: true,
background: true,
a: true,
border: true,
clearfix: true,
display: true,
flex: true,
float: true,
screenreaders: true,
spacing: true,
text: true,
visibility: true
}
});
expect(renderedComponent.length).toBe(1);
});
});
});