diff options
author | Luke "Jared" Bennett <lbennett@gitlab.com> | 2017-02-07 18:02:49 +0000 |
---|---|---|
committer | Luke "Jared" Bennett <lbennett@gitlab.com> | 2017-02-07 18:33:00 +0000 |
commit | df469864b1ab1e0bfaa1e843d3d0a84042604646 (patch) | |
tree | 81a59a012180c8e2c43f8573a50d5ddec26040ab /spec/javascripts/subbable_resource_spec.js | |
parent | bc13687c7e374116e4830d004b82e9960d3a55cc (diff) | |
download | gitlab-ce-update-filenames-regex.tar.gz |
Updated the filename regexupdate-filenames-regex
Diffstat (limited to 'spec/javascripts/subbable_resource_spec.js')
-rw-r--r-- | spec/javascripts/subbable_resource_spec.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/javascripts/subbable_resource_spec.js b/spec/javascripts/subbable_resource_spec.js new file mode 100644 index 00000000000..454386697f5 --- /dev/null +++ b/spec/javascripts/subbable_resource_spec.js @@ -0,0 +1,63 @@ +/* eslint-disable max-len, arrow-parens, comma-dangle */ + +require('~/subbable_resource'); + +/* +* Test that each rest verb calls the publish and subscribe function and passes the correct value back +* +* +* */ +((global) => { + describe('Subbable Resource', function () { + describe('PubSub', function () { + beforeEach(function () { + this.MockResource = new global.SubbableResource('https://example.com'); + }); + it('should successfully add a single subscriber', function () { + const callback = () => {}; + this.MockResource.subscribe(callback); + + expect(this.MockResource.subscribers.length).toBe(1); + expect(this.MockResource.subscribers[0]).toBe(callback); + }); + + it('should successfully add multiple subscribers', function () { + const callbackOne = () => {}; + const callbackTwo = () => {}; + const callbackThree = () => {}; + + this.MockResource.subscribe(callbackOne); + this.MockResource.subscribe(callbackTwo); + this.MockResource.subscribe(callbackThree); + + expect(this.MockResource.subscribers.length).toBe(3); + }); + + it('should successfully publish an update to a single subscriber', function () { + const state = { myprop: 1 }; + + const callbacks = { + one: (data) => expect(data.myprop).toBe(2), + two: (data) => expect(data.myprop).toBe(2), + three: (data) => expect(data.myprop).toBe(2) + }; + + const spyOne = spyOn(callbacks, 'one'); + const spyTwo = spyOn(callbacks, 'two'); + const spyThree = spyOn(callbacks, 'three'); + + this.MockResource.subscribe(callbacks.one); + this.MockResource.subscribe(callbacks.two); + this.MockResource.subscribe(callbacks.three); + + state.myprop += 1; + + this.MockResource.publish(state); + + expect(spyOne).toHaveBeenCalled(); + expect(spyTwo).toHaveBeenCalled(); + expect(spyThree).toHaveBeenCalled(); + }); + }); + }); +})(window.gl || (window.gl = {})); |