UNPKG

styled-components

Version:

**This is a work in progress** based off of [this demo](https://github.com/geelen/css-components-demo).

73 lines (62 loc) 2.78 kB
'use strict'; var _expect = require('expect'); var _expect2 = _interopRequireDefault(_expect); var _toggle = require('../toggle'); var _toggle2 = _interopRequireDefault(_toggle); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('toggle', function () { it('should handle an empty case', function () { var namespace = (0, _toggle2.default)('namespace', {}); (0, _expect2.default)(namespace()).toEqual([]); (0, _expect2.default)(namespace('')).toEqual([]); (0, _expect2.default)(namespace(' ')).toEqual([]); }); it('should always inject default even if no input passed', function () { var namespace = (0, _toggle2.default)('namespace', { default: 'default: rule' }); (0, _expect2.default)(namespace()).toEqual(['default: rule;']); (0, _expect2.default)(namespace('')).toEqual(['default: rule;']); (0, _expect2.default)(namespace(' ')).toEqual(['default: rule;']); }); it('should handle any combination of inputs', function () { var namespace = (0, _toggle2.default)('namespace', { default: 'default: rule', a: 'option: a', b: 'option: b' }); (0, _expect2.default)(namespace()).toEqual(['default: rule;']); (0, _expect2.default)(namespace('a')).toEqual(['default: rule;', 'option: a;']); (0, _expect2.default)(namespace('a b')).toEqual(['default: rule;', 'option: a;', 'option: b;']); (0, _expect2.default)(namespace('b a')).toEqual(['default: rule;', 'option: b;', 'option: a;']); (0, _expect2.default)(namespace('b')).toEqual(['default: rule;', 'option: b;']); }); it('should be ok without a default', function () { var namespace = (0, _toggle2.default)('namespace', { a: 'option: a', b: 'option: b' }); (0, _expect2.default)(namespace()).toEqual([]); (0, _expect2.default)(namespace('a')).toEqual(['option: a;']); (0, _expect2.default)(namespace('a b')).toEqual(['option: a;', 'option: b;']); (0, _expect2.default)(namespace('b a')).toEqual(['option: b;', 'option: a;']); (0, _expect2.default)(namespace('b')).toEqual(['option: b;']); }); it('should throw if passed something not present', function () { var namespace = (0, _toggle2.default)('namespace', { a: 'option: a' }); (0, _expect2.default)(function () { return namespace('b'); }).toThrow("namespace: Unknown value 'b'. Valid values are:\na"); }); it('should not mention the default as a valid', function () { var namespace = (0, _toggle2.default)('namespace', { default: 'default: rule', a: 'option: a' }); (0, _expect2.default)(function () { return namespace('b'); }).toThrow("namespace: Unknown value 'b'. Valid values are:\na"); }); });