| @@ -10,12 +10,16 @@ class DocsRequesterTest < MiniTest::Spec · 9 unmodified lines |
| 10 | Docs::Requester.new(options) | 10 | Docs::Requester.new(options) |
| 11 | end | 11 | end |
| 12 | | 12 | |
| | 13 | let :url do |
| | 14 | 'http://example.com' |
| | 15 | end |
| | 16 | |
| 13 | let :options do | 17 | let :options do |
| 14 | Hash.new | 18 | Hash.new |
| 15 | end | 19 | end |
| 16 | | 20 | |
| 17 | let :url do | 21 | let :block do |
| 18 | 'http://example.com' | 22 | Proc.new {} |
| 19 | end | 23 | end |
| 20 | | 24 | |
| 21 | after do | 25 | after do |
| @@ -36,37 +40,62 @@ class DocsRequesterTest < MiniTest::Spec · 14 unmodified lines |
| 36 | end | 40 | end |
| 37 | | 41 | |
| 38 | describe "#request" do | 42 | describe "#request" do |
| 39 | it "returns a request" do | 43 | context "with a url" do |
| 40 | assert_instance_of Docs::Request, requester.request(url) | 44 | it "returns a request" do |
| 41 | end | 45 | assert_instance_of Docs::Request, requester.request(url) |
| 42 | | | |
| 43 | describe "the request" do | | |
| 44 | it "is queued" do | | |
| 45 | request = requester.request(url) | | |
| 46 | assert_includes requester.queued_requests, request | | |
| 47 | end | 46 | end |
| 48 | | 47 | |
| 49 | it "has the given url" do | 48 | describe "the request" do |
| 50 | request = requester.request(url) | 49 | it "is queued" do |
| 51 | assert_equal url, request.base_url | 50 | request = requester.request(url) |
| | 51 | assert_includes requester.queued_requests, request |
| | 52 | end |
| | 53 | |
| | 54 | it "has the given url" do |
| | 55 | request = requester.request(url) |
| | 56 | assert_equal url, request.base_url |
| | 57 | end |
| | 58 | |
| | 59 | it "has the default :request_options" do |
| | 60 | options[:request_options] = { params: 'test' } |
| | 61 | request = requester.request(url) |
| | 62 | assert_equal 'test', request.options[:params] |
| | 63 | end |
| | 64 | |
| | 65 | it "has the given options" do |
| | 66 | options[:request_options] = { params: '' } |
| | 67 | request = requester.request(url, params: 'test') |
| | 68 | assert_equal 'test', request.options[:params] |
| | 69 | end |
| | 70 | |
| | 71 | it "has the given block as an on_complete callback" do |
| | 72 | request = requester.request(url, &block) |
| | 73 | assert_includes request.on_complete, block |
| | 74 | end |
| 52 | end | 75 | end |
| | 76 | end |
| 53 | | 77 | |
| 54 | it "has the default :request_options" do | 78 | context "with an array of urls" do |
| 55 | options[:request_options] = { params: 'test' } | 79 | let :urls do |
| 56 | request = requester.request(url) | 80 | ['one', 'two'] |
| 57 | assert_equal 'test', request.options[:params] | | |
| 58 | end | 81 | end |
| 59 | | 82 | |
| 60 | it "has the given options" do | 83 | it "returns an array of requests" do |
| 61 | options[:request_options] = { params: '' } | 84 | result = requester.request(urls, { params: 'test' }, &block) |
| 62 | request = requester.request(url, params: 'test') | 85 | assert_instance_of Array, result |
| 63 | assert_equal 'test', request.options[:params] | 86 | assert_equal urls.length, result.length |
| | 87 | assert result.all? { |obj| obj.instance_of? Docs::Request } |
| | 88 | urls.each_with_index do |url, i| |
| | 89 | assert_equal url, result[i].base_url |
| | 90 | assert_equal 'test', result[i].options[:params] |
| | 91 | assert_includes result[i].on_complete, block |
| | 92 | end |
| 64 | end | 93 | end |
| 65 | | 94 | |
| 66 | it "has the given block as an on_complete callback" do | 95 | it "queues the requests in the given order" do |
| 67 | block = Proc.new {} | 96 | queue = [] |
| 68 | request = requester.request(url, &block) | 97 | stub(requester).queue { |request| queue << request } |
| 69 | assert_includes request.on_complete, block | 98 | assert_equal urls, requester.request(urls).map(&:base_url) |
| 70 | end | 99 | end |
| 71 | end | 100 | end |
| 72 | end | 101 | end |
| @@ -77,9 +106,8 @@ class DocsRequesterTest < MiniTest::Spec · 4 unmodified lines |
| 77 | end | 106 | end |
| 78 | | 107 | |
| 79 | it "stores a callback" do | 108 | it "stores a callback" do |
| 80 | proc = Proc.new {} | 109 | requester.on_response(&block) |
| 81 | requester.on_response(&proc) | 110 | assert_includes requester.on_response, block |
| 82 | assert_includes requester.on_response, proc | | |
| 83 | end | 111 | end |
| 84 | end | 112 | end |
| 85 | | 113 | |