multiMap.spec.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import MultiMap from 'handsontable/multiMap';
  2. describe('MultiMap', () => {
  3. beforeEach(function() {
  4. this.multiMap = new MultiMap();
  5. });
  6. afterEach(function() {
  7. delete this.multiMap;
  8. });
  9. it('should use string as key', function() {
  10. this.multiMap.set('foo', 'bar');
  11. expect(this.multiMap.get('foo')).toEqual('bar');
  12. });
  13. it('should use integer as key', function() {
  14. this.multiMap.set(1, 'bar');
  15. expect(this.multiMap.get(1)).toEqual('bar');
  16. });
  17. it('should use integer as key', function() {
  18. this.multiMap.set(1.2, 'bar');
  19. expect(this.multiMap.get(1.2)).toEqual('bar');
  20. expect(this.multiMap.get(1.3)).toBeUndefined();
  21. });
  22. it('should use plain object as key', function() {
  23. var keyObj1 = {};
  24. var keyObj2 = {};
  25. this.multiMap.set(keyObj1, 'bar');
  26. expect(this.multiMap.get(keyObj1)).toEqual('bar');
  27. expect(this.multiMap.get(keyObj2)).toBeUndefined();
  28. });
  29. it('should use array as key', function() {
  30. var keyArray1 = [];
  31. var keyArray2 = [];
  32. this.multiMap.set(keyArray1, 'bar');
  33. expect(this.multiMap.get(keyArray1)).toEqual('bar');
  34. expect(this.multiMap.get(keyArray2)).toBeUndefined();
  35. });
  36. it('should use regexp as key', function() {
  37. var keyRegexp1 = /test/;
  38. var keyRegexp2 = /test/;
  39. this.multiMap.set(keyRegexp1, 'bar');
  40. expect(this.multiMap.get(keyRegexp1)).toEqual('bar');
  41. expect(this.multiMap.get(keyRegexp2)).toBeUndefined();
  42. });
  43. it('should not use boolean as key', () => {
  44. var tryToSetBooleanKey = function() {
  45. this.multiMap.set(false, 'bar');
  46. };
  47. expect(tryToSetBooleanKey).toThrow();
  48. });
  49. it('should not set null as key', () => {
  50. var tryToSetNullKey = function() {
  51. this.multiMap.set(null, 'bar');
  52. };
  53. expect(tryToSetNullKey).toThrow();
  54. });
  55. it('should not set undefined as key', () => {
  56. var tryToSetUndefinedKey = function() {
  57. this.multiMap.set(undefined, 'bar');
  58. };
  59. expect(tryToSetUndefinedKey).toThrow();
  60. });
  61. it('should not set NaN as key', () => {
  62. var tryToSetNaNKey = function() {
  63. this.multiMap.set(NaN, 'bar');
  64. };
  65. expect(tryToSetNaNKey).toThrow();
  66. });
  67. });