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()