UNPKG

styled-components

Version:

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅

61 lines (44 loc) • 2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.expectCSSMatches = exports.resetStyled = undefined; var _expect = require('expect'); var _expect2 = _interopRequireDefault(_expect); var _styled2 = require('../constructors/styled'); var _styled3 = _interopRequireDefault(_styled2); var _StyleSheet = require('../models/StyleSheet'); var _StyleSheet2 = _interopRequireDefault(_StyleSheet); var _StyledComponent = require('../models/StyledComponent'); var _StyledComponent2 = _interopRequireDefault(_StyledComponent); var _ComponentStyle2 = require('../models/ComponentStyle'); var _ComponentStyle3 = _interopRequireDefault(_ComponentStyle2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* Ignore hashing, just return class names sequentially as .a .b .c etc */ var index = 0; /** * This sets up our end-to-end test suite, which essentially makes sure * our public API works the way we promise/want */ var classNames = function classNames() { return String.fromCodePoint(97 + index++); }; var resetStyled = exports.resetStyled = function resetStyled() { if (_StyleSheet2.default.sheet) _StyleSheet2.default.flush(); index = 0; return (0, _styled3.default)((0, _StyledComponent2.default)((0, _ComponentStyle3.default)(classNames))); }; var stripWhitespace = function stripWhitespace(str) { return str.trim().replace(/\s+/g, ' '); }; var expectCSSMatches = exports.expectCSSMatches = function expectCSSMatches(expectation) { var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { ignoreWhitespace: true }; var css = _StyleSheet2.default.rules().map(function (rule) { return rule.cssText; }).join('\n'); if (opts.ignoreWhitespace) { (0, _expect2.default)(stripWhitespace(css)).toEqual(stripWhitespace(expectation)); } else { (0, _expect2.default)(css).toEqual(expectation); } return css; };