lib/assets/javascripts/fake_ajax_server.js.coffee in fake-ajax-server-0.0.1 vs lib/assets/javascripts/fake_ajax_server.js.coffee in fake-ajax-server-0.0.2
- old
+ new
@@ -1,21 +1,26 @@
# =require jquery
# =require sinon
@FakeAjaxServer = class FakeAjaxServer
- constructor: (@fakeServerResponse, @imediateServe = false)->
+ constructor: (@fakeServerResponse, @options = {})->
start: ->
@ajaxCallbacksQueue = []
- @ajaxStub = sinon.stub $, 'ajax', @fakeAjax
- stop: -> $.ajax.restore()
+ @ajaxStub = sinon.stub jQuery, 'ajax', @fakeAjax
+ stop: -> jQuery.ajax.restore()
fakeAjax: =>
- responseStub = sinon.stub(new jQuery.Deferred)
+ responseStub = @createFakeJqXHR()
@ajaxCallbacksQueue.push [arguments, responseStub]
- @processAllRequests() if @imediateServe
+ @processAllRequests() if @options.imediateServe
responseStub
processNextRequest: -> @fakeServerResponse.apply this, @ajaxCallbacksQueue.shift()[0]
processAllRequests: -> @processNextRequest() while @ajaxCallbacksQueue.length
ignoreNextRequest: -> @ajaxCallbacksQueue.shift()
ignoreAllRequests: -> @ajaxCallbacksQueue = []
ajaxResponse: (index = 0)-> @ajaxCallbacksQueue[index][1]
ajaxSettings: (index = 0)-> @ajaxCallbacksQueue[index][0][0]
+ createFakeJqXHR: ->
+ xhr = jQuery.Deferred()
+ (xhr[m] = (->) for m in ['error', 'success', 'complete']) if @options.legacySupport
+ sinon.stub xhr, m, (-> xhr) for m, f of xhr when typeof f is 'function'
+ xhr