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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +11 -0
- data/LICENSE.txt +2 -0
- data/README.md +6 -2
- data/example/Gemfile +3 -3
- data/lib/pact_broker.rb +6 -1
- data/lib/pact_broker/api.rb +8 -1
- data/lib/pact_broker/api/contracts/pacticipant_name_contract.rb +2 -4
- data/lib/pact_broker/api/contracts/put_pact_params_contract.rb +25 -32
- data/lib/pact_broker/api/contracts/request_validations.rb +5 -11
- data/lib/pact_broker/api/contracts/webhook_contract.rb +28 -15
- data/lib/pact_broker/api/decorators/versions_decorator.rb +41 -0
- data/lib/pact_broker/api/resources/base_resource.rb +7 -3
- data/lib/pact_broker/api/resources/latest_pact.rb +1 -1
- data/lib/pact_broker/api/resources/latest_pacts.rb +2 -2
- data/lib/pact_broker/api/resources/latest_provider_pacts.rb +1 -1
- data/lib/pact_broker/api/resources/pact.rb +2 -2
- data/lib/pact_broker/api/resources/pact_content_diff.rb +2 -5
- data/lib/pact_broker/api/resources/pact_versions.rb +1 -1
- data/lib/pact_broker/api/resources/pact_webhooks.rb +8 -5
- data/lib/pact_broker/api/resources/pacticipant.rb +1 -1
- data/lib/pact_broker/api/resources/pacticipants.rb +2 -2
- data/lib/pact_broker/api/resources/tag.rb +2 -2
- data/lib/pact_broker/api/resources/version.rb +1 -1
- data/lib/pact_broker/api/resources/versions.rb +34 -0
- data/lib/pact_broker/api/resources/webhook.rb +2 -2
- data/lib/pact_broker/api/resources/webhook_execution.rb +1 -1
- data/lib/pact_broker/domain/version.rb +4 -0
- data/lib/pact_broker/domain/webhook.rb +2 -0
- data/lib/pact_broker/locale/en.yml +9 -1
- data/lib/pact_broker/pacts/diff.rb +26 -27
- data/lib/pact_broker/repositories/pacticipant_repository.rb +7 -0
- data/lib/pact_broker/services/pacticipant_service.rb +4 -0
- data/lib/pact_broker/services/webhook_service.rb +2 -2
- data/lib/pact_broker/version.rb +1 -1
- data/pact_broker.gemspec +4 -6
- data/spec/features/get_versions_spec.rb +36 -0
- data/spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb +12 -19
- data/spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb +7 -9
- data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +44 -0
- data/spec/lib/pact_broker/api/decorators/webhook_decorator_spec.rb +35 -39
- data/spec/lib/pact_broker/api/decorators/webhook_execution_result_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/resources/pact_spec.rb +2 -3
- data/spec/lib/pact_broker/api/resources/pact_webhooks_spec.rb +3 -3
- data/spec/lib/pact_broker/api/resources/tag_spec.rb +2 -2
- data/spec/lib/pact_broker/api/resources/webhook_execution_spec.rb +1 -1
- data/spec/lib/pact_broker/api/resources/webhook_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/diff_spec.rb +1 -1
- 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
|
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",
|
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
|
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.
|
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-
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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
|