spec_app/spec/javascripts/up/proxy_spec.js.coffee in unpoly-rails-0.23.0 vs spec_app/spec/javascripts/up/proxy_spec.js.coffee in unpoly-rails-0.24.0
- old
+ new
@@ -8,10 +8,24 @@
jasmine.clock().install()
jasmine.clock().mockDate()
describe 'up.ajax', ->
+ it 'makes a request with the given URL and params', ->
+ up.ajax('/foo', data: { key: 'value' }, method: 'post')
+ request = @lastRequest()
+ expect(request.url).toEndWith('/foo')
+ expect(request.data()).toEqual(key: ['value'])
+ expect(request.method).toEqual('POST')
+
+ it 'also allows to pass the URL as a { url } option instead', ->
+ up.ajax(url: '/foo', data: { key: 'value' }, method: 'post')
+ request = @lastRequest()
+ expect(request.url).toEndWith('/foo')
+ expect(request.data()).toEqual(key: ['value'])
+ expect(request.method).toEqual('POST')
+
it 'caches server responses for 5 minutes', ->
responses = []
# Send the same request for the same path, 3 minutes apart
up.ajax(url: '/foo').then (data) -> responses.push(data)
@@ -38,10 +52,34 @@
@respondWith('bar')
expect(responses).toEqual(['foo', 'foo', 'bar'])
+ it "does not cache responses if config.cacheExpiry is 0", ->
+ up.proxy.config.cacheExpiry = 0
+ up.ajax(url: '/foo')
+ up.ajax(url: '/foo')
+ expect(jasmine.Ajax.requests.count()).toEqual(2)
+
+ it "does not cache responses if config.cacheSize is 0", ->
+ up.proxy.config.cacheSize = 0
+ up.ajax(url: '/foo')
+ up.ajax(url: '/foo')
+ expect(jasmine.Ajax.requests.count()).toEqual(2)
+
+ it 'does not limit the number of cache entries if config.cacheSize is undefined'
+
+ it 'never discards old cache entries if config.cacheExpiry is undefined'
+
+ it 'respects a config.cacheSize setting', ->
+ up.proxy.config.cacheSize = 2
+ up.ajax(url: '/foo')
+ up.ajax(url: '/bar')
+ up.ajax(url: '/baz')
+ up.ajax(url: '/foo')
+ expect(jasmine.Ajax.requests.count()).toEqual(4)
+
it "doesn't reuse responses when asked for the same path, but different selectors", ->
up.ajax(url: '/path', target: '.a')
up.ajax(url: '/path', target: '.b')
expect(jasmine.Ajax.requests.count()).toEqual(2)
@@ -99,10 +137,11 @@
up.ajax(url: '/foo')
expect(jasmine.Ajax.requests.count()).toEqual(2)
+
describe 'with config.wrapMethods set', ->
it 'should be set by default', ->
expect(up.proxy.config.wrapMethods).toBePresent()
@@ -360,12 +399,12 @@
up.proxy.config.cacheExpiry = 10
up.proxy.config.preloadDelay = 0
spyOn(up, 'follow')
$element = affix('a[href="/foo"][up-preload]')
Trigger.mouseover($element)
- @setTimer 1, =>
+ u.setTimer 1, =>
expect(up.follow.calls.count()).toBe(1)
- @setTimer 16, =>
+ u.setTimer 16, =>
Trigger.mouseover($element)
- @setTimer 1, =>
+ u.setTimer 1, =>
expect(up.follow.calls.count()).toBe(2)
done()