12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- '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('Controls', () => {
- describe('Multimix', () => {
- let frag = document.createDocumentFragment();
- let container = dom.getContainer();
- let controls = dom.getMultimixControls();
- container.insertBefore(controls, container.children[0]);
- frag.appendChild(container);
- let mixer = mixitup(container, {
- controls: {
- scope: 'local'
- }
- }, frag);
- after(() => mixer.destroy());
- it('should detect nested filter controls and set active states upon instantiation', () => {
- let control = controls.querySelector('[data-filter="all"][data-sort="default:asc"]');
- chai.assert.isOk(control.matches('.mixitup-control-active'));
- });
- it('should read filter and sort actions simultaneously', () => {
- let control = controls.querySelector('[data-filter=".category-b"][data-sort="published"]');
- control.click();
- let state = mixer.getState();
- chai.assert.equal(state.activeFilter.selector, '.category-b');
- chai.assert.equal(state.activeSort.sortString, 'published');
- chai.assert.isOk(control.matches('.mixitup-control-active'));
- });
- });
- });
|