pact-provider-verifier 1.1.1 → 1.1.2
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/CHANGELOG.md +6 -0
- data/lib/pact/provider_verifier/app.rb +1 -8
- data/lib/pact/provider_verifier/set_up_provider_state.rb +46 -16
- data/lib/pact/provider_verifier/version.rb +1 -1
- metadata +58 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6f803b67f6c2e40c3636186097eb862e53814af
|
4
|
+
data.tar.gz: eb081c6bb9e3d2710f63907a3351048793b8260e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f185f8a2311076f35701c7da298df0fe1daa75bc22470893e6b80d83b7346551785478af24c478be9ea113bd71a4c71bdc3e9b78b007d763148ef57d8e44e5b3
|
7
|
+
data.tar.gz: bdd2c52ee950a99b0aac25a1a0d2301fd450d9b08a4c9bdcd117820ae6e3e6d52de947cb0be04b88366292f2c1d6cffecbdb67300796ce525abd1e093c86be03
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@ Do this to generate your change history
|
|
2
2
|
|
3
3
|
git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
|
4
4
|
|
5
|
+
### 1.1.2 (02 June 2017)
|
6
|
+
* da958c0 - Only set up state if a provider-states-setup-url is provided. Add tests for SetUpProviderState. (Beth Skurrie, Fri Jun 2 14:31:27 2017 +1000)
|
7
|
+
* 36ef2eb - Remove .java, .class, .gitignore and .travis.yml files from package (Beth Skurrie, Fri Jun 2 10:32:55 2017 +1000)
|
8
|
+
* 7902674 - Add rake tasks to generate and upload release notes. (Beth Skurrie, Fri Jun 2 10:12:17 2017 +1000)
|
9
|
+
* 01e811e - Add integration specs for command (Beth Skurrie, Fri Jun 2 05:51:30 2017 +1000)
|
10
|
+
|
5
11
|
### 1.1.0 (01 June 2017)
|
6
12
|
* 7106832 - chore(docs): update docs for provider states URL (Matt Fellows, Fri May 26 22:45:09 2017 +1000)
|
7
13
|
* 8f787e6 - Add deprecation warning for --provider-states-url (Beth Skurrie, Fri May 26 20:51:48 2017 +1000)
|
@@ -27,18 +27,11 @@ module Pact
|
|
27
27
|
"#{@name} #{super.to_s}"
|
28
28
|
end
|
29
29
|
|
30
|
-
def get_pact_consumer_name pact_url
|
31
|
-
json = get_json(pact_url)
|
32
|
-
json['consumer']['name']
|
33
|
-
end
|
34
|
-
|
35
30
|
def verify_pacts
|
36
31
|
print_deprecation_note
|
37
32
|
pacts = @options.pact_urls.split(',')
|
38
33
|
proxy_pact_helper = File.expand_path(File.join(File.dirname(__FILE__), "pact_helper.rb"))
|
39
|
-
ENV['
|
40
|
-
ENV['PACT_BROKER_USERNAME'] = @options.broker_username if @options.broker_username
|
41
|
-
ENV['PACT_BROKER_PASSWORD'] = @options.broker_password if @options.broker_password
|
34
|
+
ENV['PROVIDER_STATES_SETUP_URL'] = @options.provider_states_setup_url
|
42
35
|
ENV['VERBOSE_LOGGING'] = @options.verbose if @options.verbose
|
43
36
|
provider_base_url = @options.provider_base_url
|
44
37
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
1
3
|
module Pact
|
2
4
|
module ProviderVerifier
|
3
5
|
|
@@ -5,35 +7,63 @@ module Pact
|
|
5
7
|
|
6
8
|
class SetUpProviderState
|
7
9
|
|
10
|
+
def initialize provider_state, consumer, options
|
11
|
+
@provider_state = provider_state
|
12
|
+
@consumer = consumer
|
13
|
+
@options = options
|
14
|
+
end
|
15
|
+
|
8
16
|
def self.call provider_state, consumer, options
|
9
|
-
|
10
|
-
|
11
|
-
end
|
17
|
+
new(provider_state, consumer, options).call
|
18
|
+
end
|
12
19
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
faraday.adapter Faraday.default_adapter
|
20
|
+
def call
|
21
|
+
if provider_states_setup_url.nil?
|
22
|
+
warn_if_provider_state_set
|
23
|
+
return
|
18
24
|
end
|
19
|
-
|
25
|
+
|
26
|
+
log_request
|
27
|
+
response = post_to_provider_state
|
28
|
+
check_for_error response
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
attr_reader :provider_state, :consumer
|
34
|
+
|
35
|
+
def post_to_provider_state
|
36
|
+
connection = Faraday.new(:url => provider_states_setup_url)
|
37
|
+
connection.post do |req|
|
20
38
|
req.headers["Content-Type"] = "application/json"
|
21
39
|
req.body = {consumer: consumer, state: provider_state }.to_json
|
22
40
|
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def provider_states_setup_url
|
44
|
+
ENV['PROVIDER_STATES_SETUP_URL']
|
45
|
+
end
|
46
|
+
|
47
|
+
def verbose?
|
48
|
+
ENV['VERBOSE_LOGGING']
|
49
|
+
end
|
23
50
|
|
24
|
-
|
51
|
+
def check_for_error response
|
25
52
|
if response.status >= 300
|
26
|
-
raise SetUpProviderStateError.new("Error setting up provider state '#{provider_state}' for consumer '#{consumer}' at #{provider_states_setup_url}. response status=#{response.status} response
|
53
|
+
raise SetUpProviderStateError.new("Error setting up provider state '#{provider_state}' for consumer '#{consumer}' at #{provider_states_setup_url}. response status=#{response.status} response body=#{response.body}")
|
27
54
|
end
|
28
|
-
|
29
55
|
end
|
30
56
|
|
31
|
-
def
|
32
|
-
|
57
|
+
def log_request
|
58
|
+
if verbose?
|
59
|
+
$stdout.puts "DEBUG: Setting up provider state '#{provider_state}' for consumer '#{consumer}' using provider state server at #{provider_states_setup_url}"
|
60
|
+
end
|
33
61
|
end
|
34
62
|
|
35
|
-
def
|
36
|
-
|
63
|
+
def warn_if_provider_state_set
|
64
|
+
if provider_state
|
65
|
+
$stderr.puts "WARN: Skipping set up for provider state '#{provider_state}' for consumer '#{consumer}' as there is no --provider-states-setup-url specified."
|
66
|
+
end
|
37
67
|
end
|
38
68
|
end
|
39
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact-provider-verifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Fellows
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -134,6 +134,62 @@ dependencies:
|
|
134
134
|
- - ">="
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: 10.4.2
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: sinatra
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
type: :development
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: sinatra-contrib
|
153
|
+
requirement: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
type: :development
|
159
|
+
prerelease: false
|
160
|
+
version_requirements: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: octokit
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '4.7'
|
172
|
+
type: :development
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '4.7'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: webmock
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '3.0'
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '3.0'
|
137
193
|
description: |-
|
138
194
|
A cross-platform Pact verification tool to validate API Providers.
|
139
195
|
Used in the pact-js-provider project to simplify development
|