Files
Figma_1/mixitup-3.3.1/tests/unit/mixer-change-layout.js
2025-09-16 01:40:08 +03:00

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));
});
});
});
});