pact_broker 2.40.0 → 2.41.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 +36 -0
- data/DEVELOPER_DOCUMENTATION.md +11 -0
- data/db/ddl_statements/head_pact_tags.rb +10 -0
- data/db/ddl_statements/latest_pact_consumer_version_orders.rb +16 -0
- data/db/ddl_statements/latest_pact_publications_by_consumer_versions.rb +16 -0
- data/db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb +23 -0
- data/db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb +15 -0
- data/db/ddl_statements/{latest_verification_ids_for_pact_versions_v001.rb → latest_verification_ids_for_pact_versions.rb} +0 -0
- data/db/migrations/000028_create_all_pact_publications.rb +1 -0
- data/db/migrations/20180311_optimise_head_matrix.rb +1 -9
- data/db/migrations/20180722_recreate_views.rb +6 -19
- data/db/migrations/20191028_optimise_latest_tagged_pact_cv_orders.rb +13 -0
- data/db/migrations/20191030_optimise_latest_pact_publications_by_consumer_versions_.rb +13 -0
- data/db/migrations/20191031_optimise_latest_verification_ids_for_consumer_version_tags.rb +13 -0
- data/db/migrations/20191101_create_head_pact_tags.rb +11 -0
- data/lib/db.rb +1 -0
- data/lib/pact_broker/api/contracts/dry_validation_predicates.rb +15 -0
- data/lib/pact_broker/api/contracts/dry_validation_workarounds.rb +38 -0
- data/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb +34 -0
- data/lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb +12 -20
- data/lib/pact_broker/api/decorators/matrix_decorator.rb +25 -6
- data/lib/pact_broker/api/decorators/relationships_csv_decorator.rb +4 -12
- data/lib/pact_broker/api/decorators/verifiable_pact_decorator.rb +5 -2
- data/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator.rb +21 -9
- data/lib/pact_broker/api/renderers/integrations_dot_renderer.rb +1 -1
- data/lib/pact_broker/api/resources/base_resource.rb +1 -1
- data/lib/pact_broker/api/resources/can_i_deploy.rb +2 -9
- data/lib/pact_broker/api/resources/matrix.rb +2 -8
- data/lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb +1 -0
- data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +36 -7
- data/lib/pact_broker/app.rb +1 -0
- data/lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb +1 -1
- data/lib/pact_broker/db/seed_example_data.rb +8 -5
- data/lib/pact_broker/diagnostic/resources/base_resource.rb +0 -8
- data/lib/pact_broker/domain/index_item.rb +47 -16
- data/lib/pact_broker/domain/pact.rb +12 -4
- data/lib/pact_broker/domain/version.rb +2 -0
- data/lib/pact_broker/hash_refinements.rb +48 -0
- data/lib/pact_broker/index/page.rb +12 -0
- data/lib/pact_broker/index/service.rb +156 -21
- data/lib/pact_broker/integrations/integration.rb +22 -0
- data/lib/pact_broker/locale/en.yml +2 -0
- data/lib/pact_broker/logging.rb +0 -1
- data/lib/pact_broker/matrix/aggregated_row.rb +3 -9
- data/lib/pact_broker/matrix/deployment_status_summary.rb +5 -5
- data/lib/pact_broker/matrix/head_row.rb +2 -0
- data/lib/pact_broker/matrix/quick_row.rb +7 -7
- data/lib/pact_broker/matrix/repository.rb +2 -4
- data/lib/pact_broker/pacticipants/repository.rb +1 -1
- data/lib/pact_broker/pacts/pact_publication.rb +27 -4
- data/lib/pact_broker/pacts/repository.rb +41 -18
- data/lib/pact_broker/pacts/service.rb +23 -3
- data/lib/pact_broker/pacts/verifiable_pact.rb +8 -2
- data/lib/pact_broker/pacts/verifiable_pact_messages.rb +14 -8
- data/lib/pact_broker/string_refinements.rb +36 -1
- data/lib/pact_broker/tags/head_pact_tags.rb +12 -0
- data/lib/pact_broker/tags/tag_with_latest_flag.rb +0 -1
- data/lib/pact_broker/test/test_data_builder.rb +1 -1
- data/lib/pact_broker/ui/controllers/index.rb +23 -2
- data/lib/pact_broker/ui/view_models/index_item.rb +7 -1
- data/lib/pact_broker/ui/view_models/index_items.rb +10 -8
- data/lib/pact_broker/ui/view_models/matrix_line.rb +14 -21
- data/lib/pact_broker/ui/view_models/matrix_tag.rb +6 -8
- data/lib/pact_broker/ui/views/index/_pagination.haml +31 -0
- data/lib/pact_broker/ui/views/index/show-with-tags.haml +6 -3
- data/lib/pact_broker/ui/views/index/show.haml +5 -2
- data/lib/pact_broker/ui/views/matrix/show.haml +6 -9
- data/lib/pact_broker/version.rb +1 -1
- data/lib/pact_broker/webhooks/webhook.rb +2 -2
- data/lib/pact_broker/webhooks/webhook_execution_result.rb +3 -18
- data/public/javascripts/matrix.js +26 -1
- data/public/javascripts/pagination.js +1127 -0
- data/public/stylesheets/index.css +13 -0
- data/public/stylesheets/matrix.css +10 -1
- data/spec/features/get_provider_pacts_for_verification_spec.rb +44 -9
- data/spec/features/pending_pacts_spec.rb +1 -1
- data/spec/features/wip_pacts_spec.rb +138 -0
- data/spec/integration/app_spec.rb +1 -1
- data/spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb +90 -0
- data/spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb +26 -4
- data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +36 -2
- data/spec/lib/pact_broker/api/decorators/verifiable_pact_decorator_spec.rb +24 -1
- data/spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb +62 -18
- data/spec/lib/pact_broker/api/resources/base_resource_spec.rb +10 -0
- data/spec/lib/pact_broker/api/resources/provider_pacts_for_verification_spec.rb +75 -6
- data/spec/lib/pact_broker/hash_refinements_spec.rb +24 -0
- data/spec/lib/pact_broker/index/service_spec.rb +38 -2
- data/spec/lib/pact_broker/integrations/integration_spec.rb +79 -41
- data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +2 -0
- data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb +17 -2
- data/spec/lib/pact_broker/pacts/service_spec.rb +56 -0
- data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +12 -1
- data/spec/lib/pact_broker/ui/controllers/index_spec.rb +28 -6
- data/spec/lib/pact_broker/ui/view_models/index_items_spec.rb +8 -29
- data/spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb +41 -0
- metadata +24 -3
@@ -99,12 +99,14 @@ module PactBroker
|
|
99
99
|
context "when the pact is the latest for a tag" do
|
100
100
|
it "returns the relevant tag names" do
|
101
101
|
expect(pact_publication.head_tag_names).to eq ["yes"]
|
102
|
+
expect(pact_publication.head_pact_tags.collect(&:name)).to eq ["yes"]
|
102
103
|
end
|
103
104
|
end
|
104
105
|
|
105
106
|
context "when the pact is not the latest for a tag" do
|
106
107
|
it "returns the relevant tag names" do
|
107
108
|
expect(pact_publication.head_tag_names).to eq ["yes"]
|
109
|
+
expect(pact_publication.head_pact_tags.collect(&:name)).to eq ["yes"]
|
108
110
|
end
|
109
111
|
end
|
110
112
|
end
|
@@ -6,9 +6,11 @@ module PactBroker
|
|
6
6
|
let(:td) { TestDataBuilder.new }
|
7
7
|
|
8
8
|
describe "find_wip_pact_versions_for_provider" do
|
9
|
-
|
10
9
|
let(:provider_tags) { %w[dev] }
|
11
|
-
|
10
|
+
let(:options) { { include_wip_pacts_since: include_wip_pacts_since } }
|
11
|
+
let(:include_wip_pacts_since) { (Date.today - 1).to_datetime }
|
12
|
+
|
13
|
+
subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_tags, options) }
|
12
14
|
|
13
15
|
context "when there are no tags" do
|
14
16
|
let(:provider_tags) { [] }
|
@@ -118,6 +120,19 @@ module PactBroker
|
|
118
120
|
expect(subject.size).to be 0
|
119
121
|
end
|
120
122
|
end
|
123
|
+
|
124
|
+
context "when the pact was published before the specified include_wip_pacts_since" do
|
125
|
+
before do
|
126
|
+
td.create_pact_with_hierarchy("foo", "1", "bar")
|
127
|
+
.create_consumer_version_tag("prod")
|
128
|
+
end
|
129
|
+
|
130
|
+
let(:include_wip_pacts_since) { (Date.today + 3).to_datetime }
|
131
|
+
|
132
|
+
it "is not included" do
|
133
|
+
expect(subject.size).to be 0
|
134
|
+
end
|
135
|
+
end
|
121
136
|
end
|
122
137
|
end
|
123
138
|
end
|
@@ -155,6 +155,62 @@ module PactBroker
|
|
155
155
|
}.by(-1)
|
156
156
|
end
|
157
157
|
end
|
158
|
+
|
159
|
+
describe "find_for_verification integration test" do
|
160
|
+
before do
|
161
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
162
|
+
.create_consumer_version_tag("feat-1", comment: "latest for feat-1")
|
163
|
+
.create_consumer_version("2")
|
164
|
+
.create_pact(comment: "overall latest")
|
165
|
+
.create_consumer_version("3")
|
166
|
+
end
|
167
|
+
|
168
|
+
let(:options) { { } }
|
169
|
+
|
170
|
+
subject { Service.find_for_verification("Bar", ["master"], [], options) }
|
171
|
+
|
172
|
+
|
173
|
+
context "when the consumer version tags are empty" do
|
174
|
+
it "returns the latest overall pact for the consumer" do
|
175
|
+
expect(subject.first.consumer_version_number).to eq "2"
|
176
|
+
expect(subject.first.wip).to be false
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context "when include_wip_pacts_since is not specified" do
|
181
|
+
it "does not include the WIP pacts" do
|
182
|
+
expect(subject.size).to eq 1
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
context "when WIP pacts are included" do
|
187
|
+
let(:options) do
|
188
|
+
{
|
189
|
+
include_wip_pacts_since: (Date.today - 1).to_datetime
|
190
|
+
}
|
191
|
+
end
|
192
|
+
it "returns the WIP pacts as well as the specified pacts" do
|
193
|
+
expect(subject.size).to eq 2
|
194
|
+
expect(subject.last.consumer_version_number).to eq "1"
|
195
|
+
expect(subject.last.wip).to be true
|
196
|
+
end
|
197
|
+
|
198
|
+
context "when the WIP pact has the same content as a specified pact" do
|
199
|
+
before do
|
200
|
+
td.create_pact_with_hierarchy("Blah", "1", "Wiffle")
|
201
|
+
.create_consumer_version_tag("feat-1", comment: "latest for feat-1")
|
202
|
+
.create_consumer_version("2")
|
203
|
+
.republish_same_pact(comment: "overall latest")
|
204
|
+
end
|
205
|
+
|
206
|
+
subject { Service.find_for_verification("Wiffle", ["master"], [], options) }
|
207
|
+
|
208
|
+
it "is not included" do
|
209
|
+
expect(subject.size).to eq 1
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
158
214
|
end
|
159
215
|
end
|
160
216
|
end
|
@@ -8,6 +8,7 @@ module PactBroker
|
|
8
8
|
let(:pending_provider_tags) { [] }
|
9
9
|
let(:non_pending_provider_tags) { [] }
|
10
10
|
let(:pending) { false }
|
11
|
+
let(:wip) { false }
|
11
12
|
let(:verifiable_pact) do
|
12
13
|
double(VerifiablePact,
|
13
14
|
head_consumer_tags: head_consumer_tags,
|
@@ -15,7 +16,8 @@ module PactBroker
|
|
15
16
|
provider_name: "Bar",
|
16
17
|
pending_provider_tags: pending_provider_tags,
|
17
18
|
non_pending_provider_tags: non_pending_provider_tags,
|
18
|
-
pending?: pending
|
19
|
+
pending?: pending,
|
20
|
+
wip?: wip
|
19
21
|
)
|
20
22
|
end
|
21
23
|
|
@@ -45,6 +47,15 @@ module PactBroker
|
|
45
47
|
let(:head_consumer_tags) { %w[dev prod feat-x feat-y] }
|
46
48
|
its(:inclusion_reason) { is_expected.to include "'dev', 'prod', 'feat-x' and 'feat-y'" }
|
47
49
|
end
|
50
|
+
|
51
|
+
context "when the pact is a WIP pact" do
|
52
|
+
let(:wip) { true }
|
53
|
+
let(:pending) { true }
|
54
|
+
let(:head_consumer_tags) { %w[feat-x] }
|
55
|
+
let(:pending_provider_tags) { %w[dev] }
|
56
|
+
|
57
|
+
its(:inclusion_reason) { is_expected.to include "This pact is being verified because it is a 'work in progress' pact (ie. it is the pact for the latest version of Foo tagged with 'feat-x' and is still in pending state)."}
|
58
|
+
end
|
48
59
|
end
|
49
60
|
|
50
61
|
describe "#pending_reason" do
|
@@ -1,7 +1,6 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'pact_broker/ui/controllers/index'
|
3
|
-
|
4
1
|
require 'rack/test'
|
2
|
+
require 'pact_broker/ui/controllers/index'
|
3
|
+
require 'pact_broker/index/service'
|
5
4
|
|
6
5
|
module PactBroker
|
7
6
|
module UI
|
@@ -31,13 +30,36 @@ module PactBroker
|
|
31
30
|
expect(last_response.status).to eq(200)
|
32
31
|
end
|
33
32
|
|
33
|
+
context "when pagination parameters are present" do
|
34
|
+
it "passes through pagination parameters to the search" do
|
35
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 2, page_size: 40))
|
36
|
+
get "/", { page: '2', pageSize: '40' }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "when pagination parameters are not present" do
|
41
|
+
context "when tags=true" do
|
42
|
+
it "passes through default pagination parameters to the search with page_size=30" do
|
43
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 1, page_size: 30))
|
44
|
+
get "/", { tags: 'true' }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "when not tags=true" do
|
49
|
+
it "passes through default pagination parameters to the search with page_size=100" do
|
50
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 1, page_size: 100))
|
51
|
+
get "/"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
34
56
|
context "with tags=true" do
|
35
57
|
before do
|
36
58
|
allow(PactBroker::Index::Service).to receive(:find_index_items).and_return([])
|
37
59
|
end
|
38
60
|
|
39
61
|
it "passes tags: true to the IndexService" do
|
40
|
-
expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: true)
|
62
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: true))
|
41
63
|
get "/", { tags: 'true' }
|
42
64
|
end
|
43
65
|
end
|
@@ -48,7 +70,7 @@ module PactBroker
|
|
48
70
|
end
|
49
71
|
|
50
72
|
it "passes tags: ['prod'] to the IndexService" do
|
51
|
-
expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: ["prod"])
|
73
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: ["prod"]))
|
52
74
|
get "/", { tags: ["prod"] }
|
53
75
|
end
|
54
76
|
end
|
@@ -59,7 +81,7 @@ module PactBroker
|
|
59
81
|
end
|
60
82
|
|
61
83
|
it "passes tags: ['prod'] to the IndexService" do
|
62
|
-
expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: ["prod"])
|
84
|
+
expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: ["prod"]))
|
63
85
|
get "/", { tags: "prod" }
|
64
86
|
end
|
65
87
|
end
|
@@ -1,17 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'pact_broker/ui/view_models/index_items'
|
3
|
+
require 'pact_broker/index/page'
|
3
4
|
|
4
5
|
module PactBroker
|
5
6
|
module UI
|
6
7
|
module ViewDomain
|
7
8
|
describe IndexItems do
|
8
9
|
|
9
|
-
let(:relationship_model_4) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "X") }
|
10
|
-
let(:relationship_model_2) { double("PactBroker::Domain::IndexItem", consumer_name: "a", provider_name: "y") }
|
11
|
-
let(:relationship_model_3) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "Z") }
|
12
|
-
let(:relationship_model_1) { double("PactBroker::Domain::IndexItem", consumer_name: "C", provider_name: "A") }
|
10
|
+
let(:relationship_model_4) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "X", consumer_version_order: 1) }
|
11
|
+
let(:relationship_model_2) { double("PactBroker::Domain::IndexItem", consumer_name: "a", provider_name: "y", consumer_version_order: 2) }
|
12
|
+
let(:relationship_model_3) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "Z", consumer_version_order: 3) }
|
13
|
+
let(:relationship_model_1) { double("PactBroker::Domain::IndexItem", consumer_name: "C", provider_name: "A", consumer_version_order: 4) }
|
13
14
|
|
14
|
-
|
15
|
+
let(:page) { PactBroker::Index::Page.new([relationship_model_1, relationship_model_3, relationship_model_4, relationship_model_2], 100) }
|
16
|
+
|
17
|
+
subject { IndexItems.new(page) }
|
15
18
|
|
16
19
|
describe "#each" do
|
17
20
|
|
@@ -26,30 +29,6 @@ module PactBroker
|
|
26
29
|
|
27
30
|
end
|
28
31
|
end
|
29
|
-
|
30
|
-
describe "size_label" do
|
31
|
-
context "when there is 1 relationship" do
|
32
|
-
subject { IndexItems.new([relationship_model_1]) }
|
33
|
-
|
34
|
-
it "returns '1 pact'" do
|
35
|
-
expect(subject.size_label).to eq "1 pact"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
context "when there are 0 relationships" do
|
39
|
-
subject { IndexItems.new([]) }
|
40
|
-
|
41
|
-
it "returns '0 pacts'" do
|
42
|
-
expect(subject.size_label).to eq "0 pacts"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
context "when there is more than 1 relationship" do
|
46
|
-
subject { IndexItems.new([relationship_model_1, relationship_model_1]) }
|
47
|
-
|
48
|
-
it "returns 'x pacts'" do
|
49
|
-
expect(subject.size_label).to eq "2 pacts"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
32
|
end
|
54
33
|
end
|
55
34
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "pact_broker/matrix/quick_row"
|
2
|
+
require "pact_broker/ui/view_models/matrix_line"
|
3
|
+
|
4
|
+
module PactBroker
|
5
|
+
module UI
|
6
|
+
module ViewDomain
|
7
|
+
describe MatrixLine do
|
8
|
+
let(:line) { instance_spy(PactBroker::Matrix::QuickRow) }
|
9
|
+
|
10
|
+
subject(:matrix_line) { described_class.new(line) }
|
11
|
+
|
12
|
+
describe "#provide_version_order" do
|
13
|
+
subject(:provider_version_order) { matrix_line.provider_version_order }
|
14
|
+
|
15
|
+
context "verification execution time exists" do
|
16
|
+
let(:verification_executed_at) { Time.now }
|
17
|
+
|
18
|
+
before do
|
19
|
+
allow(line).to receive(:verification_executed_at)
|
20
|
+
.and_return(verification_executed_at)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns verification execution timestamp" do
|
24
|
+
timestamp = verification_executed_at.to_i
|
25
|
+
|
26
|
+
expect(provider_version_order).to eq(timestamp)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "verification execution time does not exist" do
|
31
|
+
before do
|
32
|
+
allow(line).to receive(:verification_executed_at).and_return(nil)
|
33
|
+
end
|
34
|
+
|
35
|
+
it { is_expected.to eq(0) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
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.
|
4
|
+
version: 2.41.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: 2019-
|
13
|
+
date: 2019-12-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -610,8 +610,12 @@ files:
|
|
610
610
|
- db/ddl_statements.rb
|
611
611
|
- db/ddl_statements/head_matrix_v001.rb
|
612
612
|
- db/ddl_statements/head_matrix_v002.rb
|
613
|
+
- db/ddl_statements/head_pact_tags.rb
|
614
|
+
- db/ddl_statements/latest_pact_consumer_version_orders.rb
|
615
|
+
- db/ddl_statements/latest_pact_publications_by_consumer_versions.rb
|
616
|
+
- db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb
|
613
617
|
- db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb
|
614
|
-
- db/ddl_statements/
|
618
|
+
- db/ddl_statements/latest_verification_ids_for_pact_versions.rb
|
615
619
|
- db/migrations/000001_create_pacticipant_table.rb
|
616
620
|
- db/migrations/000002_create_versions_table.rb
|
617
621
|
- db/migrations/000003_create_pacts_table.rb
|
@@ -719,6 +723,10 @@ files:
|
|
719
723
|
- db/migrations/20190910_add_test_results_to_latest_verifications.rb
|
720
724
|
- db/migrations/20190911_add_test_results_to_latest_verifications_for_pact_versions.rb
|
721
725
|
- db/migrations/20191025_optimise_latest_verification_ids_for_cv_tags.rb
|
726
|
+
- db/migrations/20191028_optimise_latest_tagged_pact_cv_orders.rb
|
727
|
+
- db/migrations/20191030_optimise_latest_pact_publications_by_consumer_versions_.rb
|
728
|
+
- db/migrations/20191031_optimise_latest_verification_ids_for_consumer_version_tags.rb
|
729
|
+
- db/migrations/20191101_create_head_pact_tags.rb
|
722
730
|
- db/migrations/migration_helper.rb
|
723
731
|
- db/test/backwards_compatibility/.rspec
|
724
732
|
- db/test/backwards_compatibility/Appraisals
|
@@ -774,10 +782,13 @@ files:
|
|
774
782
|
- lib/pact_broker.rb
|
775
783
|
- lib/pact_broker/api.rb
|
776
784
|
- lib/pact_broker/api/contracts/base_contract.rb
|
785
|
+
- lib/pact_broker/api/contracts/dry_validation_predicates.rb
|
786
|
+
- lib/pact_broker/api/contracts/dry_validation_workarounds.rb
|
777
787
|
- lib/pact_broker/api/contracts/pacticipant_name_contract.rb
|
778
788
|
- lib/pact_broker/api/contracts/pacticipant_name_validation.rb
|
779
789
|
- lib/pact_broker/api/contracts/put_pact_params_contract.rb
|
780
790
|
- lib/pact_broker/api/contracts/request_validations.rb
|
791
|
+
- lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb
|
781
792
|
- lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
|
782
793
|
- lib/pact_broker/api/contracts/verification_contract.rb
|
783
794
|
- lib/pact_broker/api/contracts/webhook_contract.rb
|
@@ -969,6 +980,7 @@ files:
|
|
969
980
|
- lib/pact_broker/feature_toggle.rb
|
970
981
|
- lib/pact_broker/groups/service.rb
|
971
982
|
- lib/pact_broker/hash_refinements.rb
|
983
|
+
- lib/pact_broker/index/page.rb
|
972
984
|
- lib/pact_broker/index/service.rb
|
973
985
|
- lib/pact_broker/integrations/integration.rb
|
974
986
|
- lib/pact_broker/integrations/service.rb
|
@@ -1028,6 +1040,7 @@ files:
|
|
1028
1040
|
- lib/pact_broker/repositories/helpers.rb
|
1029
1041
|
- lib/pact_broker/services.rb
|
1030
1042
|
- lib/pact_broker/string_refinements.rb
|
1043
|
+
- lib/pact_broker/tags/head_pact_tags.rb
|
1031
1044
|
- lib/pact_broker/tags/repository.rb
|
1032
1045
|
- lib/pact_broker/tags/service.rb
|
1033
1046
|
- lib/pact_broker/tags/tag_with_latest_flag.rb
|
@@ -1056,6 +1069,7 @@ files:
|
|
1056
1069
|
- lib/pact_broker/ui/views/index/_css_and_js.haml
|
1057
1070
|
- lib/pact_broker/ui/views/index/_getting-started.haml
|
1058
1071
|
- lib/pact_broker/ui/views/index/_navbar.haml
|
1072
|
+
- lib/pact_broker/ui/views/index/_pagination.haml
|
1059
1073
|
- lib/pact_broker/ui/views/index/show-with-tags.haml
|
1060
1074
|
- lib/pact_broker/ui/views/index/show.haml
|
1061
1075
|
- lib/pact_broker/ui/views/layouts/main.haml
|
@@ -1155,6 +1169,7 @@ files:
|
|
1155
1169
|
- public/javascripts/material-menu.js
|
1156
1170
|
- public/javascripts/matrix.js
|
1157
1171
|
- public/javascripts/pact.js
|
1172
|
+
- public/javascripts/pagination.js
|
1158
1173
|
- public/js/bootstrap.js
|
1159
1174
|
- public/js/bootstrap.min.js
|
1160
1175
|
- public/js/npm.js
|
@@ -1249,6 +1264,7 @@ files:
|
|
1249
1264
|
- spec/features/update_matrix_spec.rb
|
1250
1265
|
- spec/features/update_pacticipant_spec.rb
|
1251
1266
|
- spec/features/update_webhook_spec.rb
|
1267
|
+
- spec/features/wip_pacts_spec.rb
|
1252
1268
|
- spec/fixtures/a_consumer-a_provider-2.json
|
1253
1269
|
- spec/fixtures/a_consumer-a_provider-3.json
|
1254
1270
|
- spec/fixtures/a_consumer-a_provider-conflict.json
|
@@ -1280,6 +1296,7 @@ files:
|
|
1280
1296
|
- spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
|
1281
1297
|
- spec/lib/pact/doc/markdown/index_renderer_spec.rb
|
1282
1298
|
- spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
|
1299
|
+
- spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
|
1283
1300
|
- spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
|
1284
1301
|
- spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
|
1285
1302
|
- spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
|
@@ -1423,6 +1440,7 @@ files:
|
|
1423
1440
|
- spec/lib/pact_broker/ui/controllers/index_spec.rb
|
1424
1441
|
- spec/lib/pact_broker/ui/view_models/index_item_spec.rb
|
1425
1442
|
- spec/lib/pact_broker/ui/view_models/index_items_spec.rb
|
1443
|
+
- spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
|
1426
1444
|
- spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
|
1427
1445
|
- spec/lib/pact_broker/verifications/repository_spec.rb
|
1428
1446
|
- spec/lib/pact_broker/verifications/sequence_spec.rb
|
@@ -1618,6 +1636,7 @@ test_files:
|
|
1618
1636
|
- spec/features/update_matrix_spec.rb
|
1619
1637
|
- spec/features/update_pacticipant_spec.rb
|
1620
1638
|
- spec/features/update_webhook_spec.rb
|
1639
|
+
- spec/features/wip_pacts_spec.rb
|
1621
1640
|
- spec/fixtures/a_consumer-a_provider-2.json
|
1622
1641
|
- spec/fixtures/a_consumer-a_provider-3.json
|
1623
1642
|
- spec/fixtures/a_consumer-a_provider-conflict.json
|
@@ -1649,6 +1668,7 @@ test_files:
|
|
1649
1668
|
- spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
|
1650
1669
|
- spec/lib/pact/doc/markdown/index_renderer_spec.rb
|
1651
1670
|
- spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
|
1671
|
+
- spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
|
1652
1672
|
- spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
|
1653
1673
|
- spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
|
1654
1674
|
- spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
|
@@ -1792,6 +1812,7 @@ test_files:
|
|
1792
1812
|
- spec/lib/pact_broker/ui/controllers/index_spec.rb
|
1793
1813
|
- spec/lib/pact_broker/ui/view_models/index_item_spec.rb
|
1794
1814
|
- spec/lib/pact_broker/ui/view_models/index_items_spec.rb
|
1815
|
+
- spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
|
1795
1816
|
- spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
|
1796
1817
|
- spec/lib/pact_broker/verifications/repository_spec.rb
|
1797
1818
|
- spec/lib/pact_broker/verifications/sequence_spec.rb
|