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.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +228 -0
  3. data/lib/pact/cli/run_pact_verification.rb +23 -7
  4. data/lib/pact/cli/spec_criteria.rb +3 -0
  5. data/lib/pact/cli.rb +5 -0
  6. data/lib/pact/consumer/configuration/dsl.rb +0 -1
  7. data/lib/pact/consumer/consumer_contract_builder.rb +4 -0
  8. data/lib/pact/consumer/interaction_builder.rb +6 -0
  9. data/lib/pact/consumer/spec_hooks.rb +2 -2
  10. data/lib/pact/doc/sort_interactions.rb +2 -3
  11. data/lib/pact/hal/http_client.rb +11 -5
  12. data/lib/pact/hal/link.rb +50 -13
  13. data/lib/pact/hal/non_json_entity.rb +28 -0
  14. data/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb +94 -0
  15. data/lib/pact/pact_broker/notices.rb +34 -0
  16. data/lib/pact/pact_broker/pact_selection_description.rb +24 -0
  17. data/lib/pact/pact_broker.rb +10 -4
  18. data/lib/pact/provider/configuration/dsl.rb +6 -1
  19. data/lib/pact/provider/configuration/message_provider_dsl.rb +59 -0
  20. data/lib/pact/provider/configuration/pact_verification_from_broker.rb +37 -4
  21. data/lib/pact/provider/configuration/service_provider_dsl.rb +1 -1
  22. data/lib/pact/provider/help/content.rb +4 -4
  23. data/lib/pact/provider/help/pact_diff.rb +10 -34
  24. data/lib/pact/provider/help/write.rb +6 -7
  25. data/lib/pact/provider/pact_helper_locator.rb +0 -1
  26. data/lib/pact/provider/pact_source.rb +10 -1
  27. data/lib/pact/provider/pact_spec_runner.rb +24 -16
  28. data/lib/pact/provider/pact_uri.rb +8 -6
  29. data/lib/pact/provider/request.rb +1 -1
  30. data/lib/pact/provider/rspec/formatter_rspec_3.rb +21 -6
  31. data/lib/pact/provider/rspec/json_formatter.rb +100 -0
  32. data/lib/pact/provider/rspec/pact_broker_formatter.rb +1 -1
  33. data/lib/pact/provider/rspec.rb +17 -7
  34. data/lib/pact/provider/test_methods.rb +9 -3
  35. data/lib/pact/provider/verification_results/publish.rb +3 -0
  36. data/lib/pact/provider/verification_results/publish_all.rb +14 -1
  37. data/lib/pact/provider/verification_results/verification_result.rb +1 -4
  38. data/lib/pact/provider/world.rb +1 -1
  39. data/lib/pact/tasks/task_helper.rb +6 -1
  40. data/lib/pact/version.rb +1 -1
  41. data/pact.gemspec +11 -13
  42. metadata +59 -56
  43. 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.41.2
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: 2019-09-09 00:00:00.000000000 Z
15
+ date: 2020-09-12 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: randexp
18
+ name: rspec
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - "~>"
22
22
  - !ruby/object:Gem::Version
23
- version: 0.1.7
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.1.7
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
- - !ruby/object:Gem::Dependency
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: 1.8.5
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: '0'
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: '0'
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: 10.0.3
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: 10.0.3
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: '0'
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: '0'
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: appraisal
218
+ name: conventional-changelog
235
219
  requirement: !ruby/object:Gem::Requirement
236
220
  requirements:
237
221
  - - "~>"
238
222
  - !ruby/object:Gem::Version
239
- version: '2.2'
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: '2.2'
230
+ version: '1.3'
247
231
  - !ruby/object:Gem::Dependency
248
- name: conventional-changelog
232
+ name: bump
249
233
  requirement: !ruby/object:Gem::Requirement
250
234
  requirements:
251
235
  - - "~>"
252
236
  - !ruby/object:Gem::Version
253
- version: '1.3'
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: '1.3'
244
+ version: '0.5'
261
245
  - !ruby/object:Gem::Dependency
262
- name: bump
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.5'
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.5'
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/fetch_pending_pacts.rb
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
- rubyforge_project:
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