UNPKG

style-manager

Version:

Manage style, add/replace/delete rules, support media.

58 lines (41 loc) 1.63 kB
import assert from 'power-assert'; import should from 'should'; import StyleManager from '../src/StyleManager.js'; describe('StyleManager', () => { let sm, strip; before(function() { sm = new StyleManager('sm'); strip = (str) => str.replace(/[\r\n]/g, ' ').replace(/\s+/g, ' ').trim(); }); it('should create new style rule', () => { let rule = sm.create(CSSRule.STYLE_RULE, {selector: '.a', style: {color: 'red'}}); rule.getCssText().should.eql('.a { color: red; }') }); it('should create new media rule', () => { let rule = sm.create(CSSRule.MEDIA_RULE, { selector: '.a', style: {color: 'green'}, media: {only: true, type: 'screen', features: {minWidth: '300px'}} }); strip(rule.getCssText()).should.eql('@media only screen and (min-width: 300px) { .a { color: green; } }'); }); it('should move second rule to first', () => { let second = sm.get(1), first = sm.get(0); let newSecond = sm.move(second, 0); newSecond.getCssText().should.eql(second.getCssText()); first.getCssText().should.eql(sm.get(1).getCssText()); }); it('should remove first rule', () => { let second = sm.get(1); sm.remove(sm.get(0)); second.getCssText().should.eql(sm.get(0).getCssText()); sm.length.should.eql(1); }); it('should empty sheet', () => { sm.create(CSSRule.STYLE_RULE, {selector: '.a', style: {color: 'red'}}); sm.length.should.eql(2); sm.empty(); sm.length.should.eql(0); }); });