localHooks.spec.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import localHooks from 'handsontable/mixins/localHooks';
  2. describe('localHooks mixin', () => {
  3. it('should have empty collection on init', () => {
  4. expect(localHooks._localHooks).toEqual(jasmine.any(Object));
  5. });
  6. it('should add local hook to the hooks collection', () => {
  7. var callback = function() {};
  8. var callback1 = function() {};
  9. var callback2 = function() {};
  10. localHooks.addLocalHook('myHook', callback);
  11. localHooks.addLocalHook('myHook', callback);
  12. localHooks.addLocalHook('myHook', callback1);
  13. localHooks.addLocalHook('myHook1', callback2);
  14. expect(localHooks._localHooks.myHook.length).toBe(3);
  15. expect(localHooks._localHooks.myHook[0]).toBe(callback);
  16. expect(localHooks._localHooks.myHook[1]).toBe(callback);
  17. expect(localHooks._localHooks.myHook[2]).toBe(callback1);
  18. expect(localHooks._localHooks.myHook1.length).toBe(1);
  19. expect(localHooks._localHooks.myHook1[0]).toBe(callback2);
  20. });
  21. it('should run local hooks registered in collection', () => {
  22. var callback = jasmine.createSpy();
  23. var callback1 = jasmine.createSpy();
  24. var callback2 = jasmine.createSpy();
  25. var myArray = [1, 2];
  26. localHooks._localHooks.myHook = [callback, callback1];
  27. localHooks._localHooks.myHook1 = [callback, callback2];
  28. localHooks.runLocalHooks('myHook');
  29. localHooks.runLocalHooks('myHook1', 'foo', 'bar', myArray);
  30. expect(callback.calls.count()).toBe(2);
  31. expect(callback.calls.argsFor(0)).toEqual([]);
  32. expect(callback.calls.argsFor(1)).toEqual(['foo', 'bar', [1, 2]]);
  33. expect(callback).toHaveBeenCalled();
  34. expect(callback2).toHaveBeenCalledWith('foo', 'bar', [1, 2]);
  35. });
  36. it('should clear all registered hooks from collection', () => {
  37. var callback = jasmine.createSpy();
  38. var callback1 = jasmine.createSpy();
  39. var callback2 = jasmine.createSpy();
  40. localHooks._localHooks.myHook = [callback, callback1];
  41. localHooks._localHooks.myHook1 = [callback, callback2];
  42. localHooks.clearLocalHooks();
  43. expect(localHooks._localHooks).toEqual(jasmine.any(Object));
  44. });
  45. });