ordered-list.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import assert from 'assert';
  2. import OrderedList from 'misago/utils/ordered-list';
  3. var list = null;
  4. describe('OrderedList', function() {
  5. beforeEach(function() {
  6. list = new OrderedList();
  7. });
  8. it("stores and returns items", function () {
  9. assert.equal(list.has('invalid_key'), false,
  10. "list.has() returned false for nonexisting key");
  11. list.add('valid_key', 'valid_value');
  12. assert.ok(list.has('valid_key'),
  13. "list.has() returned true for existing key");
  14. assert.equal(list.get('valid_key'), 'valid_value',
  15. "list.get() returned value for existing key");
  16. assert.equal(list.get('invalid_key', 'fallback'), 'fallback',
  17. "list.get() returned fallback value for nonexisting key");
  18. });
  19. it("orders and returns items", function() {
  20. list.add('apple', 'apple');
  21. list.add('banana', 'banana');
  22. list.add('orange', 'orange');
  23. list.add('lichi', 'lichi', {before: '_end'});
  24. list.add('kiwi', 'kiwi', {before: 'banana'});
  25. list.add('melon', 'melon', {after: 'potato'});
  26. list.add('potato', 'potato');
  27. var unorderedList = list.values();
  28. assert.equal(list.isOrdered, false,
  29. "list.values() didn't set isOrdered flag on list");
  30. assert.equal(unorderedList[0], 'apple', 'unorderedList[0] is apple');
  31. assert.equal(unorderedList[1], 'banana', 'unorderedList[1] is banana');
  32. assert.equal(unorderedList[2], 'orange', 'unorderedList[2] is orange');
  33. assert.equal(unorderedList[3], 'lichi', 'unorderedList[3] is lichi');
  34. assert.equal(unorderedList[4], 'kiwi', 'unorderedList[4] is kiwi');
  35. assert.equal(unorderedList[5], 'melon', 'unorderedList[5] is melon');
  36. assert.equal(unorderedList[6], 'potato', 'unorderedList[6] is potato');
  37. var orderedList = list.order();
  38. assert.ok(list.isOrdered, "list.order() set isOrdered flag on list");
  39. assert.equal(orderedList[0], 'apple', 'orderedList[0] is apple');
  40. assert.equal(orderedList[1], 'kiwi', 'orderedList[1] is kiwi');
  41. assert.equal(orderedList[2], 'banana', 'orderedList[2] is banana');
  42. assert.equal(orderedList[3], 'orange', 'orderedList[3] is orange');
  43. assert.equal(orderedList[4], 'potato', 'orderedList[4] is potato');
  44. assert.equal(orderedList[5], 'melon', 'orderedList[5] is melon');
  45. assert.equal(orderedList[6], 'lichi', 'orderedList[6] is lichi');
  46. });
  47. });