http_spec 0.2.0 → 0.3.0

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.
@@ -4,8 +4,9 @@ require "rack/mock"
4
4
  module HTTPSpec
5
5
  module Clients
6
6
  class Rack
7
- def initialize(app)
7
+ def initialize(app, env = {})
8
8
  @session = ::Rack::MockRequest.new(app)
9
+ @env = env
9
10
  end
10
11
 
11
12
  def dispatch(request)
@@ -21,7 +22,7 @@ module HTTPSpec
21
22
  end
22
23
 
23
24
  def headers_to_env(headers)
24
- headers.inject({}) do |env, (k, v)|
25
+ headers.inject(@env) do |env, (k, v)|
25
26
  k = k.tr("-", "_").upcase
26
27
  k = "HTTP_#{k}" unless %w{CONTENT_TYPE CONTENT_LENGTH}.include?(k)
27
28
  env.merge(k => v)
@@ -8,12 +8,16 @@ module HTTPSpec
8
8
  methods.each do |method|
9
9
  define_method(method) do |path, body="", headers={}|
10
10
  request = Request.new(method, path, body, headers)
11
- HTTPSpec.dispatch(request)
11
+ @last_response = HTTPSpec.dispatch(request)
12
12
  end
13
13
  end
14
14
  end
15
15
 
16
16
  define_actions :get, :post, :put, :patch, :delete, :options, :head
17
+
18
+ def last_response
19
+ @last_response or raise "No request yet."
20
+ end
17
21
  end
18
22
  end
19
23
  end
@@ -56,11 +56,12 @@ module HTTPSpec
56
56
 
57
57
  def build_request(options)
58
58
  request = example.metadata[:request]
59
- path = build_path(request, options)
60
- body = options.fetch(:body, "")
61
- headers = example.metadata[:default_headers]
62
- headers.merge!(options.fetch(:headers, {}))
63
- Request.new(request.method, path, body, headers)
59
+ Request.new(
60
+ request.method,
61
+ build_path(request, options),
62
+ options.fetch(:body, ""),
63
+ example.metadata[:default_headers].merge(options.fetch(:headers, {}))
64
+ )
64
65
  end
65
66
 
66
67
  def build_path(request, options)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
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-08-28 00:00:00.000000000 Z
12
+ date: 2012-09-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core