fake-ajax-server 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -37,6 +37,25 @@ fakeAjaxServer = new FakeAjaxServer (url, settings)=>
37
37
  return if handled
38
38
  console.log arguments
39
39
  throw "Unexpected AJAX call: #{settings.url}"
40
+
41
+ fakeAjaxServer.start()
42
+ $.getJSON '/products', (data)-> console.log data
43
+ expect(fakeAjaxServer.ajaxSettings().url).toBe '/products'/products
44
+ fakeAjaxServer.processNextRequest()
45
+ $.post '/products', name: 'Drums', ((data)-> console.log data.id), 'json'
46
+ failed = false
47
+ $.post('/products/1/delete').fail -> failed = true
48
+
49
+ expect(fakeAjaxServer.ajaxSettings(0).data.name).toBe 'Drums' # 0 is used by default
50
+ expect(fakeAjaxServer.ajaxSettings(1).url).toBe '/products/1/delete'
51
+ expect(fakeAjaxServer.ajaxResponse(1).fail).not.toBeUndefined()
52
+ fakeAjaxServer.ajaxResponse(1).fail()
53
+ expect(failed).toBe true
54
+ fakeAjaxServer.ignoreNextRequest() # ignores POST '/products'
55
+ # alternatively use fakeAjaxServer.ignoreAllRequests()
56
+ fakeAjaxServer.processAllRequests() # would be the same as processNextRequest in this case
57
+
58
+ fakeAjaxServer.stop() # undo $.ajax stubbing, restoring the original method
40
59
  ```
41
60
 
42
61
  ## Contributing
@@ -2,15 +2,15 @@
2
2
  # =require sinon
3
3
 
4
4
  @FakeAjaxServer = class FakeAjaxServer
5
- constructor: (@fakeServerResponse, @imediateServe = false)->
5
+ constructor: (@fakeServerResponse, @options = {})->
6
6
  start: ->
7
7
  @ajaxCallbacksQueue = []
8
- @ajaxStub = sinon.stub $, 'ajax', @fakeAjax
9
- stop: -> $.ajax.restore()
8
+ @ajaxStub = sinon.stub jQuery, 'ajax', @fakeAjax
9
+ stop: -> jQuery.ajax.restore()
10
10
  fakeAjax: =>
11
- responseStub = sinon.stub(new jQuery.Deferred)
11
+ responseStub = @createFakeJqXHR()
12
12
  @ajaxCallbacksQueue.push [arguments, responseStub]
13
- @processAllRequests() if @imediateServe
13
+ @processAllRequests() if @options.imediateServe
14
14
  responseStub
15
15
  processNextRequest: -> @fakeServerResponse.apply this, @ajaxCallbacksQueue.shift()[0]
16
16
  processAllRequests: -> @processNextRequest() while @ajaxCallbacksQueue.length
@@ -19,3 +19,8 @@
19
19
  ajaxResponse: (index = 0)-> @ajaxCallbacksQueue[index][1]
20
20
  ajaxSettings: (index = 0)-> @ajaxCallbacksQueue[index][0][0]
21
21
 
22
+ createFakeJqXHR: ->
23
+ xhr = jQuery.Deferred()
24
+ (xhr[m] = (->) for m in ['error', 'success', 'complete']) if @options.legacySupport
25
+ sinon.stub xhr, m, (-> xhr) for m, f of xhr when typeof f is 'function'
26
+ xhr
@@ -1,7 +1,7 @@
1
1
  module Fake
2
2
  module Ajax
3
3
  module Server
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake-ajax-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-02 00:00:00.000000000 Z
12
+ date: 2012-06-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jquery-rails
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: -1773120934565453031
92
+ hash: 1541235644656623302
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: -1773120934565453031
101
+ hash: 1541235644656623302
102
102
  requirements: []
103
103
  rubyforge_project:
104
104
  rubygems_version: 1.8.21