49 lines
1.5 KiB
JavaScript
49 lines
1.5 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('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'));
|
|
});
|
|
});
|
|
}); |