pact-provider-verifier 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|