airborne 0.2.10 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/airborne.gemspec +2 -2
- data/lib/airborne/request_expectations.rb +19 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a17018ee960799abaabe77e8e53cd7933b1c256
|
4
|
+
data.tar.gz: 5ffee8561f16813ed64b2d58feabc054a0c7e27a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 391e4cc6d0a84acbd86b88aeece81812a29e6beb045512973d2b7fb7d65dcbc8cd2a79ce338252e9a4ea91e3214d7ef5fd93d4c2fb88cfea92076e97cbd1f196
|
7
|
+
data.tar.gz: 37babe87aaa640f11b246b8b7177baa2e230a1fc1189d6d6bb447a6ba49b6396be9ebd50c46c0befbdce51dc3253d452833467d6caa7886f260fdc1abc5a8c2f
|
data/airborne.gemspec
CHANGED
@@ -2,11 +2,11 @@ require 'date'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'airborne'
|
5
|
-
s.version = '0.2.
|
5
|
+
s.version = '0.2.11'
|
6
6
|
s.date = Date.today.to_s
|
7
7
|
s.summary = 'RSpec driven API testing framework'
|
8
8
|
s.authors = ['Alex Friedman', 'Seth Pollack']
|
9
|
-
s.email = ['a.friedman07@gmail.com', '
|
9
|
+
s.email = ['a.friedman07@gmail.com', 'seth@sethpollack.net']
|
10
10
|
s.require_paths = ['lib']
|
11
11
|
s.files = `git ls-files`.split("\n")
|
12
12
|
s.license = 'MIT'
|
@@ -103,7 +103,7 @@ module Airborne
|
|
103
103
|
|
104
104
|
actual = convert_to_date(actual) if expected == :date
|
105
105
|
|
106
|
-
return expect_type(expected, actual
|
106
|
+
return expect_type(expected, actual) if expected.is_a?(Symbol)
|
107
107
|
return expected.call(actual) if expected.is_a?(Proc)
|
108
108
|
|
109
109
|
keys = []
|
@@ -120,14 +120,12 @@ module Airborne
|
|
120
120
|
next expect_json_types_impl(type, value) if hash?(type)
|
121
121
|
next type.call(value) if type.is_a?(Proc)
|
122
122
|
|
123
|
-
val_class = value.class
|
124
|
-
|
125
123
|
type_string = type.to_s
|
126
124
|
|
127
125
|
if type_string.include?('array_of') && !(type_string.include?('or_null') && value.nil?)
|
128
|
-
check_array_types(value,
|
126
|
+
check_array_types(value, prop, type)
|
129
127
|
else
|
130
|
-
expect_type(type,
|
128
|
+
expect_type(type, value, prop)
|
131
129
|
end
|
132
130
|
end
|
133
131
|
end
|
@@ -168,13 +166,13 @@ module Airborne
|
|
168
166
|
end
|
169
167
|
end
|
170
168
|
|
171
|
-
def expect_type(expected_type,
|
169
|
+
def expect_type(expected_type, value, prop_name = nil)
|
172
170
|
fail ExpectationError, "Expected type #{expected_type}\nis an invalid type" if @mapper[expected_type].nil?
|
173
171
|
|
174
172
|
insert = prop_name.nil? ? '' : "#{prop_name} to be of type"
|
175
|
-
message = "Expected #{insert} #{expected_type}\n got #{
|
173
|
+
message = "Expected #{insert} #{expected_type}\n got #{value.class} instead"
|
176
174
|
|
177
|
-
expect(@mapper[expected_type].
|
175
|
+
expect(@mapper[expected_type].any?{|type| value.is_a?(type)}).to eq(true), message
|
178
176
|
end
|
179
177
|
|
180
178
|
def convert_to_date(value)
|
@@ -184,10 +182,10 @@ module Airborne
|
|
184
182
|
end
|
185
183
|
end
|
186
184
|
|
187
|
-
def check_array_types(value,
|
188
|
-
expect_array(
|
185
|
+
def check_array_types(value, prop_name, expected_type)
|
186
|
+
expect_array(value, prop_name, expected_type)
|
189
187
|
value.each do |val|
|
190
|
-
expect_type(expected_type, val
|
188
|
+
expect_type(expected_type, val, prop_name)
|
191
189
|
end
|
192
190
|
end
|
193
191
|
|
@@ -199,8 +197,8 @@ module Airborne
|
|
199
197
|
hash.is_a?(Hash) || hash.is_a?(Airborne::OptionalHashTypeExpectations)
|
200
198
|
end
|
201
199
|
|
202
|
-
def expect_array(
|
203
|
-
expect(
|
200
|
+
def expect_array(value, prop_name, expected_type)
|
201
|
+
expect(value.class).to eq(Array), "Expected #{prop_name}\n to be of type #{expected_type}\n got #{value.class} instead"
|
204
202
|
end
|
205
203
|
|
206
204
|
def convert_expectations_for_json_sizes(old_expectations)
|
@@ -230,18 +228,18 @@ module Airborne
|
|
230
228
|
end
|
231
229
|
end
|
232
230
|
|
233
|
-
def property?(
|
234
|
-
[String, Regexp, Float,
|
231
|
+
def property?(expectation)
|
232
|
+
[String, Regexp, Float, Integer, TrueClass, FalseClass, NilClass, Array].any?{|type| expectation.is_a?(type)}
|
235
233
|
end
|
236
234
|
|
237
235
|
def get_mapper
|
238
236
|
base_mapper = {
|
239
|
-
integer:
|
240
|
-
array_of_integers:
|
241
|
-
int:
|
242
|
-
array_of_ints:
|
243
|
-
float: [Float,
|
244
|
-
array_of_floats: [Float,
|
237
|
+
integer: [Integer],
|
238
|
+
array_of_integers: [Integer],
|
239
|
+
int: [Integer],
|
240
|
+
array_of_ints: [Integer],
|
241
|
+
float: [Float, Integer],
|
242
|
+
array_of_floats: [Float, Integer],
|
245
243
|
string: [String],
|
246
244
|
array_of_strings: [String],
|
247
245
|
boolean: [TrueClass, FalseClass],
|
@@ -283,13 +281,5 @@ module Airborne
|
|
283
281
|
def match_expected?
|
284
282
|
Airborne.configuration.match_expected?
|
285
283
|
end
|
286
|
-
|
287
|
-
def integer_types
|
288
|
-
if 0.class == Integer
|
289
|
-
[Integer]
|
290
|
-
else
|
291
|
-
[Fixnum, Bignum]
|
292
|
-
end
|
293
|
-
end
|
294
284
|
end
|
295
285
|
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.2.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Friedman
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
description:
|
111
111
|
email:
|
112
112
|
- a.friedman07@gmail.com
|
113
|
-
-
|
113
|
+
- seth@sethpollack.net
|
114
114
|
executables: []
|
115
115
|
extensions: []
|
116
116
|
extra_rdoc_files: []
|