cucumber-api 0.4 → 0.5

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: 4ee88961920f3ccbf02d62d5ea0c7343d2f483f0
4
- data.tar.gz: 5967edd044ec97f27368cf5a4c4a187004508fc5
3
+ metadata.gz: 5ab71054d422abc7b72e2d09c7adbf2676cd8257
4
+ data.tar.gz: e91f8ac5a16ab3ee55ccf3fdaa8eb0e7e00e8ba5
5
5
  SHA512:
6
- metadata.gz: b8c3e01637543cf39ad990443fb82759520b4412d5da5d6c45e1a73036d8401930af194f67e3600ea131bc10753ee27b40137213aaabc54915c6b571e349d8ca
7
- data.tar.gz: b1d4cbd828bbb829706ce0124e0a9e500f42cc2e1cc309b660e898797cd747f81c4806a20afd32d0ad8267cd87989dc9af22b2760dd5fb85f07be544a86aa5bd
6
+ metadata.gz: bd01e8b2d5fa19c1f38c04516a44dcc8350eda852ed6f82961fe7e4449b05edd90c3226117f75185afed747aa1e4d209e0beec817bdf40c827069cb698972fba
7
+ data.tar.gz: 30059e7bfc54c7eaf8742c0a7a851cc1ad1319208a311f0de57bd9947cd03a16c9d70299129db17e53eee44272bfccc2b7f74e63d250f97573ba78774a681e37
data/.travis.yml CHANGED
@@ -1,2 +1,14 @@
1
1
  language: ruby
2
- script: "cucumber -p verbose"
2
+ sudo: false
3
+
4
+ rvm:
5
+ - 2.3
6
+ - 2.4
7
+ - ruby-head
8
+
9
+ matrix:
10
+ allow_failures:
11
+ - ruby-head
12
+
13
+ script: "cucumber -p verbose"
14
+
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Build Status](https://travis-ci.org/hidroh/cucumber-api.svg?branch=master)](https://travis-ci.org/hidroh/cucumber-api) [![Gem Version](https://badge.fury.io/rb/cucumber-api.svg)](http://badge.fury.io/rb/cucumber-api) [![Dependency Status](https://gemnasium.com/hidroh/cucumber-api.svg)](https://gemnasium.com/hidroh/cucumber-api)
3
3
  [![Code Climate](https://codeclimate.com/github/hidroh/cucumber-api/badges/gpa.svg)](https://codeclimate.com/github/hidroh/cucumber-api) [![Total Downloads](http://ruby-gem-downloads-badge.herokuapp.com/cucumber-api?type=total)](https://rubygems.org/gems/cucumber-api)
4
4
 
5
- API validator in BBD style with [Cucumber](https://cukes.info/). **cucumber-api** lets one validate public APIs JSON response in blazingly fast time.
5
+ API validator in BDD style with [Cucumber](https://cukes.info/). **cucumber-api** lets one validate public APIs JSON response in blazingly fast time.
6
6
 
7
7
  Inspired by [cucumber-api-steps](https://github.com/jayzes/cucumber-api-steps).
8
8
 
data/cucumber-api.gemspec CHANGED
@@ -13,11 +13,12 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{cucumber-api allows API JSON response validation and verification in BDD style.}
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.require_paths = ["lib"]
16
- s.required_ruby_version = '>= 1.9.3'
16
+ s.required_ruby_version = '>= 2.3.0'
17
17
  s.license = 'Apache-2.0'
18
18
 
19
- s.add_dependency('cucumber', '~> 2.0')
20
- s.add_dependency('jsonpath', '~> 0.5')
21
- s.add_dependency('rest-client', '~> 1.8')
22
- s.add_dependency('json-schema', '~> 2.5')
23
- end
19
+ s.add_dependency('addressable', '2.5')
20
+ s.add_dependency('cucumber', '~> 3.1.0')
21
+ s.add_dependency('jsonpath', '~> 0.8')
22
+ s.add_dependency('rest-client', '~> 2.0.2')
23
+ s.add_dependency('json-schema', '~> 2.8.0')
24
+ end
@@ -0,0 +1,21 @@
1
+ module CucumberApi
2
+ module Helpers
3
+ # Bind grabbed values into placeholders in given URL
4
+ # Ex: http://example.com?id={id} with {id => 1} becomes http://example.com?id=1
5
+ # @param url [String] parameterized URL with placeholders
6
+ # @return [String] binded URL or original URL if no placeholders
7
+ def resolve url
8
+ url.gsub!(/\{([a-zA-Z0-9_]+)\}/) do |s|
9
+ s.gsub!(/[\{\}]/, '')
10
+ if instance_variable_defined?("@#{s}")
11
+ instance_variable_get("@#{s}")
12
+ else
13
+ raise 'Did you forget to "grab" ' + s + '?'
14
+ end
15
+ end
16
+ url
17
+ end
18
+ end
19
+ end
20
+
21
+ World(CucumberApi::Helpers)
@@ -6,9 +6,6 @@ module CucumberApi
6
6
 
7
7
  # Extension of {RestClient::Response} with support for JSON path traversal and validation
8
8
  module Response
9
-
10
- include RestClient::Response
11
-
12
9
  # Create a Response with JSON path support
13
10
  # @param response [RestClient::Response] original response
14
11
  # @return [Response] self
@@ -115,5 +112,6 @@ module CucumberApi
115
112
  ''
116
113
  end
117
114
  end
115
+ RestClient::Response.send(:include, self)
118
116
  end
119
117
  end
@@ -1,4 +1,5 @@
1
1
  require 'cucumber-api/response'
2
+ require 'cucumber-api/helpers'
2
3
  require 'rest-client'
3
4
  require 'json-schema'
4
5
 
@@ -174,20 +175,3 @@ Then(/^the JSON response should have "([^"]*)" of type \
174
175
  (numeric|string|boolean|numeric_string) and value "([^"]*)"$/) do |json_path, type, value|
175
176
  @response.get_as_type_and_check_value json_path, type, resolve(value)
176
177
  end
177
-
178
- # Bind grabbed values into placeholders in given URL
179
- # Ex: http://example.com?id={id} with {id => 1} becomes http://example.com?id=1
180
- # @param url [String] parameterized URL with placeholders
181
- # @return [String] binded URL or original URL if no placeholders
182
- def resolve url
183
- url.gsub!(/\{([a-zA-Z0-9_]+)\}/) do |s|
184
- s.gsub!(/[\{\}]/, '')
185
- if instance_variable_defined?("@#{s}")
186
- instance_variable_get("@#{s}")
187
- else
188
- raise 'Did you forget to "grab" ' + s + '?'
189
- end
190
- end
191
- url
192
- end
193
-
@@ -1,3 +1,3 @@
1
1
  module CucumberApi
2
- VERSION = "0.4"
3
- end
2
+ VERSION = "0.5"
3
+ end
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ha Duy Trung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-03 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: addressable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: '2.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: '2.5'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: cucumber
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '2.0'
33
+ version: 3.1.0
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '2.0'
40
+ version: 3.1.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: jsonpath
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0.5'
47
+ version: '0.8'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '0.5'
54
+ version: '0.8'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rest-client
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '1.8'
61
+ version: 2.0.2
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '1.8'
68
+ version: 2.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: json-schema
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '2.5'
75
+ version: 2.8.0
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '2.5'
82
+ version: 2.8.0
69
83
  description: cucumber-api allows API JSON response validation and verification in
70
84
  BDD style.
71
85
  email:
@@ -86,6 +100,7 @@ files:
86
100
  - features/schemas/topstories.json
87
101
  - features/support/env.rb
88
102
  - lib/cucumber-api.rb
103
+ - lib/cucumber-api/helpers.rb
89
104
  - lib/cucumber-api/response.rb
90
105
  - lib/cucumber-api/steps.rb
91
106
  - lib/cucumber-api/version.rb
@@ -101,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
116
  requirements:
102
117
  - - ">="
103
118
  - !ruby/object:Gem::Version
104
- version: 1.9.3
119
+ version: 2.3.0
105
120
  required_rubygems_version: !ruby/object:Gem::Requirement
106
121
  requirements:
107
122
  - - ">="