From 1f886478755afb546550a9e82f058138b32820d1 Mon Sep 17 00:00:00 2001 From: Alexandre Pretto Nunes Date: Wed, 22 Oct 2014 15:14:01 -0200 Subject: Update JS unittests to use a deferred to mock ajax calls --- web-ui/test/spec/tags/data/tags.spec.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'web-ui/test/spec/tags/data/tags.spec.js') diff --git a/web-ui/test/spec/tags/data/tags.spec.js b/web-ui/test/spec/tags/data/tags.spec.js index e42a7752..adb279ac 100644 --- a/web-ui/test/spec/tags/data/tags.spec.js +++ b/web-ui/test/spec/tags/data/tags.spec.js @@ -8,7 +8,7 @@ describeComponent('tags/data/tags', function () { }); it('asks the server for tags when receiving the tags:want event', function() { - spyOn($, 'ajax').and.returnValue({done: function() {}}); + spyOn($, 'ajax').and.returnValue($.Deferred()); this.component.trigger(Pixelated.events.tags.want); @@ -16,25 +16,30 @@ describeComponent('tags/data/tags', function () { }); it('triggers an event on the initial sender after receiving tags', function() { - var f; - spyOn($, 'ajax').and.returnValue({done: function(d) { f = d; }}); + var deferred = $.Deferred(); + + spyOn($, 'ajax').and.returnValue(deferred); var me = {}; var eventSpy = spyOnEvent(me, Pixelated.events.tags.received); this.component.trigger(Pixelated.events.tags.want, { caller: me}); - f(['foo', 'bar', 'quux/bar']); + deferred.resolve(['foo', 'bar', 'quux/bar']); + expect(eventSpy).toHaveBeenTriggeredOn(me); }); it('triggers an event containing the returned tags', function() { - var f; - spyOn($, 'ajax').and.returnValue({done: function(d) { f = d; }}); + var tags = ['foo', 'bar', 'quux/bar']; + var deferred = $.Deferred(); + + spyOn($, 'ajax').and.returnValue(deferred); var me = {}; var eventSpy = spyOnEvent(me, Pixelated.events.tags.received); this.component.trigger(Pixelated.events.tags.want, { caller: me }); - var tags = ['foo', 'bar', 'quux/bar']; - f(tags); + + deferred.resolve(tags); + tags.push(this.component.all); expect(eventSpy.mostRecentCall.data).toEqual(jasmine.objectContaining({tags: tags})); }); -- cgit v1.2.3