styled-components-test-utils
Version:
Test utils for styled-components compatible with jest, expect, chai and jasmine
61 lines (41 loc) • 1.48 kB
JavaScript
;
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;