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

83 lines
3.1 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', () => {
describe('#toggleOn()', () => {
const container = dom.getContainer();
const mixer = mixitup(container);
it('should activate an initial toggle', () => {
const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a'));
return mixer.toggleOn('.category-a')
.then(state => {
chai.assert.equal(state.totalShow, matching.length);
chai.assert.deepEqual(state.show, matching);
chai.assert.deepEqual(state.matching, matching);
});
});
it('should activate a further toggle', () => {
const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-c'));
return mixer.toggleOn('.category-c')
.then(state => {
chai.assert.equal(state.totalShow, matching.length);
chai.assert.deepEqual(state.show, matching);
chai.assert.deepEqual(state.matching, matching);
});
});
it('should activate a non-existant toggle with no effect', () => {
const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-c'));
return mixer.toggleOn('.category-z')
.then(state => {
chai.assert.equal(state.totalShow, matching.length);
chai.assert.deepEqual(state.show, matching);
chai.assert.deepEqual(state.matching, matching);
});
});
});
describe('#toggleOff()', () => {
const container = dom.getContainer();
const mixer = mixitup(container, {
load: {
filter: '.category-a, .category-b, .category-c'
}
});
it('should deactivate a toggle', () => {
const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-b'));
return mixer.toggleOff('.category-c')
.then(state => {
chai.assert.equal(state.totalShow, matching.length);
chai.assert.deepEqual(state.show, matching);
chai.assert.deepEqual(state.matching, matching);
});
});
it('should deactivate a non existent toggle with no effect', () => {
const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-b'));
return mixer.toggleOff('.category-z')
.then(state => {
chai.assert.equal(state.totalShow, matching.length);
chai.assert.deepEqual(state.show, matching);
chai.assert.deepEqual(state.matching, matching);
});
});
});
});