pact_broker 2.65.0 → 2.66.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/db/ddl_statements/latest_triggered_webhooks.rb +66 -0
- data/db/migrations/20180119_update_latest_triggered_webhooks.rb +5 -39
- data/db/migrations/20200930_update_latest_triggered_webhooks.rb +15 -0
- data/db/migrations/migration_helper.rb +10 -2
- data/lib/pact_broker/api/decorators/decorator_context.rb +2 -2
- data/lib/pact_broker/api/decorators/pagination_links.rb +34 -0
- data/lib/pact_broker/api/decorators/versions_decorator.rb +5 -1
- data/lib/pact_broker/api/pact_broker_urls.rb +8 -0
- data/lib/pact_broker/api/resources/index.rb +1 -1
- data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +11 -1
- data/lib/pact_broker/api/resources/versions.rb +12 -1
- data/lib/pact_broker/db/clean.rb +100 -43
- data/lib/pact_broker/doc/views/pacticipant/versions.markdown +9 -0
- data/lib/pact_broker/domain/pacticipant.rb +4 -0
- data/lib/pact_broker/domain/tag.rb +2 -0
- data/lib/pact_broker/domain/version.rb +1 -0
- data/lib/pact_broker/feature_toggle.rb +8 -4
- data/lib/pact_broker/matrix/service.rb +3 -0
- data/lib/pact_broker/pacticipants/repository.rb +6 -5
- data/lib/pact_broker/pacticipants/service.rb +5 -18
- data/lib/pact_broker/pacts/latest_tagged_pact_publications.rb +15 -1
- data/lib/pact_broker/tags/repository.rb +2 -5
- data/lib/pact_broker/test/test_data_builder.rb +22 -2
- data/lib/pact_broker/ui/views/matrix/show.haml +8 -0
- data/lib/pact_broker/version.rb +1 -1
- data/spec/features/get_versions_spec.rb +8 -0
- data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +14 -9
- data/spec/lib/pact_broker/api/resources/default_base_resource_spec.rb +10 -4
- data/spec/lib/pact_broker/db/clean_spec.rb +72 -4
- data/spec/lib/pact_broker/feature_toggle_spec.rb +9 -1
- data/spec/lib/pact_broker/pacticipants/repository_spec.rb +8 -1
- data/spec/lib/pact_broker/pacts/latest_tagged_pact_publications_spec.rb +99 -0
- data/spec/lib/pact_broker/webhooks/repository_spec.rb +20 -0
- metadata +8 -2
@@ -7,7 +7,9 @@ module PactBroker
|
|
7
7
|
allow(ENV).to receive(:[]).and_call_original
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
let(:ignore_env) { false }
|
11
|
+
|
12
|
+
subject { FeatureToggle.enabled?(:foo, ignore_env) }
|
11
13
|
|
12
14
|
context "when RACK_ENV is not production" do
|
13
15
|
before do
|
@@ -28,6 +30,12 @@ module PactBroker
|
|
28
30
|
end
|
29
31
|
|
30
32
|
it { is_expected.to be true }
|
33
|
+
|
34
|
+
context "when ignore env is set" do
|
35
|
+
let(:ignore_env) { true }
|
36
|
+
|
37
|
+
it { is_expected.to be false }
|
38
|
+
end
|
31
39
|
end
|
32
40
|
end
|
33
41
|
|
@@ -154,8 +154,15 @@ module PactBroker
|
|
154
154
|
it "returns all the application versions for the given consumer" do
|
155
155
|
expect(subject.collect(&:number)).to eq ["4.5.6", "1.2.3"]
|
156
156
|
end
|
157
|
-
end
|
158
157
|
|
158
|
+
context "with pagination options" do
|
159
|
+
subject { Repository.new.find_all_pacticipant_versions_in_reverse_order "Foo", page_number: 1, page_size: 1 }
|
160
|
+
|
161
|
+
it "paginates the query" do
|
162
|
+
expect(subject.collect(&:number)).to eq ["4.5.6"]
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
159
166
|
end
|
160
167
|
end
|
161
168
|
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'pact_broker/pacts/latest_tagged_pact_publications'
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module Pacts
|
5
|
+
describe LatestTaggedPactPublications do
|
6
|
+
subject { LatestTaggedPactPublications.for_selector(selector).order(:consumer_name, :consumer_version_order) }
|
7
|
+
|
8
|
+
context "for latest for a specified tag" do
|
9
|
+
before do
|
10
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
11
|
+
.create_consumer_version_tag("dev")
|
12
|
+
.create_pact_with_hierarchy("Foo", "2", "Bar")
|
13
|
+
.create_consumer_version_tag("dev")
|
14
|
+
.create_pact_with_hierarchy("Foo", "3", "Bar")
|
15
|
+
.create_consumer_version_tag("prod")
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:selector) { PactBroker::Matrix::UnresolvedSelector.new(tag: "dev", latest: true) }
|
19
|
+
|
20
|
+
it "returns matching rows" do
|
21
|
+
expect(subject.count).to eq 1
|
22
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "for latest for a specified tag and consumer" do
|
27
|
+
before do
|
28
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
29
|
+
.create_consumer_version_tag("dev")
|
30
|
+
.create_pact_with_hierarchy("Foo", "2", "Bar")
|
31
|
+
.create_consumer_version_tag("dev")
|
32
|
+
.create_pact_with_hierarchy("Foo2", "3", "Bar")
|
33
|
+
.create_consumer_version_tag("dev")
|
34
|
+
end
|
35
|
+
|
36
|
+
let(:selector) { PactBroker::Matrix::UnresolvedSelector.new(tag: "dev", latest: true, pacticipant_name: "Foo") }
|
37
|
+
|
38
|
+
it "returns matching rows" do
|
39
|
+
expect(subject.count).to eq 1
|
40
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "for all for a specified tag" do
|
45
|
+
before do
|
46
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
47
|
+
.create_consumer_version_tag("dev")
|
48
|
+
.create_pact_with_hierarchy("Foo", "2", "Bar")
|
49
|
+
.create_consumer_version_tag("dev")
|
50
|
+
.create_pact_with_hierarchy("Foo", "3", "Bar")
|
51
|
+
.create_consumer_version_tag("prod")
|
52
|
+
end
|
53
|
+
|
54
|
+
let(:selector) { PactBroker::Matrix::UnresolvedSelector.new(tag: "dev") }
|
55
|
+
|
56
|
+
it "returns matching rows (which are only the latest)" do
|
57
|
+
expect(subject.count).to eq 1
|
58
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "for latest for any tag" do
|
63
|
+
before do
|
64
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
65
|
+
.create_consumer_version_tag("dev")
|
66
|
+
.create_pact_with_hierarchy("Foo", "2", "Bar")
|
67
|
+
.create_consumer_version_tag("dev")
|
68
|
+
.create_pact_with_hierarchy("Foo", "3", "Bar")
|
69
|
+
.create_consumer_version_tag("prod")
|
70
|
+
end
|
71
|
+
|
72
|
+
let(:selector) { PactBroker::Matrix::UnresolvedSelector.new(tag: true, latest: true) }
|
73
|
+
|
74
|
+
it "returns matching rows" do
|
75
|
+
expect(subject.count).to eq 2
|
76
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "for latest for any tag with a max age" do
|
81
|
+
before do
|
82
|
+
td.subtract_days(7)
|
83
|
+
.create_pact_with_hierarchy("Foo", "1", "Bar")
|
84
|
+
.create_consumer_version_tag("prod")
|
85
|
+
.add_days(4)
|
86
|
+
.create_pact_with_hierarchy("Foo", "2", "Bar")
|
87
|
+
.create_consumer_version_tag("dev")
|
88
|
+
end
|
89
|
+
|
90
|
+
let(:selector) { PactBroker::Matrix::UnresolvedSelector.new(tag: true, latest: true, max_age: 3) }
|
91
|
+
|
92
|
+
it "returns matching rows" do
|
93
|
+
expect(subject.count).to eq 1
|
94
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -563,6 +563,26 @@ module PactBroker
|
|
563
563
|
expect(subject.collect(&:trigger_uuid).sort).to eq ['332', '638']
|
564
564
|
end
|
565
565
|
|
566
|
+
context "when a webhook has been triggered by different events" do
|
567
|
+
before do
|
568
|
+
td.create_pact_with_hierarchy("Foo2", "1.0.0", "Bar2")
|
569
|
+
.create_webhook
|
570
|
+
.create_triggered_webhook(trigger_uuid: '333', event_name: 'foo')
|
571
|
+
.create_triggered_webhook(trigger_uuid: '555', event_name: 'foo')
|
572
|
+
.create_webhook_execution
|
573
|
+
.create_triggered_webhook(trigger_uuid: '444', event_name: 'bar')
|
574
|
+
.create_triggered_webhook(trigger_uuid: '777', event_name: 'bar')
|
575
|
+
.create_webhook_execution
|
576
|
+
.create_triggered_webhook(trigger_uuid: '111', event_name: nil)
|
577
|
+
.create_triggered_webhook(trigger_uuid: '888', event_name: nil)
|
578
|
+
.create_webhook_execution
|
579
|
+
end
|
580
|
+
|
581
|
+
it "returns one for each event" do
|
582
|
+
expect(subject.collect(&:trigger_uuid).sort).to eq ['555', '777', '888']
|
583
|
+
end
|
584
|
+
end
|
585
|
+
|
566
586
|
context "when there are two 'latest' triggered webhooks at the same time" do
|
567
587
|
before do
|
568
588
|
td.create_triggered_webhook(trigger_uuid: '888', created_at: DateTime.new(2018))
|
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: 2.
|
4
|
+
version: 2.66.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: 2020-
|
13
|
+
date: 2020-10-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -402,6 +402,7 @@ files:
|
|
402
402
|
- db/ddl_statements/latest_pact_consumer_version_orders.rb
|
403
403
|
- db/ddl_statements/latest_pact_publications_by_consumer_versions.rb
|
404
404
|
- db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb
|
405
|
+
- db/ddl_statements/latest_triggered_webhooks.rb
|
405
406
|
- db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb
|
406
407
|
- db/ddl_statements/latest_verification_ids_for_pact_versions.rb
|
407
408
|
- db/migrations/000001_create_pacticipant_table.rb
|
@@ -518,6 +519,7 @@ files:
|
|
518
519
|
- db/migrations/20200318_add_created_at_to_latest_pact_publications.rb
|
519
520
|
- db/migrations/20200319_add_created_at_to_latest_verifications.rb
|
520
521
|
- db/migrations/20200922_add_event_to_triggered_webhook.rb
|
522
|
+
- db/migrations/20200930_update_latest_triggered_webhooks.rb
|
521
523
|
- db/migrations/migration_helper.rb
|
522
524
|
- db/test/backwards_compatibility/.rspec
|
523
525
|
- db/test/backwards_compatibility/Appraisals
|
@@ -612,6 +614,7 @@ files:
|
|
612
614
|
- lib/pact_broker/api/decorators/pact_webhooks_status_decorator.rb
|
613
615
|
- lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb
|
614
616
|
- lib/pact_broker/api/decorators/pacticipant_decorator.rb
|
617
|
+
- lib/pact_broker/api/decorators/pagination_links.rb
|
615
618
|
- lib/pact_broker/api/decorators/provider_pacts_decorator.rb
|
616
619
|
- lib/pact_broker/api/decorators/reason_decorator.rb
|
617
620
|
- lib/pact_broker/api/decorators/relationships_csv_decorator.rb
|
@@ -764,6 +767,7 @@ files:
|
|
764
767
|
- lib/pact_broker/doc/views/pact/tag-prod-version.markdown
|
765
768
|
- lib/pact_broker/doc/views/pact/tag-version.markdown
|
766
769
|
- lib/pact_broker/doc/views/pacticipant/can-i-deploy-badge.markdown
|
770
|
+
- lib/pact_broker/doc/views/pacticipant/versions.markdown
|
767
771
|
- lib/pact_broker/doc/views/pending-provider-pacts.markdown
|
768
772
|
- lib/pact_broker/doc/views/provider-pacts-for-verification.markdown
|
769
773
|
- lib/pact_broker/doc/views/provider.markdown
|
@@ -1259,6 +1263,7 @@ files:
|
|
1259
1263
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
1260
1264
|
- spec/lib/pact_broker/pacts/generate_interaction_sha_spec.rb
|
1261
1265
|
- spec/lib/pact_broker/pacts/generate_sha_spec.rb
|
1266
|
+
- spec/lib/pact_broker/pacts/latest_tagged_pact_publications_spec.rb
|
1262
1267
|
- spec/lib/pact_broker/pacts/merger_spec.rb
|
1263
1268
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
1264
1269
|
- spec/lib/pact_broker/pacts/pact_publication_spec.rb
|
@@ -1649,6 +1654,7 @@ test_files:
|
|
1649
1654
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
1650
1655
|
- spec/lib/pact_broker/pacts/generate_interaction_sha_spec.rb
|
1651
1656
|
- spec/lib/pact_broker/pacts/generate_sha_spec.rb
|
1657
|
+
- spec/lib/pact_broker/pacts/latest_tagged_pact_publications_spec.rb
|
1652
1658
|
- spec/lib/pact_broker/pacts/merger_spec.rb
|
1653
1659
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
1654
1660
|
- spec/lib/pact_broker/pacts/pact_publication_spec.rb
|