54 lines
1.9 KiB
JavaScript
54 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
require('jsdom-global')();
|
|
|
|
const chai = require('chai');
|
|
const dom = require('../mock/dom');
|
|
const mixitup = require('../../dist/mixitup.js');
|
|
|
|
chai.use(require('chai-shallow-deep-equal'));
|
|
chai.use(require('chai-as-promised'));
|
|
|
|
describe('mixitup.Mixer', () => {
|
|
let container = dom.getContainer();
|
|
let newClass = 'mixitup-container__display-rows';
|
|
let mixer = mixitup(container);
|
|
|
|
describe('#changeLayout()', () => {
|
|
it('should add a new class name to the container', () => {
|
|
return mixer.changeLayout(newClass)
|
|
.then(state => {
|
|
chai.assert.equal(state.activeContainerClassName, newClass);
|
|
chai.assert.isOk(container.matches('.' + newClass));
|
|
});
|
|
});
|
|
|
|
it('should remove the class name from the container', () => {
|
|
return mixer.changeLayout('')
|
|
.then(state => {
|
|
chai.assert.equal(state.activeContainerClassName, '');
|
|
chai.assert.notOk(container.matches('.' + newClass));
|
|
});
|
|
});
|
|
|
|
it('should accept a callback function which is invoked after filtering', () => {
|
|
let promise = new Promise(resolve => mixer.changeLayout(newClass, resolve));
|
|
|
|
chai.assert.isFulfilled(promise);
|
|
|
|
return promise
|
|
.then(state => {
|
|
chai.assert.equal(state.activeContainerClassName, newClass);
|
|
chai.assert.isOk(container.matches('.' + newClass));
|
|
});
|
|
});
|
|
|
|
it('should accept a boolean allowing toggling off of animation', () => {
|
|
return mixer.changeLayout('', false)
|
|
.then(state => {
|
|
chai.assert.equal(state.activeContainerClassName, '');
|
|
chai.assert.notOk(container.matches('.' + newClass));
|
|
});
|
|
});
|
|
});
|
|
}); |