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 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