pact_broker 1.14.0 → 1.15.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +11 -0
  4. data/LICENSE.txt +2 -0
  5. data/README.md +6 -2
  6. data/example/Gemfile +3 -3
  7. data/lib/pact_broker.rb +6 -1
  8. data/lib/pact_broker/api.rb +8 -1
  9. data/lib/pact_broker/api/contracts/pacticipant_name_contract.rb +2 -4
  10. data/lib/pact_broker/api/contracts/put_pact_params_contract.rb +25 -32
  11. data/lib/pact_broker/api/contracts/request_validations.rb +5 -11
  12. data/lib/pact_broker/api/contracts/webhook_contract.rb +28 -15
  13. data/lib/pact_broker/api/decorators/versions_decorator.rb +41 -0
  14. data/lib/pact_broker/api/resources/base_resource.rb +7 -3
  15. data/lib/pact_broker/api/resources/latest_pact.rb +1 -1
  16. data/lib/pact_broker/api/resources/latest_pacts.rb +2 -2
  17. data/lib/pact_broker/api/resources/latest_provider_pacts.rb +1 -1
  18. data/lib/pact_broker/api/resources/pact.rb +2 -2
  19. data/lib/pact_broker/api/resources/pact_content_diff.rb +2 -5
  20. data/lib/pact_broker/api/resources/pact_versions.rb +1 -1
  21. data/lib/pact_broker/api/resources/pact_webhooks.rb +8 -5
  22. data/lib/pact_broker/api/resources/pacticipant.rb +1 -1
  23. data/lib/pact_broker/api/resources/pacticipants.rb +2 -2
  24. data/lib/pact_broker/api/resources/tag.rb +2 -2
  25. data/lib/pact_broker/api/resources/version.rb +1 -1
  26. data/lib/pact_broker/api/resources/versions.rb +34 -0
  27. data/lib/pact_broker/api/resources/webhook.rb +2 -2
  28. data/lib/pact_broker/api/resources/webhook_execution.rb +1 -1
  29. data/lib/pact_broker/domain/version.rb +4 -0
  30. data/lib/pact_broker/domain/webhook.rb +2 -0
  31. data/lib/pact_broker/locale/en.yml +9 -1
  32. data/lib/pact_broker/pacts/diff.rb +26 -27
  33. data/lib/pact_broker/repositories/pacticipant_repository.rb +7 -0
  34. data/lib/pact_broker/services/pacticipant_service.rb +4 -0
  35. data/lib/pact_broker/services/webhook_service.rb +2 -2
  36. data/lib/pact_broker/version.rb +1 -1
  37. data/pact_broker.gemspec +4 -6
  38. data/spec/features/get_versions_spec.rb +36 -0
  39. data/spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb +12 -19
  40. data/spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb +7 -9
  41. data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +2 -2
  42. data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +1 -1
  43. data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +1 -1
  44. data/spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb +2 -2
  45. data/spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb +1 -1
  46. data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +1 -1
  47. data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +1 -1
  48. data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +44 -0
  49. data/spec/lib/pact_broker/api/decorators/webhook_decorator_spec.rb +35 -39
  50. data/spec/lib/pact_broker/api/decorators/webhook_execution_result_decorator_spec.rb +2 -2
  51. data/spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb +2 -2
  52. data/spec/lib/pact_broker/api/resources/pact_spec.rb +2 -3
  53. data/spec/lib/pact_broker/api/resources/pact_webhooks_spec.rb +3 -3
  54. data/spec/lib/pact_broker/api/resources/tag_spec.rb +2 -2
  55. data/spec/lib/pact_broker/api/resources/webhook_execution_spec.rb +1 -1
  56. data/spec/lib/pact_broker/api/resources/webhook_spec.rb +1 -1
  57. data/spec/lib/pact_broker/pacts/diff_spec.rb +1 -1
  58. metadata +28 -22
@@ -16,7 +16,7 @@ module PactBroker
16
16
  let(:webhook) { instance_double(PactBroker::Domain::Webhook, uuid: 'some-uuid')}
17
17
  let(:json) {
18
18
  WebhookExecutionResultDecorator.new(webhook_execution_result)
19
- .to_json(base_url: 'http://example.org', webhook: webhook)
19
+ .to_json(user_options: { base_url: 'http://example.org', webhook: webhook })
20
20
  }
21
21
 
22
22
  let(:subject) { JSON.parse(json, symbolize_names: true)}
@@ -66,4 +66,4 @@ module PactBroker
66
66
  end
67
67
  end
68
68
  end
69
- end
69
+ end
@@ -20,7 +20,7 @@ module PactBroker
20
20
 
21
21
  describe "to_json" do
22
22
 
23
- let(:json) { WebhooksDecorator.new(webhooks).to_json(decorator_context) }
23
+ let(:json) { WebhooksDecorator.new(webhooks).to_json(user_options: decorator_context) }
24
24
 
25
25
  subject { JSON.parse(json, symbolize_names: true) }
26
26
 
@@ -43,4 +43,4 @@ module PactBroker
43
43
  end
44
44
  end
45
45
  end
46
- end
46
+ end
@@ -31,13 +31,12 @@ module PactBroker::Api
31
31
  end
32
32
 
33
33
  it "returns an error message" do
34
- expect(JSON.parse(response.body)["error"]).to match /Error parsing JSON/
34
+ expect(JSON.parse(response.body)["error"]).to match(/Error parsing JSON/)
35
35
  end
36
36
  end
37
37
 
38
38
  context "with validation errors" do
39
-
40
- let(:errors) { double(:errors, full_messages: ['messages']) }
39
+ let(:errors) { double(:errors, messages: ['messages']) }
41
40
 
42
41
  before do
43
42
  allow_any_instance_of(Contracts::PutPactParamsContract).to receive(:validate).and_return(false)
@@ -40,7 +40,7 @@ module PactBroker::Api
40
40
 
41
41
  it "generates a JSON body" do
42
42
  expect(Decorators::WebhooksDecorator).to receive(:new).with(webhooks)
43
- expect(decorator).to receive(:to_json).with(instance_of(Decorators::DecoratorContext))
43
+ expect(decorator).to receive(:to_json).with(user_options: instance_of(Decorators::DecoratorContext))
44
44
  subject
45
45
  end
46
46
 
@@ -61,7 +61,7 @@ module PactBroker::Api
61
61
  let(:next_uuid) { '123k2nvkkwjrwk34' }
62
62
 
63
63
  let(:valid) { true }
64
- let(:errors) { double("errors", any?: !valid, full_messages: ['messages']) }
64
+ let(:errors) { double("errors", empty?: valid, messages: ['messages']) }
65
65
 
66
66
  before do
67
67
  allow(webhook_service).to receive(:create).and_return(saved_webhook)
@@ -171,7 +171,7 @@ module PactBroker::Api
171
171
  it "generates the JSON response body" do
172
172
  allow(Decorators::WebhookDecorator).to receive(:new).and_call_original #Deserialise
173
173
  expect(Decorators::WebhookDecorator).to receive(:new).with(saved_webhook).and_return(decorator) #Serialize
174
- expect(decorator).to receive(:to_json).with(base_url: 'http://example.org')
174
+ expect(decorator).to receive(:to_json).with(user_options: { base_url: 'http://example.org' })
175
175
  subject
176
176
  end
177
177
 
@@ -130,7 +130,7 @@ module PactBroker
130
130
  end
131
131
 
132
132
  it "renders the tag" do
133
- expect(tag_decorator).to receive(:to_json).with(base_url: "http://example.org")
133
+ expect(tag_decorator).to receive(:to_json).with(user_options: { base_url: "http://example.org" })
134
134
  subject
135
135
  expect(last_response.body).to eq tag_json
136
136
  end
@@ -155,7 +155,7 @@ module PactBroker
155
155
  end
156
156
 
157
157
  it "renders the tag" do
158
- expect(tag_decorator).to receive(:to_json).with(base_url: "http://example.org")
158
+ expect(tag_decorator).to receive(:to_json).with(user_options: { base_url: "http://example.org" })
159
159
  subject
160
160
  expect(last_response.body).to eq tag_json
161
161
  end
@@ -43,7 +43,7 @@ module PactBroker
43
43
  end
44
44
 
45
45
  it "generates a JSON response body for the execution result" do
46
- expect(decorator).to receive(:to_json).with(base_url: 'http://example.org', webhook: webhook)
46
+ expect(decorator).to receive(:to_json).with(user_options: { base_url: 'http://example.org', webhook: webhook })
47
47
  subject
48
48
  end
49
49
 
@@ -44,7 +44,7 @@ module PactBroker::Api
44
44
 
45
45
  it "generates a JSON representation of the webhook" do
46
46
  expect(Decorators::WebhookDecorator).to receive(:new).with(webhook)
47
- expect(decorator).to receive(:to_json).with(base_url: 'http://example.org')
47
+ expect(decorator).to receive(:to_json).with(user_options: { base_url: 'http://example.org'})
48
48
  subject
49
49
  end
50
50
 
@@ -29,7 +29,7 @@ module PactBroker
29
29
  allow(DateHelper).to receive(:local_date_in_words).and_return("a date")
30
30
  end
31
31
 
32
- subject { Diff.new.process(pact_params, base_url: 'http://example.org') }
32
+ subject { Diff.new.process(pact_params.merge(base_url: 'http://example.org')) }
33
33
 
34
34
  context "when there is a previous distinct version" do
35
35
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-01-30 00:00:00.000000000 Z
13
+ date: 2017-03-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -46,28 +46,42 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 1.0.0.beta2
49
+ version: '1.1'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 1.0.0.beta2
56
+ version: '1.1'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: reform
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '1.0'
63
+ version: 2.2.0
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '1.0'
70
+ version: 2.2.0
71
+ - !ruby/object:Gem::Dependency
72
+ name: dry-validation
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.10.5
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.10.5
71
85
  - !ruby/object:Gem::Dependency
72
86
  name: sequel
73
87
  requirement: !ruby/object:Gem::Requirement
@@ -200,20 +214,6 @@ dependencies:
200
214
  - - ">="
201
215
  - !ruby/object:Gem::Version
202
216
  version: '0'
203
- - !ruby/object:Gem::Dependency
204
- name: trailblazer
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: 0.3.0
210
- type: :runtime
211
- prerelease: false
212
- version_requirements: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: 0.3.0
217
217
  - !ruby/object:Gem::Dependency
218
218
  name: sqlite3
219
219
  requirement: !ruby/object:Gem::Requirement
@@ -290,14 +290,14 @@ dependencies:
290
290
  requirements:
291
291
  - - "~>"
292
292
  - !ruby/object:Gem::Version
293
- version: 2.0.0
293
+ version: '2.3'
294
294
  type: :development
295
295
  prerelease: false
296
296
  version_requirements: !ruby/object:Gem::Requirement
297
297
  requirements:
298
298
  - - "~>"
299
299
  - !ruby/object:Gem::Version
300
- version: 2.0.0
300
+ version: '2.3'
301
301
  - !ruby/object:Gem::Dependency
302
302
  name: rspec
303
303
  requirement: !ruby/object:Gem::Requirement
@@ -425,6 +425,7 @@ files:
425
425
  - lib/pact_broker/api/decorators/tag_decorator.rb
426
426
  - lib/pact_broker/api/decorators/timestamps.rb
427
427
  - lib/pact_broker/api/decorators/version_decorator.rb
428
+ - lib/pact_broker/api/decorators/versions_decorator.rb
428
429
  - lib/pact_broker/api/decorators/webhook_decorator.rb
429
430
  - lib/pact_broker/api/decorators/webhook_execution_result_decorator.rb
430
431
  - lib/pact_broker/api/decorators/webhook_request_decorator.rb
@@ -448,6 +449,7 @@ files:
448
449
  - lib/pact_broker/api/resources/relationships.rb
449
450
  - lib/pact_broker/api/resources/tag.rb
450
451
  - lib/pact_broker/api/resources/version.rb
452
+ - lib/pact_broker/api/resources/versions.rb
451
453
  - lib/pact_broker/api/resources/webhook.rb
452
454
  - lib/pact_broker/api/resources/webhook_execution.rb
453
455
  - lib/pact_broker/api/resources/webhook_resource_methods.rb
@@ -577,6 +579,7 @@ files:
577
579
  - spec/features/get_previous_distinct_version.rb
578
580
  - spec/features/get_provider_pacts_spec.rb
579
581
  - spec/features/get_version.rb
582
+ - spec/features/get_versions_spec.rb
580
583
  - spec/features/merge_pact_spec.rb
581
584
  - spec/features/publish_not_a_pact_spec.rb
582
585
  - spec/features/publish_pact_spec.rb
@@ -607,6 +610,7 @@ files:
607
610
  - spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
608
611
  - spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
609
612
  - spec/lib/pact_broker/api/decorators/version_decorator_spec.rb
613
+ - spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb
610
614
  - spec/lib/pact_broker/api/decorators/webhook_decorator_spec.rb
611
615
  - spec/lib/pact_broker/api/decorators/webhook_execution_result_decorator_spec.rb
612
616
  - spec/lib/pact_broker/api/decorators/webhook_request_decorator_spec.rb
@@ -737,6 +741,7 @@ test_files:
737
741
  - spec/features/get_previous_distinct_version.rb
738
742
  - spec/features/get_provider_pacts_spec.rb
739
743
  - spec/features/get_version.rb
744
+ - spec/features/get_versions_spec.rb
740
745
  - spec/features/merge_pact_spec.rb
741
746
  - spec/features/publish_not_a_pact_spec.rb
742
747
  - spec/features/publish_pact_spec.rb
@@ -767,6 +772,7 @@ test_files:
767
772
  - spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
768
773
  - spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
769
774
  - spec/lib/pact_broker/api/decorators/version_decorator_spec.rb
775
+ - spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb
770
776
  - spec/lib/pact_broker/api/decorators/webhook_decorator_spec.rb
771
777
  - spec/lib/pact_broker/api/decorators/webhook_execution_result_decorator_spec.rb
772
778
  - spec/lib/pact_broker/api/decorators/webhook_request_decorator_spec.rb