UNPKG

@snippetify/book-reader

Version:
121 lines (106 loc) 3.57 kB
require('./utils/mock').initJsDOM() const config = require('../src/config') const { expect, assert } = require('chai') const BookBuilder = require('../src/BookBuilder') const { pages, decorators, template, generateReference } = require('./utils/mock') describe('BookBuilder', () => { let bookBuilder beforeEach(() => { bookBuilder = BookBuilder.getInstance() }) describe('#getInstance', () => { it('doit retourner une instance de BookBuilder', () => { assert.isTrue(BookBuilder.getInstance() instanceof BookBuilder) }) }) describe('#setConfig', () => { it('contient la configuration', () => { bookBuilder.setConfig(config) expect(config).to.eql(bookBuilder.config) }) }) describe('#setRootElement', () => { it('doit injecter le root element', () => { bookBuilder.setRootElement(document) expect(document).to.equal(bookBuilder.rootElement) }) }) describe('#setPages', () => { it('contient les pages', () => { bookBuilder.setPages(pages) expect(bookBuilder.pages).to.eql(pages) }) }) describe('#setDecorators', () => { it('contient les decorators', () => { bookBuilder.setDecorators(decorators) expect(bookBuilder.decorators).to.eql(decorators) }) }) describe('#build', () => { it('doit initialiser toutes les dependances', () => { bookBuilder .setPages(pages) .setConfig(config) .setRootElement($('body').get(0)) .build() expect(config.style).to.eql(bookBuilder.styleBuilder.config) expect(config.decorator).to.eql(bookBuilder.decoratorManager.config) }) }) describe('#buildContent', () => { it('contient tous les éléments du build', () => { const myConfig = { ...config } myConfig.page.reference.template = template const value = bookBuilder .setConfig(myConfig) .setPages(pages) .build() .buildContent() assert.isTrue(value.html().includes($(generateReference(1)).html())) }) }) describe('#print', () => { it('les pages ont été imprimées et contiennent les références', () => { const myConfig = { ...config } myConfig.page.reference.template = template bookBuilder .setPages(pages) .setConfig(myConfig) .setRootElement($('body').get(0)) .build() .print() assert.isTrue($('body').html().includes($(generateReference(1)).html())) }) }) describe('#isPrinted', () => { it('les pages ont bien été imprimées', () => { bookBuilder .setPages(pages) .setRootElement($('body').get(0)) .build() .print() assert.isTrue(bookBuilder.isPrinted()) }) }) describe('#getReadingStyle', () => { it('doit retourner le style du reading', () => { expect(config.style.styles.reading).to.eql(bookBuilder.build().getReadingStyle()) }) }) describe('#updateReadingStyle', () => { it('doit imprimer le style reading dans le head', () => { bookBuilder .setPages(pages) .setRootElement($('body').get(0)) .build() .print() $('head').find('style[id]').html() assert.isTrue($('head').find('style[id]').html().includes(bookBuilder.config.style.styles.reading['text-align'])) const configuration = bookBuilder.getReadingStyle() configuration['text-align'] = 'center' bookBuilder.updateReadingStyle(configuration) assert.isTrue($('head').find('style[id]').html().includes('center')) }) }) })