fake-ajax-server 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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