api-tester 0.3.1 → 1.0.0

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: 9f452ab5e2f25081c381aa5dc6d7ccbdfdd6608a
4
- data.tar.gz: 7163a87ef8dc52d647c38c07d7fe2c1e4229c655
3
+ metadata.gz: cab5f4e6e78d9adfebc9ebd5f0a23cdcf75c43da
4
+ data.tar.gz: b6025cf9ed4dfff6290541313b8516fa1ae3918c
5
5
  SHA512:
6
- metadata.gz: 99de80ccecd3293437b1b994608288d57da394d096dc1ca828b47b4b416907dd2b7b32cf2441cf035a1142efc47de9fe55d921b63246c8624fdffcaafa9b2b68
7
- data.tar.gz: 18def5e09e3080fc1b6806cf2d98f497bd1cd228f4b5225c39144c325ad7a726d64aa2373a7628b0e11e3da13686681ad5e1ad46bfc1cff1c15e96cde3b18c6c
6
+ metadata.gz: 40442ed2938bea2d1aba00b9cac4a4fc619ac560fb30cffc211f37323c12d6ba78e6cac86aecd5ffcf5822e5d3237fbd1761fba80274ac6afeaa7d1dead9c98a
7
+ data.tar.gz: 1ff93796a71e53517a1af1e416d20576e85a63e503c304366a618640c694f3a25b44bf36461a12dd1e2885907525756dec6c1574e72d2b6f84328faaad072fb5
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
+ --require spec_helper
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.new)
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.new)
116
+ config = ApiTester::Config().with_module(Format)
117
117
  expect(ApiTester.go(contract, config)).to be true
118
118
 
119
119
  ```
@@ -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"
@@ -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
@@ -21,19 +21,19 @@ module ApiTester
21
21
  end
22
22
 
23
23
  def with_default_modules
24
- self.modules << Format.new
25
- self.modules << GoodCase.new
26
- self.modules << Typo.new
27
- self.modules << UnusedFields.new
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.new
33
- self.modules << ExtraVerbs.new
34
- self.modules << GoodCase.new
35
- self.modules << Typo.new
36
- self.modules << UnusedFields.new
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(name)
7
+ def initialize name:
8
+ super name: name
9
9
  self.fields = []
10
10
  end
11
11
 
12
- def with_field(newField)
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(name, default_value=true)
6
- super(name, default_value)
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(name, default_value="test@test.com")
6
- super(name, default_value)
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, acceptable_values, default_value=nil
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="string"
8
+ def initialize name:, required:false, default_value:"string"
9
9
  self.name = name
10
10
  self.default_value = default_value
11
- self.required = false
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(name, default_value=5)
6
- super(name, default_value)
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(name)
7
+ def initialize name:
8
+ super name: name
9
9
  self.fields = []
10
10
  end
11
11
 
12
- def with_field(newField)
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 :headers
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.headers || {content_type: :json, accept: :json}
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
@@ -15,7 +15,6 @@ module ApiTester
15
15
  end
16
16
  end
17
17
  end
18
-
19
18
  reports
20
19
  end
21
20
 
@@ -1,3 +1,3 @@
1
1
  module ApiTester
2
- VERSION = "0.3.1"
2
+ VERSION = "1.0.0"
3
3
  end
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.3.1
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-05-30 00:00:00.000000000 Z
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