pact_broker 1.14.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
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