sets.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import assert from 'assert';
  2. import { push, remove, toggle } from 'misago/utils/sets';
  3. describe("Sets Utils", function() {
  4. it("push", function() {
  5. let set = [];
  6. set = push(set, 2);
  7. assert.equal(set.length, 1, "array length changed");
  8. assert.equal(set[0], 2, "array contains pushed value");
  9. set = push(set, 2);
  10. assert.equal(set.length, 1, "array length didn't change");
  11. assert.equal(set[0], 2, "array contains pushed value");
  12. set = push(set, 1);
  13. assert.equal(set.length, 2, "array length changed");
  14. assert.equal(set[0], 2, "array contains original item");
  15. assert.equal(set[1], 1, "array contains pushed item");
  16. });
  17. it("remove", function() {
  18. let set = [1, 2, 3];
  19. set = remove(set, 2);
  20. assert.equal(set.length, 2, "array length changed");
  21. assert.equal(set[1], 3, "removed value is no longer in array");
  22. set = remove(set, 2);
  23. assert.equal(set.length, 2, "array length didn't change");
  24. });
  25. it("toggle", function() {
  26. let set = [];
  27. set = toggle(set, 2);
  28. assert.equal(set.length, 1, "array length changed");
  29. assert.equal(set[0], 2, "array contains toggled value");
  30. set = toggle(set, 2);
  31. assert.equal(set.length, 0, "array was emptied");
  32. set = toggle(set, 2);
  33. assert.equal(set.length, 1, "array length changed");
  34. assert.equal(set[0], 2, "array contains toggled item again");
  35. });
  36. });