airborne 0.1.14 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a50567a090e2037a39b2af95854ab7703f48ffc7
4
- data.tar.gz: d97fc4c6b00fe0023f708aaa3c6736ddede8d194
3
+ metadata.gz: 6ce172c348689ccc6d7d3df32523db62d7671a1e
4
+ data.tar.gz: ec99365c4dcc0920dcd02197f47e2bb6dd985999
5
5
  SHA512:
6
- metadata.gz: 3620746a2478dbdcaf299f0c4d051457dee52b1c37b29518115a78c8c762ec632a692cf9f1835e06168fa6cfa2143f89a6233f9aefcc990dfa9aced93450fb86
7
- data.tar.gz: b35942edfba2fa967486c96f1eb0b64b027c6fd4b5b854e0b8a114ba05d4f983cdeb2a215537dafdd5d627fcdfab5a74afe595b17fea8d0b25f63b367df5e298
6
+ metadata.gz: 90c1a8944f16fb51139cf02d0e3bf29e30217ce9e6bf8d25116fc9cc221e1812426bef30d55cbf475ef476375f8b9393ea86c801cd81a0a588ea046d79cf4e36
7
+ data.tar.gz: d141eaa4f1917c759e0c1e7ea7665fe07085f4c375737ae2d3286e570d2a59c2647482f3a52004c775617635f859fd0ae88d0e097e4692ca555565dd4e2cfe06
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'airborne'
3
- s.version = '0.1.14'
4
- s.date = '2015-03-02'
3
+ s.version = '0.1.15'
4
+ s.date = '2015-03-03'
5
5
  s.summary = "RSpec driven API testing framework"
6
6
  s.authors = ["Alex Friedman", "Seth Pollack"]
7
7
  s.email = ['a.friedman07@gmail.com', 'teampollack@gmail.com']
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.files = `git ls-files`.split("\n")
10
10
  s.license = 'MIT'
11
11
  s.add_runtime_dependency 'rspec', '~> 3.1', '>= 3.1.0'
12
- s.add_runtime_dependency 'rest-client', '~> 1.7', '>= 1.7.3'
12
+ s.add_runtime_dependency 'rest-client', '~> 1.7', '>= 1.7.3' #version 1.7.3 fixes security vulnerability https://github.com/brooklynDev/airborne/issues/41
13
13
  s.add_runtime_dependency 'rack-test', '~> 0.6', '>= 0.6.2'
14
14
  s.add_runtime_dependency 'activesupport', '>= 3.0.0', '>= 3.0.0'
15
15
  s.add_development_dependency 'webmock', '~> 0'
@@ -1,5 +1,6 @@
1
1
  require 'rspec'
2
2
  require 'date'
3
+ require 'rack/utils'
3
4
 
4
5
  module Airborne
5
6
  class ExpectationError < StandardError; end
@@ -32,7 +33,7 @@ module Airborne
32
33
  end
33
34
 
34
35
  def expect_status(code)
35
- expect(response.code).to eq(code)
36
+ expect(response.code).to eq(resolve_status(code, response.code))
36
37
  end
37
38
 
38
39
  def expect_header(key, content)
@@ -224,5 +225,20 @@ module Airborne
224
225
  [String, Regexp, Float, Fixnum, Bignum, TrueClass, FalseClass, NilClass].include?(expectations.class)
225
226
  end
226
227
 
228
+ # Resolve a supplied status to the appropriate class for the returned
229
+ # status being tested. This helps reduce brittleness due to '200' != 200
230
+ # when for the purposes of testing a response it is the same thing.
231
+ #
232
+ # @param candidate
233
+ # @param authority
234
+ # @return [String]
235
+ def resolve_status(candidate, authority)
236
+ candidate = Rack::Utils::SYMBOL_TO_STATUS_CODE[candidate] if candidate.kind_of?(Symbol)
237
+ case authority
238
+ when String then candidate.to_s
239
+ when Fixnum then candidate.to_i
240
+ else candidate
241
+ end
242
+ end
227
243
  end
228
244
  end
@@ -12,4 +12,12 @@ describe 'expect_status' do
12
12
  get '/simple_get'
13
13
  expect{expect_status(123)}.to raise_error
14
14
  end
15
+
16
+ it 'should translate symbol codes to whatever is appropriate for the request' do
17
+ mock_get('simple_get')
18
+ get '/simple_get'
19
+ expect_status(:ok)
20
+ expect_status(200)
21
+ expect_status('200')
22
+ end
15
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airborne
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Friedman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-02 00:00:00.000000000 Z
12
+ date: 2015-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec