pact_broker 2.2.0 → 2.3.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/db/migrations/23_create_pact_versions_table.rb +1 -5
  4. data/lib/pact_broker/api.rb +6 -0
  5. data/lib/pact_broker/api/resources/badge.rb +60 -0
  6. data/lib/pact_broker/badges/service.rb +107 -0
  7. data/lib/pact_broker/configuration.rb +3 -2
  8. data/lib/pact_broker/doc/views/publish-verification-results.markdown +4 -4
  9. data/lib/pact_broker/domain/relationship.rb +7 -1
  10. data/lib/pact_broker/domain/verification.rb +12 -0
  11. data/lib/pact_broker/locale/en.yml +2 -0
  12. data/lib/pact_broker/logging.rb +4 -2
  13. data/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb +11 -5
  14. data/lib/pact_broker/pacts/service.rb +1 -1
  15. data/lib/pact_broker/services.rb +5 -0
  16. data/lib/pact_broker/ui/view_models/relationship.rb +12 -14
  17. data/lib/pact_broker/verifications/repository.rb +8 -4
  18. data/lib/pact_broker/verifications/service.rb +2 -2
  19. data/lib/pact_broker/verifications/verification_status.rb +47 -0
  20. data/lib/pact_broker/version.rb +1 -1
  21. data/lib/rack/pact_broker/convert_file_extension_to_accept_header.rb +1 -1
  22. data/public/images/pact-changed-orange.svg +1 -0
  23. data/public/images/pact-failed-red.svg +1 -0
  24. data/public/images/pact-unknown-lightgrey.svg +1 -0
  25. data/public/images/pact-verified-brightgreen.svg +1 -0
  26. data/public/images/pact_not_found-unknown-lightgrey.svg +1 -0
  27. data/spec/features/get_latest_pact_badge_spec.rb +53 -0
  28. data/spec/features/get_latest_tagged_pact_badge_spec.rb +38 -0
  29. data/spec/features/get_latest_untagged_pact_badge_spec.rb +38 -0
  30. data/spec/features/publish_verification_spec.rb +8 -1
  31. data/spec/lib/pact_broker/api/resources/badge_spec.rb +104 -0
  32. data/spec/lib/pact_broker/badges/service_spec.rb +244 -0
  33. data/spec/lib/pact_broker/messages_spec.rb +2 -0
  34. data/spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb +44 -62
  35. data/spec/lib/pact_broker/pacts/service_spec.rb +0 -3
  36. data/spec/lib/pact_broker/ui/view_models/relationship_spec.rb +5 -7
  37. data/spec/lib/pact_broker/verifications/repository_spec.rb +102 -28
  38. data/spec/lib/pact_broker/verifications/verification_status_spec.rb +48 -0
  39. metadata +22 -2
@@ -19,6 +19,8 @@ The name "Contracts" is very similar to the following existing consumers/provide
19
19
  If you meant to specify one of the above names, please correct the pact configuration, and re-publish the pact.
20
20
  If the pact is intended to be for a new consumer or provider, please manually create "Contracts" using the following command, and then re-publish the pact:
21
21
  $ curl -v -XPOST -H "Content-Type: application/json" -d "{\\\"name\\\": \\\"Contracts\\\"}" http://example.org/pacticipants
22
+ If the pact broker requires authentication, include the '-u' flag with the proper credentials:
23
+ $ curl -v -XPOST -u <username>:<password> -H "Content-Type: application/json" -d "{\\\"name\\\": \\\"Contracts\\\"}" http://example.org/pacticipants
22
24
  EOS
23
25
  }
24
26
  subject { Messages.potential_duplicate_pacticipant_message new_name, potential_duplicate_pacticipants, 'http://example.org' }
@@ -7,76 +7,58 @@ module PactBroker
7
7
 
8
8
  describe FindPotentialDuplicatePacticipantNames do
9
9
 
10
- describe ".call" do
11
-
12
- subject { FindPotentialDuplicatePacticipantNames.call(new_name, existing_names) }
13
-
14
- context "when an existing name exactly equals the new name" do
15
- let(:new_name) { 'Contracts Service' }
16
- let(:existing_names) { ['Contracts Service', 'Contracts', 'Something'] }
17
-
18
- it "does not return any potential duplicate names" do
19
- expect(subject).to eq []
20
- end
21
- end
22
-
23
- context "when an existing name mostly includes the new name" do
24
- let(:new_name) { 'Contracts' }
25
- let(:existing_names) { ['Contract Service', 'Contacts', 'Something'] }
26
-
27
- it "returns the existing names that match" do
28
- expect(subject).to eq ['Contract Service']
29
- end
30
- end
31
-
32
- context "when a new name mostly includes an existing name" do
33
- let(:new_name) { 'Contract Service' }
34
- let(:existing_names) { ['Contracts', 'Contacts', 'Something'] }
35
-
36
- it "returns the existing names that match" do
37
- expect(subject).to eq ['Contracts']
38
- end
39
- end
40
-
41
- context 'when a new name is the same but a different case' do
42
- let(:new_name) { 'Contract Service' }
43
- let(:existing_names) { ['contracts', 'Contacts', 'Something'] }
44
-
45
- it "returns the existing names that match" do
46
- expect(subject).to eq ['contracts']
47
- end
48
- end
49
-
50
- context "when a new name is the same as an existing name but without spaces" do
51
- let(:new_name) { 'ContractService' }
52
- let(:existing_names) { ['Contracts Service', 'Contacts', 'Something'] }
53
-
54
- it "returns the existing names that match" do
55
- expect(subject).to eq ['Contracts Service']
10
+ describe "split" do
11
+ TEST_CASES = [
12
+ ["a-foo-service", ["a", "foo", "service"]],
13
+ ["a_foo_service", ["a", "foo", "service"]],
14
+ ["FooAService", ["foo", "a", "service"]],
15
+ ["Foo A Service", ["foo", "a", "service"]],
16
+ ["S3 Bucket Service", ["s3", "bucket", "service"]],
17
+ ["S3BucketService", ["s3", "bucket", "service"]],
18
+ ["S3-Bucket-Service", ["s3", "bucket", "service"]],
19
+ ["S3_Bucket_Service", ["s3", "bucket", "service"]],
20
+ ]
21
+
22
+ TEST_CASES.each do | input, output |
23
+ it "splits #{input} into #{output.inspect}" do
24
+ expect(FindPotentialDuplicatePacticipantNames.split(input)).to eq output
56
25
  end
57
26
  end
27
+ end
58
28
 
59
- context "when an existing name is the same as the new name but without spaces" do
60
- let(:new_name) { 'Contract Service' }
61
- let(:existing_names) { ['ContractsService', 'Contacts', 'Something'] }
29
+ describe ".call" do
62
30
 
63
- it "returns the existing names that match" do
64
- expect(subject).to eq ['ContractsService']
65
- end
66
- end
31
+ subject { FindPotentialDuplicatePacticipantNames.call(new_name, existing_names) }
67
32
 
68
- context "when the new name is similar to an existing but with underscores or dashes instead of spaces" do
69
- let(:new_name) { 'Contract_Service' }
70
- let(:existing_names) { ['ContractsService', 'Contracts Service', 'contracts-service', 'Contacts', 'Something'] }
71
33
 
72
- it "returns the existing names that match" do
73
- expect(subject).to eq ['ContractsService', 'Contracts Service', 'contracts-service']
34
+ TEST_CASES = [
35
+ ["accounts", ["accounts-receivable"], []],
36
+ ["Accounts", ["Accounts Receivable"], []],
37
+ ["The Accounts", ["Accounts"], []],
38
+ ["accounts", ["account-service", "account-api", "account-provider"], ["account-service", "account-api", "account-provider"]],
39
+ ["accounts-api", ["account-service", "account-provider"], ["account-service", "account-provider"]],
40
+ ['Contracts Service', ['Contracts Service', 'Contracts', 'Something'], []],
41
+ ['Contracts', ['Contract Service', 'Contacts', 'Something'], ['Contract Service']],
42
+ ['Contracts Service', ['Contract', 'Contacts', 'Something'], ['Contract']],
43
+ ['Contract Service', ['Contracts', 'Contacts', 'Something'], ['Contracts']],
44
+ ['Contract Service', ['contracts', 'Contacts', 'Something'], ['contracts']],
45
+ ['ContractService', ['Contracts Service', 'Contacts', 'Something'], ['Contracts Service']],
46
+ ['Contract Service', ['ContractsService', 'Contacts', 'Something'], ['ContractsService']],
47
+ ['Contract_Service', ['ContractsService', 'Contracts Service', 'contracts-service', 'Contacts', 'Something'], ['ContractsService', 'Contracts Service', 'contracts-service']]
48
+ ]
49
+
50
+ TEST_CASES.each do | the_new_name, the_existing_names, the_expected_duplicates |
51
+ context "when the new name is #{the_new_name} and the existing names are #{the_existing_names.inspect}" do
52
+ let(:new_name) { the_new_name }
53
+ let(:existing_names) { the_existing_names }
54
+ let(:expected_duplicates) { the_expected_duplicates}
55
+
56
+ it "returns #{the_expected_duplicates.inspect} as the potential duplicates" do
57
+ expect(subject).to eq expected_duplicates
58
+ end
74
59
  end
75
60
  end
76
-
77
61
  end
78
-
79
62
  end
80
-
81
63
  end
82
- end
64
+ end
@@ -27,7 +27,6 @@ module PactBroker
27
27
  end
28
28
 
29
29
  describe "#pact_has_changed_since_previous_version?" do
30
-
31
30
  let(:json_content) { { 'some' => 'json'}.to_json }
32
31
  let(:pact) { instance_double(PactBroker::Domain::Pact, json_content: json_content)}
33
32
 
@@ -61,9 +60,7 @@ module PactBroker
61
60
  expect(subject).to be_falsey
62
61
  end
63
62
  end
64
-
65
63
  end
66
-
67
64
  end
68
65
  end
69
66
  end
@@ -23,9 +23,7 @@ module PactBroker
23
23
  describe "verification_status" do
24
24
  let(:domain_relationship) do
25
25
  instance_double("PactBroker::Domain::Relationship",
26
- ever_verified?: ever_verified,
27
- pact_changed_since_last_verification?: pact_changed,
28
- latest_verification_successful?: success,
26
+ verification_status: verification_status,
29
27
  provider_name: "Foo",
30
28
  latest_verification_provider_version: "4.5.6")
31
29
  end
@@ -36,28 +34,28 @@ module PactBroker
36
34
  subject { Relationship.new(domain_relationship) }
37
35
 
38
36
  context "when the pact has never been verified" do
39
- let(:ever_verified) { false }
37
+ let(:verification_status) { :never }
40
38
  its(:verification_status) { is_expected.to eq "" }
41
39
  its(:warning?) { is_expected.to be false }
42
40
  its(:verification_tooltip) { is_expected.to eq nil }
43
41
  end
44
42
 
45
43
  context "when the pact has changed since the last successful verification" do
46
- let(:pact_changed) { true }
44
+ let(:verification_status) { :stale }
47
45
  its(:verification_status) { is_expected.to eq "warning" }
48
46
  its(:warning?) { is_expected.to be true }
49
47
  its(:verification_tooltip) { is_expected.to eq "Pact has changed since last successful verification by Foo (v4.5.6)" }
50
48
  end
51
49
 
52
50
  context "when the pact has not changed since the last successful verification" do
53
- let(:pact_changed) { false }
51
+ let(:verification_status) { :success }
54
52
  its(:verification_status) { is_expected.to eq "success" }
55
53
  its(:warning?) { is_expected.to be false }
56
54
  its(:verification_tooltip) { is_expected.to eq "Successfully verified by Foo (v4.5.6)" }
57
55
  end
58
56
 
59
57
  context "when the pact verification failed" do
60
- let(:success) { false }
58
+ let(:verification_status) { :failed }
61
59
  its(:verification_status) { is_expected.to eq "danger" }
62
60
  its(:warning?) { is_expected.to be false }
63
61
  its(:verification_tooltip) { is_expected.to eq "Verification by Foo (v4.5.6) failed" }
@@ -25,8 +25,10 @@ module PactBroker
25
25
  .and_return(:pact)
26
26
  end
27
27
 
28
+ subject { Repository.new.verification_count_for_pact(pact_1) }
29
+
28
30
  it "returns the number of verifications for the given pact" do
29
- expect(Repository.new.verification_count_for_pact(pact_1)).to eq 2
31
+ expect(subject).to eq 2
30
32
  end
31
33
  end
32
34
 
@@ -56,13 +58,13 @@ module PactBroker
56
58
  pact
57
59
  end
58
60
 
59
- let(:verification) { Repository.new.find "Consumer1", "Provider1", pact.pact_version_sha, 2}
61
+ subject { Repository.new.find "Consumer1", "Provider1", pact.pact_version_sha, 2}
60
62
 
61
63
  it "finds the latest verifications for the given consumer version" do
62
- expect(verification.provider_version).to eq "3.7.4"
63
- expect(verification.consumer_name).to eq "Consumer1"
64
- expect(verification.provider_name).to eq "Provider1"
65
- expect(verification.pact_version_sha).to eq pact.pact_version_sha
64
+ expect(subject.provider_version).to eq "3.7.4"
65
+ expect(subject.consumer_name).to eq "Consumer1"
66
+ expect(subject.provider_name).to eq "Provider1"
67
+ expect(subject.pact_version_sha).to eq pact.pact_version_sha
66
68
  end
67
69
  end
68
70
 
@@ -90,37 +92,109 @@ module PactBroker
90
92
  .create_verification(number: 1)
91
93
  end
92
94
 
93
- let(:latest_verifications) { Repository.new.find_latest_verifications_for_consumer_version("Consumer1", "1.2.3")}
95
+ subject { Repository.new.find_latest_verifications_for_consumer_version("Consumer1", "1.2.3")}
94
96
 
95
97
  it "finds the latest verifications for the given consumer version" do
96
- expect(latest_verifications.first.provider_version).to eq "7.8.9"
97
- expect(latest_verifications.last.provider_version).to eq "6.5.4"
98
+ expect(subject.first.provider_version).to eq "7.8.9"
99
+ expect(subject.last.provider_version).to eq "6.5.4"
98
100
  end
99
101
  end
100
102
 
101
103
  describe "#find_latest_verification_for" do
102
- before do
103
- TestDataBuilder.new
104
- .create_provider("Provider1")
105
- .create_consumer("Consumer1")
106
- .create_consumer_version("1.2.3")
107
- .create_pact
108
- .create_verification(number: 1, provider_version: "2.3.4")
109
- .create_verification(number: 2, provider_version: "7.8.9")
110
- .create_consumer_version("1.0.0")
111
- .create_pact
112
- .create_verification(number: 1, provider_version: "5.4.3")
113
- .create_provider("Provider2")
114
- .create_pact
115
- .create_verification(number: 1, provider_version: "6.5.4")
116
- .create_consumer_version("2.0.0")
117
- .create_pact
104
+ context "when no tag is specified" do
105
+ before do
106
+ TestDataBuilder.new
107
+ .create_provider("Provider1")
108
+ .create_consumer("Consumer1")
109
+ .create_consumer_version("1.2.3")
110
+ .create_pact
111
+ .create_verification(number: 1, provider_version: "2.3.4")
112
+ .create_verification(number: 2, provider_version: "7.8.9")
113
+ .create_consumer_version("1.0.0")
114
+ .create_pact
115
+ .create_verification(number: 1, provider_version: "5.4.3")
116
+ .create_provider("Provider2")
117
+ .create_pact
118
+ .create_verification(number: 1, provider_version: "6.5.4")
119
+ .create_consumer_version("2.0.0")
120
+ .create_pact
121
+ end
122
+
123
+ subject { Repository.new.find_latest_verification_for("Consumer1", "Provider1")}
124
+
125
+ it "finds the latest verifications for the given consumer version" do
126
+ expect(subject.provider_version).to eq "7.8.9"
127
+ end
118
128
  end
119
129
 
120
- let(:latest_verification) { Repository.new.find_latest_verification_for("Consumer1", "Provider1")}
130
+ context "when a tag is specified" do
131
+ before do
132
+ TestDataBuilder.new
133
+ .create_provider("Provider1")
134
+ .create_consumer("Consumer1")
135
+ .create_consumer_version("1.0.0")
136
+ .create_consumer_version_tag("prod")
137
+ .create_pact
138
+ .create_verification(number: 1, provider_version: "1.0.0")
139
+ .create_verification(number: 2, provider_version: "5.4.3")
140
+ .create_consumer_version("1.1.0")
141
+ .create_consumer_version_tag("prod")
142
+ .create_pact
143
+ .create_consumer_version("1.2.3")
144
+ .create_pact
145
+ .create_verification(number: 1, provider_version: "2.3.4")
146
+ .create_verification(number: 2, provider_version: "7.8.9")
147
+ .create_provider("Provider2")
148
+ .create_pact
149
+ .create_verification(number: 1, provider_version: "6.5.4")
150
+ .create_consumer_version("2.0.0")
151
+ .create_pact
152
+ end
121
153
 
122
- it "finds the latest verifications for the given consumer version" do
123
- expect(latest_verification.provider_version).to eq "7.8.9"
154
+ subject { Repository.new.find_latest_verification_for("Consumer1", "Provider1", 'prod')}
155
+
156
+ it "finds the latest verifications for the given consumer version with the specified tag" do
157
+ expect(subject.provider_version).to eq "5.4.3"
158
+ end
159
+
160
+ context "when no verification exists" do
161
+ subject { Repository.new.find_latest_verification_for("Consumer1", "Provider1", 'foo')}
162
+
163
+ it "returns nil" do
164
+ expect(subject).to be nil
165
+ end
166
+ end
167
+ end
168
+
169
+ context "when the latest untagged verification is required" do
170
+ before do
171
+ TestDataBuilder.new
172
+ .create_provider("Provider1")
173
+ .create_consumer("Consumer1")
174
+ .create_consumer_version("1.0.0")
175
+ .create_pact
176
+ .create_verification(number: 1, provider_version: "1.0.0")
177
+ .create_verification(number: 2, provider_version: "5.4.3")
178
+ .create_consumer_version("1.1.0")
179
+ .create_consumer_version_tag("prod")
180
+ .create_pact
181
+ .create_consumer_version("1.2.3")
182
+ .create_consumer_version_tag("prod")
183
+ .create_pact
184
+ .create_verification(number: 1, provider_version: "2.3.4")
185
+ .create_verification(number: 2, provider_version: "7.8.9")
186
+ .create_provider("Provider2")
187
+ .create_pact
188
+ .create_verification(number: 1, provider_version: "6.5.4")
189
+ .create_consumer_version("2.0.0")
190
+ .create_pact
191
+ end
192
+
193
+ subject { Repository.new.find_latest_verification_for("Consumer1", "Provider1", :untagged)}
194
+
195
+ it "finds the latest verifications for the given consumer version with no tag" do
196
+ expect(subject.provider_version).to eq "5.4.3"
197
+ end
124
198
  end
125
199
  end
126
200
  end
@@ -0,0 +1,48 @@
1
+ require 'pact_broker/verifications/verification_status'
2
+
3
+ module PactBroker
4
+ module Verifications
5
+ describe Status do
6
+ describe "verification_status" do
7
+
8
+ let(:latest_verification) { instance_double("PactBroker::Domain::Verification", pact_version_sha: latest_verification_pact_version_sha, success: success) }
9
+ let(:latest_pact) { instance_double("PactBroker::Domain::Pact", pact_version_sha: pact_pact_version_sha) }
10
+ let(:pact_pact_version_sha) { '1234' }
11
+ let(:latest_verification_pact_version_sha) { '1234' }
12
+ let(:success) { true }
13
+
14
+ subject { PactBroker::Verifications::Status.new(latest_pact, latest_verification) }
15
+
16
+ context "when the pact is nil (used in badge resource)" do
17
+ let(:latest_pact) { nil }
18
+ its(:to_sym) { is_expected.to eq :never }
19
+ end
20
+
21
+ context "when the pact has never been verified" do
22
+ let(:latest_verification) { nil }
23
+ its(:to_sym) { is_expected.to eq :never }
24
+ end
25
+
26
+ context "when the pact has not changed since the last successful verification" do
27
+ its(:to_sym) { is_expected.to eq :success }
28
+ end
29
+
30
+ context "when the pact has not changed since the last failed verification" do
31
+ let(:success) { false }
32
+ its(:to_sym) { is_expected.to eq :failed }
33
+ end
34
+
35
+ context "when the pact has changed since the last successful verification" do
36
+ let(:pact_pact_version_sha) { '4566' }
37
+ its(:to_sym) { is_expected.to eq :stale }
38
+ end
39
+
40
+ context "when the pact has changed since the last failed verification" do
41
+ let(:pact_pact_version_sha) { '4566' }
42
+ let(:success) { false }
43
+ its(:to_sym) { is_expected.to eq :failed }
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
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.2.0
4
+ version: 2.3.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-07-04 00:00:00.000000000 Z
13
+ date: 2017-07-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -519,6 +519,7 @@ files:
519
519
  - lib/pact_broker/api/pact_broker_urls.rb
520
520
  - lib/pact_broker/api/renderers/html_pact_renderer.rb
521
521
  - lib/pact_broker/api/resources/authentication.rb
522
+ - lib/pact_broker/api/resources/badge.rb
522
523
  - lib/pact_broker/api/resources/base_resource.rb
523
524
  - lib/pact_broker/api/resources/group.rb
524
525
  - lib/pact_broker/api/resources/index.rb
@@ -545,6 +546,7 @@ files:
545
546
  - lib/pact_broker/api/resources/webhook_resource_methods.rb
546
547
  - lib/pact_broker/api/resources/webhooks.rb
547
548
  - lib/pact_broker/app.rb
549
+ - lib/pact_broker/badges/service.rb
548
550
  - lib/pact_broker/config/load.rb
549
551
  - lib/pact_broker/config/save.rb
550
552
  - lib/pact_broker/config/setting.rb
@@ -639,6 +641,7 @@ files:
639
641
  - lib/pact_broker/verifications/repository.rb
640
642
  - lib/pact_broker/verifications/service.rb
641
643
  - lib/pact_broker/verifications/summary_for_consumer_version.rb
644
+ - lib/pact_broker/verifications/verification_status.rb
642
645
  - lib/pact_broker/version.rb
643
646
  - lib/pact_broker/versions/parse_semantic_version.rb
644
647
  - lib/pact_broker/versions/repository.rb
@@ -672,6 +675,11 @@ files:
672
675
  - public/fonts/glyphicons-halflings-regular.woff
673
676
  - public/images/doc-text.svg
674
677
  - public/images/favicon.ico
678
+ - public/images/pact-changed-orange.svg
679
+ - public/images/pact-failed-red.svg
680
+ - public/images/pact-unknown-lightgrey.svg
681
+ - public/images/pact-verified-brightgreen.svg
682
+ - public/images/pact_not_found-unknown-lightgrey.svg
675
683
  - public/javascripts/d3.v3.js.pagespeed.ce.dFNRrGTALe.js
676
684
  - public/javascripts/highlight.pack.js
677
685
  - public/javascripts/jquery-2.1.1.min.js
@@ -696,7 +704,10 @@ files:
696
704
  - spec/features/delete_version_spec.rb
697
705
  - spec/features/delete_webhook_spec.rb
698
706
  - spec/features/get_diff_spec.rb
707
+ - spec/features/get_latest_pact_badge_spec.rb
708
+ - spec/features/get_latest_tagged_pact_badge_spec.rb
699
709
  - spec/features/get_latest_tagged_pact_spec.rb
710
+ - spec/features/get_latest_untagged_pact_badge_spec.rb
700
711
  - spec/features/get_latest_untagged_pact_spec.rb
701
712
  - spec/features/get_pact_spec.rb
702
713
  - spec/features/get_pact_versions_spec.rb
@@ -746,6 +757,7 @@ files:
746
757
  - spec/lib/pact_broker/api/decorators/webhook_request_decorator_spec.rb
747
758
  - spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb
748
759
  - spec/lib/pact_broker/api/renderers/html_pact_renderer_spec.rb
760
+ - spec/lib/pact_broker/api/resources/badge_spec.rb
749
761
  - spec/lib/pact_broker/api/resources/group_spec.rb
750
762
  - spec/lib/pact_broker/api/resources/latest_pact_spec.rb
751
763
  - spec/lib/pact_broker/api/resources/latest_verifications_for_consumer_version_spec.rb
@@ -759,6 +771,7 @@ files:
759
771
  - spec/lib/pact_broker/api/resources/webhook_spec.rb
760
772
  - spec/lib/pact_broker/api/resources/webhooks_spec.rb
761
773
  - spec/lib/pact_broker/app_spec.rb
774
+ - spec/lib/pact_broker/badges/service_spec.rb
762
775
  - spec/lib/pact_broker/config/load_spec.rb
763
776
  - spec/lib/pact_broker/config/save_and_load_spec.rb
764
777
  - spec/lib/pact_broker/config/save_spec.rb
@@ -796,6 +809,7 @@ files:
796
809
  - spec/lib/pact_broker/verifications/repository_spec.rb
797
810
  - spec/lib/pact_broker/verifications/service_spec.rb
798
811
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
812
+ - spec/lib/pact_broker/verifications/verification_status_spec.rb
799
813
  - spec/lib/pact_broker/versions/parse_semantic_version_spec.rb
800
814
  - spec/lib/pact_broker/versions/repository_spec.rb
801
815
  - spec/lib/pact_broker/versions/service_spec.rb
@@ -892,7 +906,10 @@ test_files:
892
906
  - spec/features/delete_version_spec.rb
893
907
  - spec/features/delete_webhook_spec.rb
894
908
  - spec/features/get_diff_spec.rb
909
+ - spec/features/get_latest_pact_badge_spec.rb
910
+ - spec/features/get_latest_tagged_pact_badge_spec.rb
895
911
  - spec/features/get_latest_tagged_pact_spec.rb
912
+ - spec/features/get_latest_untagged_pact_badge_spec.rb
896
913
  - spec/features/get_latest_untagged_pact_spec.rb
897
914
  - spec/features/get_pact_spec.rb
898
915
  - spec/features/get_pact_versions_spec.rb
@@ -942,6 +959,7 @@ test_files:
942
959
  - spec/lib/pact_broker/api/decorators/webhook_request_decorator_spec.rb
943
960
  - spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb
944
961
  - spec/lib/pact_broker/api/renderers/html_pact_renderer_spec.rb
962
+ - spec/lib/pact_broker/api/resources/badge_spec.rb
945
963
  - spec/lib/pact_broker/api/resources/group_spec.rb
946
964
  - spec/lib/pact_broker/api/resources/latest_pact_spec.rb
947
965
  - spec/lib/pact_broker/api/resources/latest_verifications_for_consumer_version_spec.rb
@@ -955,6 +973,7 @@ test_files:
955
973
  - spec/lib/pact_broker/api/resources/webhook_spec.rb
956
974
  - spec/lib/pact_broker/api/resources/webhooks_spec.rb
957
975
  - spec/lib/pact_broker/app_spec.rb
976
+ - spec/lib/pact_broker/badges/service_spec.rb
958
977
  - spec/lib/pact_broker/config/load_spec.rb
959
978
  - spec/lib/pact_broker/config/save_and_load_spec.rb
960
979
  - spec/lib/pact_broker/config/save_spec.rb
@@ -992,6 +1011,7 @@ test_files:
992
1011
  - spec/lib/pact_broker/verifications/repository_spec.rb
993
1012
  - spec/lib/pact_broker/verifications/service_spec.rb
994
1013
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
1014
+ - spec/lib/pact_broker/verifications/verification_status_spec.rb
995
1015
  - spec/lib/pact_broker/versions/parse_semantic_version_spec.rb
996
1016
  - spec/lib/pact_broker/versions/repository_spec.rb
997
1017
  - spec/lib/pact_broker/versions/service_spec.rb