UNPKG

@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
"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); }); }); });