pact 1.41.2 → 1.54.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 +5 -5
- data/CHANGELOG.md +228 -0
- data/lib/pact/cli/run_pact_verification.rb +23 -7
- data/lib/pact/cli/spec_criteria.rb +3 -0
- data/lib/pact/cli.rb +5 -0
- data/lib/pact/consumer/configuration/dsl.rb +0 -1
- data/lib/pact/consumer/consumer_contract_builder.rb +4 -0
- data/lib/pact/consumer/interaction_builder.rb +6 -0
- data/lib/pact/consumer/spec_hooks.rb +2 -2
- data/lib/pact/doc/sort_interactions.rb +2 -3
- data/lib/pact/hal/http_client.rb +11 -5
- data/lib/pact/hal/link.rb +50 -13
- data/lib/pact/hal/non_json_entity.rb +28 -0
- data/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb +94 -0
- data/lib/pact/pact_broker/notices.rb +34 -0
- data/lib/pact/pact_broker/pact_selection_description.rb +24 -0
- data/lib/pact/pact_broker.rb +10 -4
- data/lib/pact/provider/configuration/dsl.rb +6 -1
- data/lib/pact/provider/configuration/message_provider_dsl.rb +59 -0
- data/lib/pact/provider/configuration/pact_verification_from_broker.rb +37 -4
- data/lib/pact/provider/configuration/service_provider_dsl.rb +1 -1
- data/lib/pact/provider/help/content.rb +4 -4
- data/lib/pact/provider/help/pact_diff.rb +10 -34
- data/lib/pact/provider/help/write.rb +6 -7
- data/lib/pact/provider/pact_helper_locator.rb +0 -1
- data/lib/pact/provider/pact_source.rb +10 -1
- data/lib/pact/provider/pact_spec_runner.rb +24 -16
- data/lib/pact/provider/pact_uri.rb +8 -6
- data/lib/pact/provider/request.rb +1 -1
- data/lib/pact/provider/rspec/formatter_rspec_3.rb +21 -6
- data/lib/pact/provider/rspec/json_formatter.rb +100 -0
- data/lib/pact/provider/rspec/pact_broker_formatter.rb +1 -1
- data/lib/pact/provider/rspec.rb +17 -7
- data/lib/pact/provider/test_methods.rb +9 -3
- data/lib/pact/provider/verification_results/publish.rb +3 -0
- data/lib/pact/provider/verification_results/publish_all.rb +14 -1
- data/lib/pact/provider/verification_results/verification_result.rb +1 -4
- data/lib/pact/provider/world.rb +1 -1
- data/lib/pact/tasks/task_helper.rb +6 -1
- data/lib/pact/version.rb +1 -1
- data/pact.gemspec +11 -13
- metadata +59 -56
- data/lib/pact/pact_broker/fetch_pending_pacts.rb +0 -58
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pact
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.54.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- James Fraser
|
|
@@ -12,36 +12,22 @@ authors:
|
|
|
12
12
|
autorequire:
|
|
13
13
|
bindir: bin
|
|
14
14
|
cert_chain: []
|
|
15
|
-
date:
|
|
15
|
+
date: 2020-09-12 00:00:00.000000000 Z
|
|
16
16
|
dependencies:
|
|
17
17
|
- !ruby/object:Gem::Dependency
|
|
18
|
-
name:
|
|
18
|
+
name: rspec
|
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
|
20
20
|
requirements:
|
|
21
21
|
- - "~>"
|
|
22
22
|
- !ruby/object:Gem::Version
|
|
23
|
-
version: 0
|
|
23
|
+
version: '3.0'
|
|
24
24
|
type: :runtime
|
|
25
25
|
prerelease: false
|
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
|
27
27
|
requirements:
|
|
28
28
|
- - "~>"
|
|
29
29
|
- !ruby/object:Gem::Version
|
|
30
|
-
version: 0
|
|
31
|
-
- !ruby/object:Gem::Dependency
|
|
32
|
-
name: rspec
|
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
|
34
|
-
requirements:
|
|
35
|
-
- - ">="
|
|
36
|
-
- !ruby/object:Gem::Version
|
|
37
|
-
version: '2.14'
|
|
38
|
-
type: :runtime
|
|
39
|
-
prerelease: false
|
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
requirements:
|
|
42
|
-
- - ">="
|
|
43
|
-
- !ruby/object:Gem::Version
|
|
44
|
-
version: '2.14'
|
|
30
|
+
version: '3.0'
|
|
45
31
|
- !ruby/object:Gem::Dependency
|
|
46
32
|
name: rack-test
|
|
47
33
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -68,42 +54,34 @@ dependencies:
|
|
|
68
54
|
requirements:
|
|
69
55
|
- - ">="
|
|
70
56
|
- !ruby/object:Gem::Version
|
|
71
|
-
version: '0'
|
|
57
|
+
version: '0.20'
|
|
58
|
+
- - "<"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '2.0'
|
|
72
61
|
type: :runtime
|
|
73
62
|
prerelease: false
|
|
74
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
75
64
|
requirements:
|
|
76
65
|
- - ">="
|
|
77
66
|
- !ruby/object:Gem::Version
|
|
78
|
-
version: '0'
|
|
79
|
-
-
|
|
80
|
-
name: json
|
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
|
82
|
-
requirements:
|
|
83
|
-
- - ">"
|
|
84
|
-
- !ruby/object:Gem::Version
|
|
85
|
-
version: 1.8.5
|
|
86
|
-
type: :runtime
|
|
87
|
-
prerelease: false
|
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
requirements:
|
|
90
|
-
- - ">"
|
|
67
|
+
version: '0.20'
|
|
68
|
+
- - "<"
|
|
91
69
|
- !ruby/object:Gem::Version
|
|
92
|
-
version:
|
|
70
|
+
version: '2.0'
|
|
93
71
|
- !ruby/object:Gem::Dependency
|
|
94
72
|
name: webrick
|
|
95
73
|
requirement: !ruby/object:Gem::Requirement
|
|
96
74
|
requirements:
|
|
97
|
-
- - "
|
|
75
|
+
- - "~>"
|
|
98
76
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: '
|
|
77
|
+
version: '1.3'
|
|
100
78
|
type: :runtime
|
|
101
79
|
prerelease: false
|
|
102
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
103
81
|
requirements:
|
|
104
|
-
- - "
|
|
82
|
+
- - "~>"
|
|
105
83
|
- !ruby/object:Gem::Version
|
|
106
|
-
version: '
|
|
84
|
+
version: '1.3'
|
|
107
85
|
- !ruby/object:Gem::Dependency
|
|
108
86
|
name: term-ansicolor
|
|
109
87
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -139,6 +117,9 @@ dependencies:
|
|
|
139
117
|
- - "~>"
|
|
140
118
|
- !ruby/object:Gem::Version
|
|
141
119
|
version: '3.0'
|
|
120
|
+
- - ">="
|
|
121
|
+
- !ruby/object:Gem::Version
|
|
122
|
+
version: 3.3.1
|
|
142
123
|
type: :runtime
|
|
143
124
|
prerelease: false
|
|
144
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -146,20 +127,23 @@ dependencies:
|
|
|
146
127
|
- - "~>"
|
|
147
128
|
- !ruby/object:Gem::Version
|
|
148
129
|
version: '3.0'
|
|
130
|
+
- - ">="
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: 3.3.1
|
|
149
133
|
- !ruby/object:Gem::Dependency
|
|
150
134
|
name: rake
|
|
151
135
|
requirement: !ruby/object:Gem::Requirement
|
|
152
136
|
requirements:
|
|
153
137
|
- - "~>"
|
|
154
138
|
- !ruby/object:Gem::Version
|
|
155
|
-
version:
|
|
139
|
+
version: '13.0'
|
|
156
140
|
type: :development
|
|
157
141
|
prerelease: false
|
|
158
142
|
version_requirements: !ruby/object:Gem::Requirement
|
|
159
143
|
requirements:
|
|
160
144
|
- - "~>"
|
|
161
145
|
- !ruby/object:Gem::Version
|
|
162
|
-
version:
|
|
146
|
+
version: '13.0'
|
|
163
147
|
- !ruby/object:Gem::Dependency
|
|
164
148
|
name: webmock
|
|
165
149
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -206,16 +190,16 @@ dependencies:
|
|
|
206
190
|
name: activesupport
|
|
207
191
|
requirement: !ruby/object:Gem::Requirement
|
|
208
192
|
requirements:
|
|
209
|
-
- - "
|
|
193
|
+
- - "~>"
|
|
210
194
|
- !ruby/object:Gem::Version
|
|
211
|
-
version: '
|
|
195
|
+
version: '5.2'
|
|
212
196
|
type: :development
|
|
213
197
|
prerelease: false
|
|
214
198
|
version_requirements: !ruby/object:Gem::Requirement
|
|
215
199
|
requirements:
|
|
216
|
-
- - "
|
|
200
|
+
- - "~>"
|
|
217
201
|
- !ruby/object:Gem::Version
|
|
218
|
-
version: '
|
|
202
|
+
version: '5.2'
|
|
219
203
|
- !ruby/object:Gem::Dependency
|
|
220
204
|
name: faraday
|
|
221
205
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -231,47 +215,61 @@ dependencies:
|
|
|
231
215
|
- !ruby/object:Gem::Version
|
|
232
216
|
version: '0.13'
|
|
233
217
|
- !ruby/object:Gem::Dependency
|
|
234
|
-
name:
|
|
218
|
+
name: conventional-changelog
|
|
235
219
|
requirement: !ruby/object:Gem::Requirement
|
|
236
220
|
requirements:
|
|
237
221
|
- - "~>"
|
|
238
222
|
- !ruby/object:Gem::Version
|
|
239
|
-
version: '
|
|
223
|
+
version: '1.3'
|
|
240
224
|
type: :development
|
|
241
225
|
prerelease: false
|
|
242
226
|
version_requirements: !ruby/object:Gem::Requirement
|
|
243
227
|
requirements:
|
|
244
228
|
- - "~>"
|
|
245
229
|
- !ruby/object:Gem::Version
|
|
246
|
-
version: '
|
|
230
|
+
version: '1.3'
|
|
247
231
|
- !ruby/object:Gem::Dependency
|
|
248
|
-
name:
|
|
232
|
+
name: bump
|
|
249
233
|
requirement: !ruby/object:Gem::Requirement
|
|
250
234
|
requirements:
|
|
251
235
|
- - "~>"
|
|
252
236
|
- !ruby/object:Gem::Version
|
|
253
|
-
version: '
|
|
237
|
+
version: '0.5'
|
|
254
238
|
type: :development
|
|
255
239
|
prerelease: false
|
|
256
240
|
version_requirements: !ruby/object:Gem::Requirement
|
|
257
241
|
requirements:
|
|
258
242
|
- - "~>"
|
|
259
243
|
- !ruby/object:Gem::Version
|
|
260
|
-
version: '
|
|
244
|
+
version: '0.5'
|
|
261
245
|
- !ruby/object:Gem::Dependency
|
|
262
|
-
name:
|
|
246
|
+
name: pact-message
|
|
263
247
|
requirement: !ruby/object:Gem::Requirement
|
|
264
248
|
requirements:
|
|
265
249
|
- - "~>"
|
|
266
250
|
- !ruby/object:Gem::Version
|
|
267
|
-
version: '0.
|
|
251
|
+
version: '0.6'
|
|
268
252
|
type: :development
|
|
269
253
|
prerelease: false
|
|
270
254
|
version_requirements: !ruby/object:Gem::Requirement
|
|
271
255
|
requirements:
|
|
272
256
|
- - "~>"
|
|
273
257
|
- !ruby/object:Gem::Version
|
|
274
|
-
version: '0.
|
|
258
|
+
version: '0.6'
|
|
259
|
+
- !ruby/object:Gem::Dependency
|
|
260
|
+
name: rspec-its
|
|
261
|
+
requirement: !ruby/object:Gem::Requirement
|
|
262
|
+
requirements:
|
|
263
|
+
- - "~>"
|
|
264
|
+
- !ruby/object:Gem::Version
|
|
265
|
+
version: '1.3'
|
|
266
|
+
type: :development
|
|
267
|
+
prerelease: false
|
|
268
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
269
|
+
requirements:
|
|
270
|
+
- - "~>"
|
|
271
|
+
- !ruby/object:Gem::Version
|
|
272
|
+
version: '1.3'
|
|
275
273
|
description: Enables consumer driven contract testing, providing a mock service and
|
|
276
274
|
DSL for the consumer project, and interaction playback and verification for the
|
|
277
275
|
service provider project.
|
|
@@ -322,14 +320,18 @@ files:
|
|
|
322
320
|
- lib/pact/hal/entity.rb
|
|
323
321
|
- lib/pact/hal/http_client.rb
|
|
324
322
|
- lib/pact/hal/link.rb
|
|
323
|
+
- lib/pact/hal/non_json_entity.rb
|
|
325
324
|
- lib/pact/pact_broker.rb
|
|
325
|
+
- lib/pact/pact_broker/fetch_pact_uris_for_verification.rb
|
|
326
326
|
- lib/pact/pact_broker/fetch_pacts.rb
|
|
327
|
-
- lib/pact/pact_broker/
|
|
327
|
+
- lib/pact/pact_broker/notices.rb
|
|
328
|
+
- lib/pact/pact_broker/pact_selection_description.rb
|
|
328
329
|
- lib/pact/project_root.rb
|
|
329
330
|
- lib/pact/provider.rb
|
|
330
331
|
- lib/pact/provider/configuration.rb
|
|
331
332
|
- lib/pact/provider/configuration/configuration_extension.rb
|
|
332
333
|
- lib/pact/provider/configuration/dsl.rb
|
|
334
|
+
- lib/pact/provider/configuration/message_provider_dsl.rb
|
|
333
335
|
- lib/pact/provider/configuration/pact_verification.rb
|
|
334
336
|
- lib/pact/provider/configuration/pact_verification_from_broker.rb
|
|
335
337
|
- lib/pact/provider/configuration/service_provider_config.rb
|
|
@@ -353,6 +355,7 @@ files:
|
|
|
353
355
|
- lib/pact/provider/rspec/custom_options_file
|
|
354
356
|
- lib/pact/provider/rspec/formatter_rspec_2.rb
|
|
355
357
|
- lib/pact/provider/rspec/formatter_rspec_3.rb
|
|
358
|
+
- lib/pact/provider/rspec/json_formatter.rb
|
|
356
359
|
- lib/pact/provider/rspec/matchers.rb
|
|
357
360
|
- lib/pact/provider/rspec/pact_broker_formatter.rb
|
|
358
361
|
- lib/pact/provider/state/provider_state.rb
|
|
@@ -381,6 +384,7 @@ homepage: https://github.com/pact-foundation/pact-ruby
|
|
|
381
384
|
licenses:
|
|
382
385
|
- MIT
|
|
383
386
|
metadata:
|
|
387
|
+
changelog_uri: https://github.com/pact-foundation/pact-ruby/blob/master/CHANGELOG.md
|
|
384
388
|
source_code_uri: https://github.com/pact-foundation/pact-ruby
|
|
385
389
|
bug_tracker_uri: https://github.com/pact-foundation/pact-ruby/issues
|
|
386
390
|
documentation_uri: https://github.com/pact-foundation/pact-ruby/blob/master/README.md
|
|
@@ -399,8 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
399
403
|
- !ruby/object:Gem::Version
|
|
400
404
|
version: '0'
|
|
401
405
|
requirements: []
|
|
402
|
-
|
|
403
|
-
rubygems_version: 2.6.14.3
|
|
406
|
+
rubygems_version: 3.1.4
|
|
404
407
|
signing_key:
|
|
405
408
|
specification_version: 4
|
|
406
409
|
summary: Enables consumer driven contract testing, providing a mock service and DSL
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
require 'pact/hal/entity'
|
|
2
|
-
require 'pact/hal/http_client'
|
|
3
|
-
require 'pact/provider/pact_uri'
|
|
4
|
-
require 'pact/errors'
|
|
5
|
-
|
|
6
|
-
module Pact
|
|
7
|
-
module PactBroker
|
|
8
|
-
class FetchPendingPacts
|
|
9
|
-
attr_reader :provider, :tags, :broker_base_url, :http_client_options, :http_client, :index_entity
|
|
10
|
-
|
|
11
|
-
PENDING_PROVIDER_RELATION = 'beta:pending-provider-pacts'.freeze
|
|
12
|
-
WIP_PROVIDER_RELATION = 'beta:wip-provider-pacts'.freeze # deprecated
|
|
13
|
-
PACTS = 'pacts'.freeze
|
|
14
|
-
PB_PACTS = 'pb:pacts'.freeze
|
|
15
|
-
HREF = 'href'.freeze
|
|
16
|
-
|
|
17
|
-
def initialize(provider, broker_base_url, http_client_options)
|
|
18
|
-
@provider = provider
|
|
19
|
-
@http_client_options = http_client_options
|
|
20
|
-
@broker_base_url = broker_base_url
|
|
21
|
-
@http_client = Pact::Hal::HttpClient.new(http_client_options)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def self.call(provider, broker_base_url, http_client_options)
|
|
25
|
-
new(provider, broker_base_url, http_client_options).call
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def call
|
|
29
|
-
if index.success?
|
|
30
|
-
pending_pacts_for_provider
|
|
31
|
-
else
|
|
32
|
-
raise Pact::Error.new("Error retrieving #{broker_base_url} status=#{index_entity.response.code} #{index_entity.response.raw_body}")
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
private
|
|
37
|
-
|
|
38
|
-
def index
|
|
39
|
-
@index_entity ||= Pact::Hal::Link.new({ "href" => broker_base_url }, http_client).get.assert_success!
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def pending_pacts_for_provider
|
|
43
|
-
link = index_entity._link(WIP_PROVIDER_RELATION, PENDING_PROVIDER_RELATION)
|
|
44
|
-
if link
|
|
45
|
-
get_pact_urls(link.expand(provider: provider).get)
|
|
46
|
-
else
|
|
47
|
-
[]
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def get_pact_urls(link_by_provider)
|
|
52
|
-
link_by_provider.fetch(PB_PACTS, PACTS).collect do |pact|
|
|
53
|
-
Pact::Provider::PactURI.new(pact[HREF], http_client_options)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|