UNPKG

@snippetify/book-reader

Version:
99 lines (86 loc) 3.01 kB
require('./utils/mock').initJsDOM() const config = require('../src/config') const { assert, expect } = require('chai') const StyleBuilder = require('../src/StyleBuilder') describe('StyleBuilder', () => { let styleBuilder beforeEach(() => { styleBuilder = StyleBuilder.getInstance() styleBuilder .setConfig(config.style) .setRootElement($(document).find('body').get(0)) }) describe('#getInstance', () => { it('doit retourner une instance de StyleBuilder', () => { assert.isTrue(StyleBuilder.getInstance() instanceof StyleBuilder) }) }) describe('#find', () => { it('doit retourner un seul element', () => { const value = { color: 'red' } styleBuilder.add('reading', value) expect(value).to.eql(styleBuilder.find('reading')) }) }) describe('#setMany', () => { it('doit inserer plusieurs elements', () => { styleBuilder.setMany(config.style.styles) expect(config.style.styles).to.eql(styleBuilder.styles) }) }) describe('#add', () => { it('doit inserer un seul element', () => { const name = 'note' const value = { color: 'red' } styleBuilder.add(name, value) expect(value).to.eql(styleBuilder.styles[name]) }) }) describe('#remove', () => { it('doit effacer un seul element', () => { const name = 'note' const value = { color: 'red' } styleBuilder.add(name, value) expect(value).to.eql(styleBuilder.styles[name]) styleBuilder.remove(name) assert.equal(undefined, styleBuilder.styles[name]) }) }) describe('#removeMany', () => { it('doit effacer plusieurs elements', () => { styleBuilder.setMany(config.style.styles) expect(config.style.styles).to.eql(styleBuilder.styles) const names = [] $.each(styleBuilder.styles, key => names.push(key)) styleBuilder.removeMany(names) assert.equal(0, Object.keys(styleBuilder.styles).length) }) }) describe('#removeAll', () => { it('doit effacer tous les elements', () => { styleBuilder.setMany(config.style.styles) expect(config.style.styles).to.eql(styleBuilder.styles) styleBuilder.removeAll() assert.equal(0, Object.keys(styleBuilder.styles).length) }) }) describe('#build', () => { it('contient les styles', () => { assert.isTrue(styleBuilder.add('note', { color: 'red' }).build().includes(config.style.vendor)) }) }) describe('#print', () => { it('doit etre ajouté dans le head de la page', () => { styleBuilder.print() assert.isTrue($(document).find('head').find(`#${config.style.vendor}`).length > 0) }) }) describe('#unprint', () => { it('doit etre enlevé dans le head de la page', () => { styleBuilder.print() assert.isTrue($(document).find('head').find(`#${config.style.vendor}`).length > 0) styleBuilder.unprint() assert.isTrue($(document).find('head').find(`#${config.style.vendor}`).length === 0) }) }) })