pact_broker 2.80.0 → 2.81.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -2
- data/CHANGELOG.md +21 -0
- data/db/ddl_statements/latest_verifications_for_pact_versions.rb +28 -0
- data/db/migrations/20210711_add_consumer_version_order_to_pact_publication.rb +12 -0
- data/db/migrations/20210712_add_interaction_count_to_pact_versions.rb +8 -0
- data/lib/db.rb +4 -0
- data/lib/pact_broker/api.rb +8 -10
- data/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb +25 -5
- data/lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb +0 -1
- data/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator.rb +24 -0
- data/lib/pact_broker/api/resources/dashboard.rb +4 -1
- data/lib/pact_broker/api/resources/deployed_versions_for_version_and_environment.rb +3 -7
- data/lib/pact_broker/api/resources/index.rb +10 -12
- data/lib/pact_broker/api/resources/latest_provider_pacts.rb +1 -1
- data/lib/pact_broker/api/resources/pagination_methods.rb +14 -0
- data/lib/pact_broker/api/resources/tag.rb +14 -0
- data/lib/pact_broker/configuration.rb +4 -1
- data/lib/pact_broker/db/data_migrations/set_consumer_version_order_for_pact_publications.rb +28 -0
- data/lib/pact_broker/db/data_migrations/set_interactions_counts.rb +41 -0
- data/lib/pact_broker/db/migrate_data.rb +2 -0
- data/lib/pact_broker/db/seed_example_data.rb +5 -0
- data/lib/pact_broker/deployments/deployed_version_service.rb +13 -9
- data/lib/pact_broker/domain/verification.rb +40 -0
- data/lib/pact_broker/domain/version.rb +4 -0
- data/lib/pact_broker/index/service.rb +4 -5
- data/lib/pact_broker/integrations/integration.rb +27 -6
- data/lib/pact_broker/logging.rb +10 -0
- data/lib/pact_broker/matrix/unresolved_selector.rb +1 -1
- data/lib/pact_broker/metrics/service.rb +17 -0
- data/lib/pact_broker/pacts/all_pact_publications.rb +4 -2
- data/lib/pact_broker/pacts/content.rb +2 -2
- data/lib/pact_broker/pacts/metadata.rb +11 -5
- data/lib/pact_broker/pacts/pact_publication.rb +41 -6
- data/lib/pact_broker/pacts/pact_publication_dataset_module.rb +55 -11
- data/lib/pact_broker/pacts/pact_publication_selector_dataset_module.rb +20 -0
- data/lib/pact_broker/pacts/pact_version.rb +14 -15
- data/lib/pact_broker/pacts/pacts_for_verification_repository.rb +86 -31
- data/lib/pact_broker/pacts/parse.rb +1 -0
- data/lib/pact_broker/pacts/repository.rb +51 -41
- data/lib/pact_broker/pacts/selector.rb +18 -2
- data/lib/pact_broker/pacts/service.rb +13 -22
- data/lib/pact_broker/pacts/verifiable_pact_messages.rb +11 -0
- data/lib/pact_broker/repositories/helpers.rb +4 -0
- data/lib/pact_broker/repositories/scopes.rb +15 -0
- data/lib/pact_broker/test/test_data_builder.rb +2 -1
- data/lib/pact_broker/ui/helpers/matrix_helper.rb +1 -0
- data/lib/pact_broker/ui/views/index/show-with-tags.haml +1 -1
- data/lib/pact_broker/ui/views/matrix/show.haml +2 -0
- data/lib/pact_broker/verifications/latest_verification_for_pact_version.rb +2 -2
- data/lib/pact_broker/verifications/repository.rb +9 -10
- data/lib/pact_broker/version.rb +1 -1
- data/public/javascripts/matrix.js +3 -0
- data/spec/features/create_tag_spec.rb +10 -0
- data/spec/features/execute_webhook_spec.rb +1 -3
- data/spec/features/get_integrations_spec.rb +2 -2
- data/spec/features/get_provider_pacts_for_verification_spec.rb +5 -3
- data/spec/features/metadata_spec.rb +66 -0
- data/spec/features/publish_verification_results_and_version_spec.rb +70 -0
- data/spec/fixtures/approvals/get_provider_pacts_for_verification.approved.json +2 -2
- data/spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_combinations_spec.rb +9 -0
- data/spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb +15 -0
- data/spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb +12 -0
- data/spec/lib/pact_broker/api/resources/dashboard_spec.rb +23 -2
- data/spec/lib/pact_broker/api/resources/latest_provider_pacts_spec.rb +3 -3
- data/spec/lib/pact_broker/api/resources/provider_pacts_spec.rb +1 -1
- data/spec/lib/pact_broker/api/resources/tag_spec.rb +39 -13
- data/spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb +38 -0
- data/spec/lib/pact_broker/deployments/deployed_version_service_spec.rb +42 -0
- data/spec/lib/pact_broker/domain/verification_spec.rb +17 -0
- data/spec/lib/pact_broker/index/service_spec.rb +28 -16
- data/spec/lib/pact_broker/integrations/integration_spec.rb +21 -10
- data/spec/lib/pact_broker/metrics/service_spec.rb +25 -0
- data/spec/lib/pact_broker/pacts/content_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/metadata_spec.rb +95 -29
- data/spec/lib/pact_broker/pacts/pact_publication_selector_dataset_module_spec.rb +39 -0
- data/spec/lib/pact_broker/pacts/pact_version_spec.rb +68 -12
- data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/repository_spec.rb +59 -52
- data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +9 -0
- data/spec/lib/pact_broker/verifications/latest_verification_for_pact_version_spec.rb +18 -0
- data/spec/support/shared_context.rb +0 -1
- metadata +20 -3
data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb
CHANGED
@@ -10,7 +10,7 @@ module PactBroker
|
|
10
10
|
let(:options) { { include_wip_pacts_since: include_wip_pacts_since } }
|
11
11
|
let(:include_wip_pacts_since) { (Date.today - 1).to_datetime }
|
12
12
|
|
13
|
-
subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_version_branch, provider_tags, options) }
|
13
|
+
subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_version_branch, provider_tags, [], options) }
|
14
14
|
|
15
15
|
context "when there are no tags or branch" do
|
16
16
|
let(:provider_tags) { [] }
|
@@ -9,7 +9,7 @@ module PactBroker
|
|
9
9
|
let(:options) { { include_wip_pacts_since: include_wip_pacts_since } }
|
10
10
|
let(:include_wip_pacts_since) { (Date.today - 1).to_datetime }
|
11
11
|
|
12
|
-
subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_version_branch, provider_tags, options) }
|
12
|
+
subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_version_branch, provider_tags, [], options) }
|
13
13
|
|
14
14
|
context "when there are no tags" do
|
15
15
|
let(:provider_tags) { [] }
|
@@ -17,7 +17,7 @@ module PactBroker
|
|
17
17
|
let(:provider) { Pacticipants::Repository.new.create name: "Provider" }
|
18
18
|
let(:version) { PactBroker::Versions::Repository.new.create number: "1.2.3", pacticipant_id: consumer.id }
|
19
19
|
let(:pact_version_sha) { "123" }
|
20
|
-
let(:json_content) { {
|
20
|
+
let(:json_content) { { interactions: ["json"] }.to_json }
|
21
21
|
|
22
22
|
let(:params) do
|
23
23
|
{
|
@@ -25,7 +25,8 @@ module PactBroker
|
|
25
25
|
consumer_id: consumer.id,
|
26
26
|
provider_id: provider.id,
|
27
27
|
json_content: json_content,
|
28
|
-
pact_version_sha: pact_version_sha
|
28
|
+
pact_version_sha: pact_version_sha,
|
29
|
+
version: version
|
29
30
|
}
|
30
31
|
end
|
31
32
|
|
@@ -62,6 +63,16 @@ module PactBroker
|
|
62
63
|
expect(LatestPactPublicationIdForConsumerVersion.first.created_at).to eq PactBroker::Domain::Version.find(number: subject.consumer_version_number).created_at
|
63
64
|
end
|
64
65
|
|
66
|
+
it "sets the interactions count" do
|
67
|
+
subject
|
68
|
+
expect(PactVersion.order(:id).last.interactions_count).to eq 1
|
69
|
+
end
|
70
|
+
|
71
|
+
it "sets the messages count" do
|
72
|
+
subject
|
73
|
+
expect(PactVersion.order(:id).last.messages_count).to eq 0
|
74
|
+
end
|
75
|
+
|
65
76
|
context "when a pact already exists with exactly the same content" do
|
66
77
|
let(:another_version) { Versions::Repository.new.create number: "2.0.0", pacticipant_id: consumer.id }
|
67
78
|
|
@@ -71,7 +82,8 @@ module PactBroker
|
|
71
82
|
consumer_id: consumer.id,
|
72
83
|
provider_id: provider.id,
|
73
84
|
json_content: json_content,
|
74
|
-
pact_version_sha: pact_version_sha
|
85
|
+
pact_version_sha: pact_version_sha,
|
86
|
+
version: version
|
75
87
|
)
|
76
88
|
end
|
77
89
|
|
@@ -81,7 +93,8 @@ module PactBroker
|
|
81
93
|
consumer_id: consumer.id,
|
82
94
|
provider_id: provider.id,
|
83
95
|
json_content: json_content,
|
84
|
-
pact_version_sha: pact_version_sha
|
96
|
+
pact_version_sha: pact_version_sha,
|
97
|
+
version: another_version
|
85
98
|
)
|
86
99
|
end
|
87
100
|
|
@@ -123,7 +136,8 @@ module PactBroker
|
|
123
136
|
consumer_id: consumer.id,
|
124
137
|
provider_id: provider.id,
|
125
138
|
json_content: json_content,
|
126
|
-
pact_version_sha: sha_1
|
139
|
+
pact_version_sha: sha_1,
|
140
|
+
version: version
|
127
141
|
)
|
128
142
|
end
|
129
143
|
|
@@ -133,7 +147,8 @@ module PactBroker
|
|
133
147
|
consumer_id: consumer.id,
|
134
148
|
provider_id: provider.id,
|
135
149
|
json_content: json_content,
|
136
|
-
pact_version_sha: sha_2
|
150
|
+
pact_version_sha: sha_2,
|
151
|
+
version: another_version
|
137
152
|
)
|
138
153
|
end
|
139
154
|
|
@@ -161,7 +176,8 @@ module PactBroker
|
|
161
176
|
consumer_id: consumer.id,
|
162
177
|
provider_id: another_provider.id,
|
163
178
|
json_content: json_content,
|
164
|
-
pact_version_sha: pact_version_sha
|
179
|
+
pact_version_sha: pact_version_sha,
|
180
|
+
version: version
|
165
181
|
)
|
166
182
|
end
|
167
183
|
|
@@ -171,7 +187,8 @@ module PactBroker
|
|
171
187
|
consumer_id: consumer.id,
|
172
188
|
provider_id: provider.id,
|
173
189
|
json_content: json_content,
|
174
|
-
pact_version_sha: pact_version_sha
|
190
|
+
pact_version_sha: pact_version_sha,
|
191
|
+
version: another_version
|
175
192
|
)
|
176
193
|
end
|
177
194
|
|
@@ -189,7 +206,8 @@ module PactBroker
|
|
189
206
|
consumer_id: consumer.id,
|
190
207
|
provider_id: provider.id,
|
191
208
|
json_content: {some_other: "json_content"}.to_json,
|
192
|
-
pact_version_sha: pact_version_sha
|
209
|
+
pact_version_sha: pact_version_sha,
|
210
|
+
version: version
|
193
211
|
)
|
194
212
|
end
|
195
213
|
|
@@ -199,7 +217,8 @@ module PactBroker
|
|
199
217
|
consumer_id: consumer.id,
|
200
218
|
provider_id: provider.id,
|
201
219
|
json_content: json_content,
|
202
|
-
pact_version_sha: "#{pact_version_sha}111"
|
220
|
+
pact_version_sha: "#{pact_version_sha}111",
|
221
|
+
version: another_version
|
203
222
|
)
|
204
223
|
end
|
205
224
|
|
@@ -312,8 +331,7 @@ module PactBroker
|
|
312
331
|
|
313
332
|
describe "delete" do
|
314
333
|
before do
|
315
|
-
|
316
|
-
.create_consumer(consumer_name)
|
334
|
+
td.create_consumer(consumer_name)
|
317
335
|
.create_consumer_version("1.2.3")
|
318
336
|
.create_provider(provider_name)
|
319
337
|
.create_pact
|
@@ -341,8 +359,7 @@ module PactBroker
|
|
341
359
|
|
342
360
|
describe "delete_by_version_id" do
|
343
361
|
let!(:version) do
|
344
|
-
|
345
|
-
.create_consumer
|
362
|
+
td.create_consumer
|
346
363
|
.create_provider
|
347
364
|
.create_consumer_version("4.5.6")
|
348
365
|
.create_pact
|
@@ -365,8 +382,7 @@ module PactBroker
|
|
365
382
|
describe "#find_all_pact_versions_between" do
|
366
383
|
|
367
384
|
before do
|
368
|
-
|
369
|
-
.create_consumer(consumer_name)
|
385
|
+
td.create_consumer(consumer_name)
|
370
386
|
.create_consumer_version("1.2.3")
|
371
387
|
.create_provider(provider_name)
|
372
388
|
.create_pact
|
@@ -401,8 +417,7 @@ module PactBroker
|
|
401
417
|
describe "#delete_all_pact_publications_between" do
|
402
418
|
|
403
419
|
before do
|
404
|
-
|
405
|
-
.create_consumer(consumer_name)
|
420
|
+
td.create_consumer(consumer_name)
|
406
421
|
.create_consumer_version("1.2.3")
|
407
422
|
.create_provider(provider_name)
|
408
423
|
.create_pact
|
@@ -435,11 +450,10 @@ module PactBroker
|
|
435
450
|
end
|
436
451
|
end
|
437
452
|
|
438
|
-
describe "#
|
453
|
+
describe "#find_latest_pacts_for_provider" do
|
439
454
|
context "with no tag specified" do
|
440
455
|
before do
|
441
|
-
|
442
|
-
.create_consumer(consumer_name)
|
456
|
+
td.create_consumer(consumer_name)
|
443
457
|
.create_consumer_version("1.0.0")
|
444
458
|
.create_provider(provider_name)
|
445
459
|
.create_pact
|
@@ -454,22 +468,23 @@ module PactBroker
|
|
454
468
|
.create_pact
|
455
469
|
end
|
456
470
|
|
457
|
-
subject { Repository.new.
|
471
|
+
subject { Repository.new.find_latest_pacts_for_provider provider_name }
|
458
472
|
|
459
473
|
it "returns the pacts between the specified consumer and provider" do
|
460
474
|
expect(subject.size).to eq 2
|
461
475
|
expect(subject.first.consumer.name).to eq consumer_name
|
462
476
|
expect(subject.first.provider.name).to eq provider_name
|
463
477
|
expect(subject.first.consumer_version.number).to eq "1.2.3"
|
464
|
-
expect(subject.first.json_content).
|
478
|
+
expect(subject.first.json_content).to_not be nil
|
465
479
|
expect(subject.last.consumer.name).to eq "wiffle consumer"
|
480
|
+
expect(subject.last.tag).to eq nil
|
481
|
+
expect(subject.last.overall_latest?).to be true
|
466
482
|
end
|
467
483
|
end
|
468
484
|
|
469
485
|
context "with a tag specified" do
|
470
486
|
before do
|
471
|
-
|
472
|
-
.create_consumer(consumer_name)
|
487
|
+
td.create_consumer(consumer_name)
|
473
488
|
.create_consumer_version("1.2.3")
|
474
489
|
.create_consumer_version_tag("prod")
|
475
490
|
.create_provider(provider_name)
|
@@ -487,16 +502,19 @@ module PactBroker
|
|
487
502
|
.create_pact
|
488
503
|
end
|
489
504
|
|
490
|
-
subject { Repository.new.
|
505
|
+
subject { Repository.new.find_latest_pacts_for_provider provider_name, "prod" }
|
491
506
|
|
492
|
-
it "returns the pacts between the specified consumer and provider with the given tag" do
|
507
|
+
it "returns the pacts between the specified consumer and provider with the given consumer version tag" do
|
493
508
|
expect(subject.size).to eq 2
|
494
509
|
expect(subject.first.provider.name).to eq provider_name
|
495
510
|
expect(subject.first.consumer.name).to eq consumer_name
|
496
511
|
expect(subject.first.consumer_version.number).to eq "1.2.3"
|
497
|
-
expect(subject.first.json_content).
|
512
|
+
expect(subject.first.json_content).to_not be nil
|
513
|
+
expect(subject.first.tag).to eq "prod"
|
498
514
|
expect(subject.last.consumer.name).to eq "wiffle consumer"
|
499
515
|
expect(subject.last.consumer_version.number).to eq "5.0.0"
|
516
|
+
expect(subject.last.tag).to eq "prod"
|
517
|
+
expect(subject.last.overall_latest?).to be false
|
500
518
|
end
|
501
519
|
end
|
502
520
|
end
|
@@ -504,8 +522,7 @@ module PactBroker
|
|
504
522
|
describe "#find_pact_versions_for_provider" do
|
505
523
|
context "with no tag specified" do
|
506
524
|
before do
|
507
|
-
|
508
|
-
.create_consumer(consumer_name)
|
525
|
+
td.create_consumer(consumer_name)
|
509
526
|
.create_consumer_version("1.0.0")
|
510
527
|
.create_provider(provider_name)
|
511
528
|
.create_pact
|
@@ -530,8 +547,7 @@ module PactBroker
|
|
530
547
|
|
531
548
|
context "with a tag specified" do
|
532
549
|
before do
|
533
|
-
|
534
|
-
.create_consumer(consumer_name)
|
550
|
+
td.create_consumer(consumer_name)
|
535
551
|
.create_consumer_version("1")
|
536
552
|
.create_consumer_version_tag("prod")
|
537
553
|
.create_provider(provider_name)
|
@@ -554,13 +570,13 @@ module PactBroker
|
|
554
570
|
|
555
571
|
subject { Repository.new.find_pact_versions_for_provider provider_name, "prod" }
|
556
572
|
|
557
|
-
it "returns the pacts between the specified
|
573
|
+
it "returns the pacts between the specified provider with the given consumer tag" do
|
558
574
|
expect(subject.size).to eq 3
|
559
575
|
expect(subject.first.provider.name).to eq provider_name
|
560
576
|
expect(subject.first.consumer.name).to eq consumer_name
|
561
577
|
expect(subject.first.consumer_version.number).to eq "1"
|
562
578
|
expect(subject[1].consumer_version.number).to eq "2"
|
563
|
-
expect(subject.first.json_content).
|
579
|
+
expect(subject.first.json_content).to_not be nil
|
564
580
|
expect(subject.last.consumer.name).to eq "wiffle consumer"
|
565
581
|
expect(subject.last.consumer_version.number).to eq "11"
|
566
582
|
end
|
@@ -680,8 +696,7 @@ module PactBroker
|
|
680
696
|
|
681
697
|
describe "find_all_revisions" do
|
682
698
|
before do
|
683
|
-
|
684
|
-
.create_pact_with_hierarchy("foo", "3.0.0", "bar")
|
699
|
+
td.create_pact_with_hierarchy("foo", "3.0.0", "bar")
|
685
700
|
.revise_pact
|
686
701
|
.create_pact_with_hierarchy(consumer_name, "1.2.3", provider_name)
|
687
702
|
.revise_pact
|
@@ -701,8 +716,7 @@ module PactBroker
|
|
701
716
|
|
702
717
|
describe "find_previous_pact" do
|
703
718
|
before do
|
704
|
-
|
705
|
-
.create_consumer("Consumer")
|
719
|
+
td.create_consumer("Consumer")
|
706
720
|
.create_consumer_version("1.2.2")
|
707
721
|
.create_provider("Provider")
|
708
722
|
.create_consumer_version_tag("a_tag")
|
@@ -778,8 +792,7 @@ module PactBroker
|
|
778
792
|
|
779
793
|
describe "find_next_pact" do
|
780
794
|
before do
|
781
|
-
|
782
|
-
.create_consumer("Consumer")
|
795
|
+
td.create_consumer("Consumer")
|
783
796
|
.create_consumer_version("1.2.2")
|
784
797
|
.create_provider("Provider")
|
785
798
|
.create_pact
|
@@ -823,8 +836,7 @@ module PactBroker
|
|
823
836
|
end
|
824
837
|
|
825
838
|
before do
|
826
|
-
|
827
|
-
.create_consumer("Consumer")
|
839
|
+
td.create_consumer("Consumer")
|
828
840
|
.create_provider("Provider")
|
829
841
|
.create_consumer_version("1")
|
830
842
|
.create_pact(json_content: pact_content_version_1)
|
@@ -864,8 +876,7 @@ module PactBroker
|
|
864
876
|
context "with a tag" do
|
865
877
|
context "when a version with a pact exists with the given tag" do
|
866
878
|
before do
|
867
|
-
|
868
|
-
.create_consumer("Consumer")
|
879
|
+
td.create_consumer("Consumer")
|
869
880
|
.create_consumer_version("2.3.4")
|
870
881
|
.create_provider("Provider")
|
871
882
|
.create_pact
|
@@ -894,8 +905,7 @@ module PactBroker
|
|
894
905
|
context "without a tag" do
|
895
906
|
context "when one or more versions of a pact exist without any tags" do
|
896
907
|
before do
|
897
|
-
|
898
|
-
.create_consumer("Consumer")
|
908
|
+
td.create_consumer("Consumer")
|
899
909
|
.create_provider("Provider")
|
900
910
|
.create_consumer_version("1.0.0")
|
901
911
|
.create_pact
|
@@ -923,8 +933,7 @@ module PactBroker
|
|
923
933
|
|
924
934
|
context "when all versions have a tag" do
|
925
935
|
before do
|
926
|
-
|
927
|
-
.create_consumer("Consumer")
|
936
|
+
td.create_consumer("Consumer")
|
928
937
|
.create_provider("Provider")
|
929
938
|
.create_consumer_version("2.3.4")
|
930
939
|
.create_consumer_version_tag("prod")
|
@@ -943,8 +952,7 @@ module PactBroker
|
|
943
952
|
describe "search_for_latest_pact" do
|
944
953
|
context "when one or more versions of a pact exist without any tags" do
|
945
954
|
before do
|
946
|
-
|
947
|
-
.create_consumer("Consumer")
|
955
|
+
td.create_consumer("Consumer")
|
948
956
|
.create_provider("Provider")
|
949
957
|
.create_consumer_version("1")
|
950
958
|
.create_pact
|
@@ -981,8 +989,7 @@ module PactBroker
|
|
981
989
|
|
982
990
|
describe "find_latest_pacts" do
|
983
991
|
before do
|
984
|
-
|
985
|
-
.create_consumer("Condor")
|
992
|
+
td.create_consumer("Condor")
|
986
993
|
.create_consumer_version("1.3.0")
|
987
994
|
.create_provider("Pricing Service")
|
988
995
|
.create_pact
|
@@ -14,6 +14,7 @@ module PactBroker
|
|
14
14
|
let(:pact_version_url) { "http://pact" }
|
15
15
|
let(:verifiable_pact) do
|
16
16
|
double(VerifiablePact,
|
17
|
+
consumer: double("consumer", main_branch: "main"),
|
17
18
|
consumer_name: "Foo",
|
18
19
|
consumer_version_number: "123",
|
19
20
|
provider_name: "Bar",
|
@@ -84,6 +85,14 @@ module PactBroker
|
|
84
85
|
its(:inclusion_reason) { is_expected.to include "latest version from branch 'master' (fallback branch used as no pact was found from branch 'feat-x') (1234)" }
|
85
86
|
end
|
86
87
|
|
88
|
+
context "when the pact was for the main branch" do
|
89
|
+
let(:selectors) { Selectors.new(Selector.for_main_branch.resolve(consumer_version)) }
|
90
|
+
|
91
|
+
context "when the main branch is called main" do
|
92
|
+
its(:inclusion_reason) { is_expected.to include "latest version from the main branch 'main' (1234)" }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
87
96
|
context "when the pact is a WIP pact for the specified provider tags" do
|
88
97
|
let(:selectors) { Selectors.create_for_latest_of_each_tag(%w[feat-x]).resolve(consumer_version) }
|
89
98
|
let(:wip) { true }
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "pact_broker/verifications/latest_verification_for_pact_version"
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module Verifications
|
5
|
+
describe LatestVerificationForPactVersion do
|
6
|
+
before do
|
7
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
8
|
+
.create_verification(provider_version: "2")
|
9
|
+
end
|
10
|
+
|
11
|
+
subject { LatestVerificationForPactVersion.first }
|
12
|
+
|
13
|
+
its(:"consumer.name") { is_expected.to eq "Foo" }
|
14
|
+
its(:"provider.name") { is_expected.to eq "Bar" }
|
15
|
+
its(:"provider_version.number") { is_expected.to eq "2" }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "pact_broker/test/test_data_builder"
|
2
2
|
|
3
3
|
RSpec.shared_context "stubbed services" do
|
4
|
-
|
5
4
|
let(:pact_service) { class_double("PactBroker::Pacts::Service").as_stubbed_const }
|
6
5
|
let(:pacticipant_service) { class_double("PactBroker::Pacticipants::Service").as_stubbed_const }
|
7
6
|
let(:version_service) { class_double("PactBroker::Versions::Service").as_stubbed_const }
|
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.81.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: 2021-07-
|
13
|
+
date: 2021-07-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -420,6 +420,7 @@ files:
|
|
420
420
|
- db/ddl_statements/latest_verification_ids_for_consumer_and_provider.rb
|
421
421
|
- db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb
|
422
422
|
- db/ddl_statements/latest_verification_ids_for_pact_versions.rb
|
423
|
+
- db/ddl_statements/latest_verifications_for_pact_versions.rb
|
423
424
|
- db/migrations/000001_create_pacticipant_table.rb
|
424
425
|
- db/migrations/000002_create_versions_table.rb
|
425
426
|
- db/migrations/000003_create_pacts_table.rb
|
@@ -558,6 +559,8 @@ files:
|
|
558
559
|
- db/migrations/20210608_add_uuid_to_webhook.rb
|
559
560
|
- db/migrations/20210609_set_webhook_uuid.rb
|
560
561
|
- db/migrations/20210702_drop_unused_columns_from_deployed_versions.rb
|
562
|
+
- db/migrations/20210711_add_consumer_version_order_to_pact_publication.rb
|
563
|
+
- db/migrations/20210712_add_interaction_count_to_pact_versions.rb
|
561
564
|
- db/migrations/migration_helper.rb
|
562
565
|
- db/test/backwards_compatibility/.rspec
|
563
566
|
- db/test/backwards_compatibility/Appraisals
|
@@ -746,6 +749,7 @@ files:
|
|
746
749
|
- lib/pact_broker/api/resources/pacticipant_webhooks.rb
|
747
750
|
- lib/pact_broker/api/resources/pacticipants.rb
|
748
751
|
- lib/pact_broker/api/resources/pacticipants_for_label.rb
|
752
|
+
- lib/pact_broker/api/resources/pagination_methods.rb
|
749
753
|
- lib/pact_broker/api/resources/previous_distinct_pact_version.rb
|
750
754
|
- lib/pact_broker/api/resources/provider_pacts.rb
|
751
755
|
- lib/pact_broker/api/resources/provider_pacts_for_verification.rb
|
@@ -793,9 +797,11 @@ files:
|
|
793
797
|
- lib/pact_broker/db/data_migrations/helpers.rb
|
794
798
|
- lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
|
795
799
|
- lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
|
800
|
+
- lib/pact_broker/db/data_migrations/set_consumer_version_order_for_pact_publications.rb
|
796
801
|
- lib/pact_broker/db/data_migrations/set_created_at_for_latest_pact_publications.rb
|
797
802
|
- lib/pact_broker/db/data_migrations/set_created_at_for_latest_verifications.rb
|
798
803
|
- lib/pact_broker/db/data_migrations/set_extra_columns_for_tags.rb
|
804
|
+
- lib/pact_broker/db/data_migrations/set_interactions_counts.rb
|
799
805
|
- lib/pact_broker/db/data_migrations/set_latest_version_sequence_value.rb
|
800
806
|
- lib/pact_broker/db/data_migrations/set_pacticipant_display_name.rb
|
801
807
|
- lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
|
@@ -963,6 +969,7 @@ files:
|
|
963
969
|
- lib/pact_broker/relationships/groupify.rb
|
964
970
|
- lib/pact_broker/repositories.rb
|
965
971
|
- lib/pact_broker/repositories/helpers.rb
|
972
|
+
- lib/pact_broker/repositories/scopes.rb
|
966
973
|
- lib/pact_broker/services.rb
|
967
974
|
- lib/pact_broker/string_refinements.rb
|
968
975
|
- lib/pact_broker/tags/eager_loaders.rb
|
@@ -1269,6 +1276,7 @@ files:
|
|
1269
1276
|
- spec/features/get_versions_spec.rb
|
1270
1277
|
- spec/features/label_pacticipant_spec.rb
|
1271
1278
|
- spec/features/merge_pact_spec.rb
|
1279
|
+
- spec/features/metadata_spec.rb
|
1272
1280
|
- spec/features/metrics_spec.rb
|
1273
1281
|
- spec/features/pending_pacts_spec.rb
|
1274
1282
|
- spec/features/pending_pacts_with_tags_spec.rb
|
@@ -1276,6 +1284,7 @@ files:
|
|
1276
1284
|
- spec/features/publish_pact_all_in_one_approval_spec.rb
|
1277
1285
|
- spec/features/publish_pact_all_in_one_spec.rb
|
1278
1286
|
- spec/features/publish_pact_spec.rb
|
1287
|
+
- spec/features/publish_verification_results_and_version_spec.rb
|
1279
1288
|
- spec/features/publish_verification_spec.rb
|
1280
1289
|
- spec/features/record_deployment_spec.rb
|
1281
1290
|
- spec/features/record_release_spec.rb
|
@@ -1422,11 +1431,13 @@ files:
|
|
1422
1431
|
- spec/lib/pact_broker/db/clean_spec.rb
|
1423
1432
|
- spec/lib/pact_broker/db/data_migrations/migrate_webhook_headers_spec.rb
|
1424
1433
|
- spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
|
1434
|
+
- spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb
|
1425
1435
|
- spec/lib/pact_broker/db/data_migrations/set_latest_version_sequence_value_spec.rb
|
1426
1436
|
- spec/lib/pact_broker/db/data_migrations/set_pacticipant_main_branch_spec.rb
|
1427
1437
|
- spec/lib/pact_broker/db/delete_overwritten_data_spec.rb
|
1428
1438
|
- spec/lib/pact_broker/db/log_quietener_spec.rb
|
1429
1439
|
- spec/lib/pact_broker/db/validate_encoding_spec.rb
|
1440
|
+
- spec/lib/pact_broker/deployments/deployed_version_service_spec.rb
|
1430
1441
|
- spec/lib/pact_broker/deployments/deployed_version_spec.rb
|
1431
1442
|
- spec/lib/pact_broker/deployments/environment_service_spec.rb
|
1432
1443
|
- spec/lib/pact_broker/deployments/environment_spec.rb
|
@@ -1516,6 +1527,7 @@ files:
|
|
1516
1527
|
- spec/lib/pact_broker/ui/view_models/index_items_spec.rb
|
1517
1528
|
- spec/lib/pact_broker/ui/view_models/matrix_deployed_version_spec.rb
|
1518
1529
|
- spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
|
1530
|
+
- spec/lib/pact_broker/verifications/latest_verification_for_pact_version_spec.rb
|
1519
1531
|
- spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
|
1520
1532
|
- spec/lib/pact_broker/verifications/repository_spec.rb
|
1521
1533
|
- spec/lib/pact_broker/verifications/sequence_spec.rb
|
@@ -1665,7 +1677,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1665
1677
|
- !ruby/object:Gem::Version
|
1666
1678
|
version: '0'
|
1667
1679
|
requirements: []
|
1668
|
-
rubygems_version: 3.2.
|
1680
|
+
rubygems_version: 3.2.24
|
1669
1681
|
signing_key:
|
1670
1682
|
specification_version: 4
|
1671
1683
|
summary: See description
|
@@ -1728,6 +1740,7 @@ test_files:
|
|
1728
1740
|
- spec/features/get_versions_spec.rb
|
1729
1741
|
- spec/features/label_pacticipant_spec.rb
|
1730
1742
|
- spec/features/merge_pact_spec.rb
|
1743
|
+
- spec/features/metadata_spec.rb
|
1731
1744
|
- spec/features/metrics_spec.rb
|
1732
1745
|
- spec/features/pending_pacts_spec.rb
|
1733
1746
|
- spec/features/pending_pacts_with_tags_spec.rb
|
@@ -1735,6 +1748,7 @@ test_files:
|
|
1735
1748
|
- spec/features/publish_pact_all_in_one_approval_spec.rb
|
1736
1749
|
- spec/features/publish_pact_all_in_one_spec.rb
|
1737
1750
|
- spec/features/publish_pact_spec.rb
|
1751
|
+
- spec/features/publish_verification_results_and_version_spec.rb
|
1738
1752
|
- spec/features/publish_verification_spec.rb
|
1739
1753
|
- spec/features/record_deployment_spec.rb
|
1740
1754
|
- spec/features/record_release_spec.rb
|
@@ -1881,11 +1895,13 @@ test_files:
|
|
1881
1895
|
- spec/lib/pact_broker/db/clean_spec.rb
|
1882
1896
|
- spec/lib/pact_broker/db/data_migrations/migrate_webhook_headers_spec.rb
|
1883
1897
|
- spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
|
1898
|
+
- spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb
|
1884
1899
|
- spec/lib/pact_broker/db/data_migrations/set_latest_version_sequence_value_spec.rb
|
1885
1900
|
- spec/lib/pact_broker/db/data_migrations/set_pacticipant_main_branch_spec.rb
|
1886
1901
|
- spec/lib/pact_broker/db/delete_overwritten_data_spec.rb
|
1887
1902
|
- spec/lib/pact_broker/db/log_quietener_spec.rb
|
1888
1903
|
- spec/lib/pact_broker/db/validate_encoding_spec.rb
|
1904
|
+
- spec/lib/pact_broker/deployments/deployed_version_service_spec.rb
|
1889
1905
|
- spec/lib/pact_broker/deployments/deployed_version_spec.rb
|
1890
1906
|
- spec/lib/pact_broker/deployments/environment_service_spec.rb
|
1891
1907
|
- spec/lib/pact_broker/deployments/environment_spec.rb
|
@@ -1975,6 +1991,7 @@ test_files:
|
|
1975
1991
|
- spec/lib/pact_broker/ui/view_models/index_items_spec.rb
|
1976
1992
|
- spec/lib/pact_broker/ui/view_models/matrix_deployed_version_spec.rb
|
1977
1993
|
- spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
|
1994
|
+
- spec/lib/pact_broker/verifications/latest_verification_for_pact_version_spec.rb
|
1978
1995
|
- spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
|
1979
1996
|
- spec/lib/pact_broker/verifications/repository_spec.rb
|
1980
1997
|
- spec/lib/pact_broker/verifications/sequence_spec.rb
|