UNPKG

styled-components-test-utils

Version:

Test utils for styled-components compatible with jest, expect, chai and jasmine

61 lines (41 loc) 1.48 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _styledComponents = require('styled-components'); var _css = require('css'); var _css2 = _interopRequireDefault(_css); var _styleSheet = require('./styleSheet'); var _styleSheet2 = _interopRequireDefault(_styleSheet); var _isOverV = require('./isOverV2'); var _isOverV2 = _interopRequireDefault(_isOverV); var _isServer = require('./isServer'); var _isServer2 = _interopRequireDefault(_isServer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var STYLE_TAGS_REGEXP = /<style[^>]*>([^<]*)</g; var getStyle = function getStyle(html) { var style = ''; var matches = void 0; // eslint-disable-next-line while ((matches = STYLE_TAGS_REGEXP.exec(html)) !== null) { style += matches[1].trim(); } return style; }; var getCSS = function getCSS() { var parse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var style = void 0; if ((0, _isOverV2['default'])()) { if ((0, _isServer2['default'])()) { style = getStyle(new _styledComponents.ServerStyleSheet().getStyleTags()); } else { style = getStyle(_styleSheet2['default'].instance.toHTML()); } } else { style = _styleSheet2['default'].rules().map(function (rule) { return rule.cssText; }).join('\n'); } return parse ? _css2['default'].parse(style) : style; }; exports['default'] = getCSS;