mirror of
https://github.com/Choices-js/Choices.git
synced 2024-05-10 17:46:35 +02:00
init() and destroy() unit tests
This commit is contained in:
parent
a7484fa093
commit
8c7fc17811
|
@ -1,10 +1,150 @@
|
|||
// import { expect } from 'chai';
|
||||
// import sinon from 'sinon';
|
||||
import { expect } from 'chai';
|
||||
import { spy } from 'sinon';
|
||||
|
||||
import Choices from './choices';
|
||||
|
||||
describe('choices', () => {
|
||||
let instance;
|
||||
let passedElement;
|
||||
|
||||
describe('public methods', () => {
|
||||
describe('init', () => {});
|
||||
describe('destroy', () => {});
|
||||
describe('init', () => {
|
||||
const callbackOnInitSpy = spy();
|
||||
|
||||
beforeEach(() => {
|
||||
passedElement = document.createElement('input');
|
||||
passedElement.type = 'text';
|
||||
passedElement.className = 'js-choices';
|
||||
document.body.appendChild(passedElement);
|
||||
|
||||
instance = new Choices(passedElement, {
|
||||
callbackOnInit: callbackOnInitSpy,
|
||||
});
|
||||
});
|
||||
|
||||
describe('already initalised', () => {
|
||||
beforeEach(() => {
|
||||
instance.initialised = true;
|
||||
instance.init();
|
||||
});
|
||||
|
||||
it('doesn\'t set initialise flag', () => {
|
||||
expect(instance.initialised).to.not.equal(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('not already initalised', () => {
|
||||
let createTemplatesSpy;
|
||||
let createInputSpy;
|
||||
let storeSubscribeSpy;
|
||||
let renderSpy;
|
||||
let addEventListenersSpy;
|
||||
|
||||
beforeEach(() => {
|
||||
createTemplatesSpy = spy(instance, '_createTemplates');
|
||||
createInputSpy = spy(instance, '_createInput');
|
||||
storeSubscribeSpy = spy(instance.store, 'subscribe');
|
||||
renderSpy = spy(instance, 'render');
|
||||
addEventListenersSpy = spy(instance, '_addEventListeners');
|
||||
|
||||
instance.initialised = false;
|
||||
instance.init();
|
||||
});
|
||||
|
||||
it('sets initialise flag', () => {
|
||||
expect(instance.initialised).to.equal(true);
|
||||
});
|
||||
|
||||
it('creates templates', () => {
|
||||
expect(createTemplatesSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('creates input', () => {
|
||||
expect(createInputSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('subscribes to store', () => {
|
||||
expect(storeSubscribeSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('fires initial render', () => {
|
||||
expect(renderSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('adds event listeners', () => {
|
||||
expect(addEventListenersSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('fires callback', () => {
|
||||
expect(callbackOnInitSpy.called).to.equal(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('destroy', () => {
|
||||
beforeEach(() => {
|
||||
passedElement = document.createElement('input');
|
||||
passedElement.type = 'text';
|
||||
passedElement.className = 'js-choices';
|
||||
document.body.appendChild(passedElement);
|
||||
|
||||
instance = new Choices(passedElement);
|
||||
});
|
||||
|
||||
describe('not already initalised', () => {
|
||||
beforeEach(() => {
|
||||
instance.initialised = false;
|
||||
instance.destroy();
|
||||
});
|
||||
|
||||
it('doesn\'t set initialise flag', () => {
|
||||
expect(instance.initialised).to.not.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('already initalised', () => {
|
||||
let removeEventListenersSpy;
|
||||
let passedElementRevealSpy;
|
||||
let containerOuterRevertSpy;
|
||||
let clearStoreSpy;
|
||||
|
||||
beforeEach(() => {
|
||||
removeEventListenersSpy = spy(instance, '_removeEventListeners');
|
||||
passedElementRevealSpy = spy(instance.passedElement, 'reveal');
|
||||
containerOuterRevertSpy = spy(instance.containerOuter, 'revert');
|
||||
clearStoreSpy = spy(instance, 'clearStore');
|
||||
|
||||
instance.initialised = true;
|
||||
instance.destroy();
|
||||
});
|
||||
|
||||
|
||||
it('removes event listeners', () => {
|
||||
expect(removeEventListenersSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('reveals passed element', () => {
|
||||
expect(passedElementRevealSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('reverts outer container', () => {
|
||||
expect(containerOuterRevertSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('clears store', () => {
|
||||
expect(clearStoreSpy.called).to.equal(true);
|
||||
});
|
||||
|
||||
it('nullifys templates config', () => {
|
||||
expect(instance.config.templates).to.equal(null);
|
||||
});
|
||||
|
||||
it('resets initialise flag', () => {
|
||||
expect(instance.initialised).to.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('renderGroups', () => {});
|
||||
describe('renderChoices', () => {});
|
||||
describe('renderItems', () => {});
|
||||
|
|
Loading…
Reference in a new issue