pact_broker 2.65.0 → 2.66.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.
- 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
|