api-tester 0.3.1 → 1.0.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.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/README.md +2 -2
- data/api-tester.gemspec +1 -0
- data/changelog.txt +9 -0
- data/lib/api-tester/config.rb +9 -9
- data/lib/api-tester/definition/fields/array_field.rb +3 -3
- data/lib/api-tester/definition/fields/boolean_field.rb +2 -2
- data/lib/api-tester/definition/fields/email_field.rb +2 -2
- data/lib/api-tester/definition/fields/enum_field.rb +3 -3
- data/lib/api-tester/definition/fields/field.rb +2 -2
- data/lib/api-tester/definition/fields/number_field.rb +2 -2
- data/lib/api-tester/definition/fields/object_field.rb +3 -3
- data/lib/api-tester/definition/request.rb +20 -2
- data/lib/api-tester/modules/extra_verbs.rb +2 -1
- data/lib/api-tester/modules/format.rb +0 -1
- data/lib/api-tester/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cab5f4e6e78d9adfebc9ebd5f0a23cdcf75c43da
|
4
|
+
data.tar.gz: b6025cf9ed4dfff6290541313b8516fa1ae3918c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40442ed2938bea2d1aba00b9cac4a4fc619ac560fb30cffc211f37323c12d6ba78e6cac86aecd5ffcf5822e5d3237fbd1761fba80274ac6afeaa7d1dead9c98a
|
7
|
+
data.tar.gz: 1ff93796a71e53517a1af1e416d20576e85a63e503c304366a618640c694f3a25b44bf36461a12dd1e2885907525756dec6c1574e72d2b6f84328faaad072fb5
|
data/.rspec
CHANGED
data/README.md
CHANGED
@@ -102,7 +102,7 @@ values_array = field.negative_boundary_values
|
|
102
102
|
|
103
103
|
Define which modules you want to use through a config
|
104
104
|
```ruby
|
105
|
-
config = ApiTester::Config().with_module(Format
|
105
|
+
config = ApiTester::Config().with_module(Format)
|
106
106
|
```
|
107
107
|
|
108
108
|
Put them together and call go and off you go!
|
@@ -113,7 +113,7 @@ endpoint = ApiTester::Endpoint.new "Unused Name", "http://yourbase.com/api/endpo
|
|
113
113
|
endpoint.add_method ApiTester::SupportedVerbs::GET, expected_response, request
|
114
114
|
contract = Contract.new "API Name"
|
115
115
|
contract.add_endpoint endpoint
|
116
|
-
config = ApiTester::Config().with_module(Format
|
116
|
+
config = ApiTester::Config().with_module(Format)
|
117
117
|
expect(ApiTester.go(contract, config)).to be true
|
118
118
|
|
119
119
|
```
|
data/api-tester.gemspec
CHANGED
@@ -35,6 +35,7 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_development_dependency "rspec", "~> 3.0"
|
36
36
|
spec.add_development_dependency "webmock", "~> 3.4"
|
37
37
|
spec.add_development_dependency "pry", "~> 0.11"
|
38
|
+
spec.add_development_dependency "require_all", "~>2.0.0"
|
38
39
|
|
39
40
|
spec.add_runtime_dependency "rest-client", "~> 2.0"
|
40
41
|
spec.add_runtime_dependency "injection_vulnerability_library", "0.0.2"
|
data/changelog.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
1.0.0
|
2
|
+
|
3
|
+
- Switching to using named variables to make future changes less breaky
|
4
|
+
|
5
|
+
0.3.2
|
6
|
+
|
7
|
+
- Fixing some issues with how config adds modules
|
8
|
+
- Fixing README for same module issue as config
|
9
|
+
|
1
10
|
0.3.1
|
2
11
|
|
3
12
|
- Adding ability to change headers for request objects
|
data/lib/api-tester/config.rb
CHANGED
@@ -21,19 +21,19 @@ module ApiTester
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def with_default_modules
|
24
|
-
self.modules << Format
|
25
|
-
self.modules << GoodCase
|
26
|
-
self.modules << Typo
|
27
|
-
self.modules << UnusedFields
|
24
|
+
self.modules << Format
|
25
|
+
self.modules << GoodCase
|
26
|
+
self.modules << Typo
|
27
|
+
self.modules << UnusedFields
|
28
28
|
self
|
29
29
|
end
|
30
30
|
|
31
31
|
def with_all_modules
|
32
|
-
self.modules << Format
|
33
|
-
self.modules << ExtraVerbs
|
34
|
-
self.modules << GoodCase
|
35
|
-
self.modules << Typo
|
36
|
-
self.modules << UnusedFields
|
32
|
+
self.modules << Format
|
33
|
+
self.modules << ExtraVerbs
|
34
|
+
self.modules << GoodCase
|
35
|
+
self.modules << Typo
|
36
|
+
self.modules << UnusedFields
|
37
37
|
self
|
38
38
|
end
|
39
39
|
end
|
@@ -4,12 +4,12 @@ module ApiTester
|
|
4
4
|
class ArrayField < Field
|
5
5
|
attr_accessor :fields
|
6
6
|
|
7
|
-
def initialize name
|
8
|
-
super
|
7
|
+
def initialize name:
|
8
|
+
super name: name
|
9
9
|
self.fields = []
|
10
10
|
end
|
11
11
|
|
12
|
-
def with_field
|
12
|
+
def with_field newField
|
13
13
|
self.fields << newField
|
14
14
|
self
|
15
15
|
end
|
@@ -2,8 +2,8 @@ require 'api-tester/definition/fields/field'
|
|
2
2
|
|
3
3
|
module ApiTester
|
4
4
|
class BooleanField < Field
|
5
|
-
def initialize
|
6
|
-
super
|
5
|
+
def initialize name:, default_value: true
|
6
|
+
super name: name, default_value: default_value
|
7
7
|
end
|
8
8
|
|
9
9
|
def negative_boundary_values
|
@@ -2,8 +2,8 @@ require 'api-tester/definition/fields/field'
|
|
2
2
|
|
3
3
|
module ApiTester
|
4
4
|
class EmailField < Field
|
5
|
-
def initialize
|
6
|
-
super
|
5
|
+
def initialize name:, default_value: "test@test.com"
|
6
|
+
super name: name, default_value: default_value
|
7
7
|
end
|
8
8
|
|
9
9
|
def negative_boundary_values
|
@@ -4,11 +4,11 @@ module ApiTester
|
|
4
4
|
class EnumField < Field
|
5
5
|
attr_accessor :acceptable_values
|
6
6
|
|
7
|
-
def initialize name
|
7
|
+
def initialize name:, acceptable_values:, default_value: nil
|
8
8
|
if default_value
|
9
|
-
super name, default_value
|
9
|
+
super name: name, default_value: default_value
|
10
10
|
else
|
11
|
-
super name, acceptable_values[0]
|
11
|
+
super name: name, default_value: acceptable_values[0]
|
12
12
|
end
|
13
13
|
|
14
14
|
self.acceptable_values = acceptable_values
|
@@ -5,10 +5,10 @@ module ApiTester
|
|
5
5
|
attr_accessor :required
|
6
6
|
attr_accessor :is_seen
|
7
7
|
|
8
|
-
def initialize name, default_value
|
8
|
+
def initialize name:, required:false, default_value:"string"
|
9
9
|
self.name = name
|
10
10
|
self.default_value = default_value
|
11
|
-
self.required =
|
11
|
+
self.required = required
|
12
12
|
self.is_seen = 0
|
13
13
|
end
|
14
14
|
|
@@ -2,8 +2,8 @@ require 'api-tester/definition/fields/field'
|
|
2
2
|
|
3
3
|
module ApiTester
|
4
4
|
class NumberField < Field
|
5
|
-
def initialize
|
6
|
-
super
|
5
|
+
def initialize name:, default_value: 5
|
6
|
+
super name: name, default_value: default_value
|
7
7
|
end
|
8
8
|
|
9
9
|
def negative_boundary_values
|
@@ -4,12 +4,12 @@ module ApiTester
|
|
4
4
|
class ObjectField < Field
|
5
5
|
attr_accessor :fields
|
6
6
|
|
7
|
-
def initialize name
|
8
|
-
super
|
7
|
+
def initialize name:
|
8
|
+
super name: name
|
9
9
|
self.fields = []
|
10
10
|
end
|
11
11
|
|
12
|
-
def with_field
|
12
|
+
def with_field newField
|
13
13
|
self.fields << newField
|
14
14
|
self
|
15
15
|
end
|
@@ -3,11 +3,12 @@ require 'api-tester/definition/boundary_case'
|
|
3
3
|
module ApiTester
|
4
4
|
class Request
|
5
5
|
attr_accessor :definition
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :header_fields
|
7
7
|
attr_accessor :fields
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
self.fields = []
|
11
|
+
self.header_fields = []
|
11
12
|
end
|
12
13
|
|
13
14
|
def add_field(new_field)
|
@@ -15,6 +16,11 @@ module ApiTester
|
|
15
16
|
self
|
16
17
|
end
|
17
18
|
|
19
|
+
def add_header_field new_header
|
20
|
+
self.header_fields << new_header
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
18
24
|
def payload
|
19
25
|
response = Hash.new
|
20
26
|
self.fields.each do |field|
|
@@ -28,7 +34,19 @@ module ApiTester
|
|
28
34
|
end
|
29
35
|
|
30
36
|
def default_headers
|
31
|
-
self.
|
37
|
+
if self.header_fields != []
|
38
|
+
self.headers
|
39
|
+
else
|
40
|
+
{content_type: :json, accept: :json}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def headers
|
45
|
+
header_response = {}
|
46
|
+
self.header_fields.each do |header|
|
47
|
+
header_response[header.name] = header.default_value
|
48
|
+
end
|
49
|
+
header_response
|
32
50
|
end
|
33
51
|
|
34
52
|
def cases
|
@@ -7,8 +7,9 @@ module ApiTester
|
|
7
7
|
|
8
8
|
contract.endpoints.each do |endpoint|
|
9
9
|
extras = ApiTester::SupportedVerbs.all - endpoint.verbs
|
10
|
+
headers = endpoint.methods[0].request.default_headers
|
10
11
|
extras.each do |verb|
|
11
|
-
verb_case = BoundaryCase.new("Verb check with #{verb} for #{endpoint.name}", {},
|
12
|
+
verb_case = BoundaryCase.new("Verb check with #{verb} for #{endpoint.name}", {}, headers)
|
12
13
|
method = ApiTester::Method.new verb, ApiTester::Response.new, ApiTester::Request.new
|
13
14
|
response = endpoint.call method, verb_case.payload, verb_case.headers
|
14
15
|
test = VerbClass.new response, verb_case.payload, endpoint.not_allowed_response, endpoint.url, verb
|
data/lib/api-tester/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-tester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arane
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.11'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: require_all
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.0.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.0.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: rest-client
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|