mixer-toggle-on-off.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. 'use strict';
  2. require('jsdom-global')();
  3. const chai = require('chai');
  4. const dom = require('../mock/dom');
  5. const mixitup = require('../../dist/mixitup.js');
  6. chai.use(require('chai-shallow-deep-equal'));
  7. chai.use(require('chai-as-promised'));
  8. describe('mixitup.Mixer', () => {
  9. describe('#toggleOn()', () => {
  10. const container = dom.getContainer();
  11. const mixer = mixitup(container);
  12. it('should activate an initial toggle', () => {
  13. const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a'));
  14. return mixer.toggleOn('.category-a')
  15. .then(state => {
  16. chai.assert.equal(state.totalShow, matching.length);
  17. chai.assert.deepEqual(state.show, matching);
  18. chai.assert.deepEqual(state.matching, matching);
  19. });
  20. });
  21. it('should activate a further toggle', () => {
  22. const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-c'));
  23. return mixer.toggleOn('.category-c')
  24. .then(state => {
  25. chai.assert.equal(state.totalShow, matching.length);
  26. chai.assert.deepEqual(state.show, matching);
  27. chai.assert.deepEqual(state.matching, matching);
  28. });
  29. });
  30. it('should activate a non-existant toggle with no effect', () => {
  31. const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-c'));
  32. return mixer.toggleOn('.category-z')
  33. .then(state => {
  34. chai.assert.equal(state.totalShow, matching.length);
  35. chai.assert.deepEqual(state.show, matching);
  36. chai.assert.deepEqual(state.matching, matching);
  37. });
  38. });
  39. });
  40. describe('#toggleOff()', () => {
  41. const container = dom.getContainer();
  42. const mixer = mixitup(container, {
  43. load: {
  44. filter: '.category-a, .category-b, .category-c'
  45. }
  46. });
  47. it('should deactivate a toggle', () => {
  48. const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-b'));
  49. return mixer.toggleOff('.category-c')
  50. .then(state => {
  51. chai.assert.equal(state.totalShow, matching.length);
  52. chai.assert.deepEqual(state.show, matching);
  53. chai.assert.deepEqual(state.matching, matching);
  54. });
  55. });
  56. it('should deactivate a non existent toggle with no effect', () => {
  57. const matching = Array.prototype.slice.call(container.querySelectorAll('.category-a, .category-b'));
  58. return mixer.toggleOff('.category-z')
  59. .then(state => {
  60. chai.assert.equal(state.totalShow, matching.length);
  61. chai.assert.deepEqual(state.show, matching);
  62. chai.assert.deepEqual(state.matching, matching);
  63. });
  64. });
  65. });
  66. });