@snippetify/book-reader
Version:
Book reader utilities
67 lines (57 loc) • 2.02 kB
JavaScript
require('./utils/mock').initJsDOM()
const config = require('../src/config')
const { assert, expect } = require('chai')
const MenuBuilder = require('../src/MenuBuilder')
const EventManager = require('../src/EventManager')
describe('MenuBuilder', () => {
let menuBuilder
beforeEach(() => {
menuBuilder = MenuBuilder.getInstance()
menuBuilder
.setConfig(config.contextMenu)
.setRootElement($(document).find('body').get(0))
})
describe('#getInstance', () => {
it('doit retourner une instance de MenuBuilder', () => {
assert.isTrue(MenuBuilder.getInstance() instanceof MenuBuilder)
})
})
describe('#setConfig', () => {
it('contient la configuration', () => {
menuBuilder.setConfig(config.contextMenu)
expect(config.contextMenu).to.eql(menuBuilder.config)
})
})
describe('#setRootElement', () => {
it('doit injecter le root element', () => {
menuBuilder.setRootElement(document)
expect(document).to.equal(menuBuilder.rootElement)
})
})
describe('#setEvents', () => {
it('doit injecter le manager d\'evenement', () => {
const events = EventManager.getInstance()
menuBuilder.setEvents(events)
expect(events).to.eql(menuBuilder.events)
})
})
describe('#build', () => {
it('doit construire et retourner le menu contextuel', () => {
assert.isTrue(menuBuilder.build().find('button').length > 0)
})
})
describe('#print', () => {
it('doit imprimer le menu', () => {
menuBuilder.print($('body').find('p').get(0))
assert.isTrue(parseInt($('body').find('[data-type="context-menu"]').css('top')) > 0)
})
})
describe('#remove', () => {
it('doit etre enlevé dans le body de la page', () => {
menuBuilder.print($('body').find('p').get(0))
assert.isTrue(parseInt($('body').find('[data-type="context-menu"]').css('top')) > 0)
menuBuilder.remove()
assert.isTrue($('body').find('[data-type="context-menu"]').length === 0)
})
})
})