eventemitter.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. (function (root, factory) {
  2. define(["jasmine", "mock", "test-utils"], factory);
  3. } (this, function (jasmine, mock, test_utils) {
  4. return describe("The _converse Event Emitter", function() {
  5. it("allows you to subscribe to emitted events", mock.initConverse((done, _converse) => {
  6. this.callback = function () {};
  7. spyOn(this, 'callback');
  8. _converse.on('connected', this.callback);
  9. _converse.api.trigger('connected');
  10. expect(this.callback).toHaveBeenCalled();
  11. _converse.api.trigger('connected');
  12. expect(this.callback.calls.count(), 2);
  13. _converse.api.trigger('connected');
  14. expect(this.callback.calls.count(), 3);
  15. done();
  16. }));
  17. it("allows you to listen once for an emitted event", mock.initConverse((done, _converse) => {
  18. this.callback = function () {};
  19. spyOn(this, 'callback');
  20. _converse.once('connected', this.callback);
  21. _converse.api.trigger('connected');
  22. expect(this.callback).toHaveBeenCalled();
  23. _converse.api.trigger('connected');
  24. expect(this.callback.calls.count(), 1);
  25. _converse.api.trigger('connected');
  26. expect(this.callback.calls.count(), 1);
  27. done();
  28. }));
  29. it("allows you to stop listening or subscribing to an event", mock.initConverse((done, _converse) => {
  30. this.callback = function () {};
  31. this.anotherCallback = function () {};
  32. this.neverCalled = function () {};
  33. spyOn(this, 'callback');
  34. spyOn(this, 'anotherCallback');
  35. spyOn(this, 'neverCalled');
  36. _converse.on('connected', this.callback);
  37. _converse.on('connected', this.anotherCallback);
  38. _converse.api.trigger('connected');
  39. expect(this.callback).toHaveBeenCalled();
  40. expect(this.anotherCallback).toHaveBeenCalled();
  41. _converse.off('connected', this.callback);
  42. _converse.api.trigger('connected');
  43. expect(this.callback.calls.count(), 1);
  44. expect(this.anotherCallback.calls.count(), 2);
  45. _converse.once('connected', this.neverCalled);
  46. _converse.off('connected', this.neverCalled);
  47. _converse.api.trigger('connected');
  48. expect(this.callback.calls.count(), 1);
  49. expect(this.anotherCallback.calls.count(), 3);
  50. expect(this.neverCalled).not.toHaveBeenCalled();
  51. done();
  52. }));
  53. });
  54. }));