jss-cache
Version:
JSS plugin that caches the rules and delivers insane performance.
68 lines (57 loc) • 2.04 kB
JavaScript
var _expect = require('expect.js');
var _expect2 = _interopRequireDefault(_expect);
var _jss = require('jss');
var _index = require('./index');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
describe('jss-cache', function () {
var jss = void 0;
beforeEach(function () {
jss = (0, _jss.create)().use((0, _index2['default'])());
});
describe('ensure cache is used', function () {
it('should not call onCreateRule', function () {
var styles = { a: { color: 'red' } };
var onCreateRuleCalled = false;
// After the first call its cached.
jss.createStyleSheet(styles);
jss.use({
onCreateRule: function onCreateRule() {
onCreateRuleCalled = true;
}
});
jss.createStyleSheet(styles);
(0, _expect2['default'])(onCreateRuleCalled).to.be(false);
});
it('should not call processors on a cached rule', function () {
var styles = { a: { color: 'red' } };
var onProcessRuleCalled = false;
// After the first call its cached.
jss.createStyleSheet(styles);
jss.use({
onProcessRule: function onProcessRule() {
onProcessRuleCalled = true;
}
});
jss.createStyleSheet(styles);
(0, _expect2['default'])(onProcessRuleCalled).to.be(false);
});
});
describe('linked rules should not be cached', function () {
it('should call onCreateRule', function () {
var styles = { a: { color: 'red' } };
var options = { link: true };
var onCreateRuleCalled = false;
// After the first call it should not be cached.
jss.createStyleSheet(styles, options);
jss.use({
onCreateRule: function onCreateRule() {
onCreateRuleCalled = true;
}
});
jss.createStyleSheet(styles, options);
(0, _expect2['default'])(onCreateRuleCalled).to.be(true);
});
});
}); /* eslint-disable no-underscore-dangle */
;