Skip to content

Commit 7341372

Browse files
committed
fix: add endpoints to get latest verification for latest pact
1 parent 476ff59 commit 7341372

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

lib/pact_broker/api.rb

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ module PactBroker
3030
add ['pacts', 'provider', :provider_name, 'consumer', :consumer_name, 'pact-version', :pact_version_sha, 'verification-results', 'latest'], Api::Resources::LatestVerificationForPact, {resource_name: "latest_verification_results_for_pact_version"}
3131
add ['pacts', 'provider', :provider_name, 'consumer', :consumer_name, 'pact-version', :pact_version_sha, 'verification-results', :verification_number], Api::Resources::Verification, {resource_name: "verification_result"}
3232
add ['pacts', 'provider', :provider_name, 'consumer', :consumer_name, 'pact-version', :pact_version_sha, 'verification-results', :verification_number, 'triggered-webhooks'], Api::Resources::VerificationTriggeredWebhooks, {resource_name: "verification_result_triggered_webhooks"}
33+
add ['pacts', 'provider', :provider_name, 'consumer', :consumer_name, 'latest', 'verification-results','latest'], Api::Resources::LatestVerificationForLatestPact, {resource_name: "latest_verification_results_for_latest_pact_publication"}
34+
add ['pacts', 'provider', :provider_name, 'consumer', :consumer_name, 'latest', :tag, 'verification-results','latest'], Api::Resources::LatestVerificationForLatestPact, {resource_name: "latest_verification_results_for_latest_tagged_pact_publication"}
3335
add ['verification-results', 'consumer', :consumer_name, 'version', :consumer_version_number,'latest'], Api::Resources::LatestVerificationsForConsumerVersion, {resource_name: "verification_results_for_consumer_version"}
3436

3537
# Badges
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'pact_broker/api/resources/verification'
2+
3+
module PactBroker
4+
module Api
5+
module Resources
6+
class LatestVerificationForLatestPact < Verification
7+
private
8+
9+
def pact
10+
@pact ||= pact_service.find_latest_pact(pact_params)
11+
end
12+
13+
def verification
14+
@verification ||= pact && verification_service.find_latest_for_pact(pact)
15+
end
16+
end
17+
end
18+
end
19+
end

spec/features/get_latest_verification_for_pact_spec.rb

+17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
td
66
.create_consumer("Consumer")
77
.create_consumer_version("1.2.3")
8+
.create_consumer_version_tag("master")
89
.create_provider("Another provider")
910
.create_pact
1011
.create_verification(number: 1, provider_version: "5")
@@ -39,4 +40,20 @@
3940
expect(last_response_body[:providerApplicationVersion]).to eq "4"
4041
end
4142
end
43+
44+
context "for latest pact" do
45+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/latest/verification-results/latest" }
46+
47+
it "returns the verification" do
48+
expect(last_response_body[:providerApplicationVersion]).to eq "4"
49+
end
50+
end
51+
52+
context "for latest pact for tag" do
53+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/latest/master/verification-results/latest" }
54+
55+
it "returns the verification" do
56+
expect(last_response_body[:providerApplicationVersion]).to eq "4"
57+
end
58+
end
4259
end

0 commit comments

Comments
 (0)