pact_broker 2.0.5 → 2.1.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 +5 -0
- data/RELEASING.md +1 -1
- data/db/migrations/33_create_config_table.rb +1 -1
- data/db/migrations/34_create_index_on_consumer_version_order.rb +1 -1
- data/db/migrations/35_create_index_on_names.rb +1 -1
- data/db/pact_broker_database.sqlite3 +0 -0
- data/lib/pact_broker/api.rb +1 -0
- data/lib/pact_broker/api/resources/authentication.rb +30 -0
- data/lib/pact_broker/api/resources/base_resource.rb +14 -0
- data/lib/pact_broker/app.rb +2 -0
- data/lib/pact_broker/configuration.rb +34 -0
- data/lib/pact_broker/db/migrate.rb +15 -0
- data/lib/pact_broker/db/version.rb +17 -0
- data/lib/pact_broker/diagnostic/resources/base_resource.rb +13 -0
- data/lib/pact_broker/pacts/all_pact_publications.rb +5 -0
- data/lib/pact_broker/pacts/repository.rb +6 -1
- data/lib/pact_broker/repositories/helpers.rb +4 -0
- data/lib/pact_broker/tasks.rb +1 -0
- data/lib/pact_broker/tasks/migration_task.rb +7 -6
- data/lib/pact_broker/tasks/version_task.rb +38 -0
- data/lib/pact_broker/version.rb +1 -1
- data/lib/rack/pact_broker/ui_authentication.rb +26 -0
- data/pact_broker.gemspec +1 -0
- data/script/recreate-pg-db.sh +6 -5
- data/spec/features/create_webhook_spec.rb +2 -2
- data/spec/features/delete_pact_spec.rb +1 -1
- data/spec/features/delete_version_spec.rb +2 -2
- data/spec/features/delete_webhook_spec.rb +2 -2
- data/spec/features/get_diff_spec.rb +2 -2
- data/spec/features/get_latest_tagged_pact_spec.rb +22 -0
- data/spec/features/get_latest_untagged_pact_spec.rb +22 -0
- data/spec/features/get_pact_spec.rb +2 -2
- data/spec/features/get_pact_versions_spec.rb +2 -2
- data/spec/features/get_previous_distinct_version.rb +2 -2
- data/spec/features/get_provider_pacts_spec.rb +2 -2
- data/spec/features/get_verifications_for_consumer_version_spec.rb +2 -2
- data/spec/features/get_version_spec.rb +3 -3
- data/spec/features/get_versions_spec.rb +2 -2
- data/spec/features/merge_pact_spec.rb +2 -2
- data/spec/features/publish_pact_spec.rb +1 -1
- data/spec/features/publish_verification_spec.rb +1 -1
- data/spec/integration/app_spec.rb +1 -1
- data/spec/integration/endpoints/group.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/representable_pact_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/app_spec.rb +128 -0
- data/spec/lib/pact_broker/domain/order_versions_spec.rb +4 -4
- data/spec/lib/pact_broker/domain/verification_spec.rb +2 -2
- data/spec/lib/pact_broker/domain/version_spec.rb +2 -2
- data/spec/lib/pact_broker/pacticipants/repository_spec.rb +4 -4
- data/spec/lib/pact_broker/pacticipants/service_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/diff_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/merger_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/pact_version_spec.rb +3 -3
- data/spec/lib/pact_broker/pacts/repository_spec.rb +61 -14
- data/spec/lib/pact_broker/tags/repository_spec.rb +4 -4
- data/spec/lib/pact_broker/tags/service_spec.rb +1 -1
- data/spec/lib/pact_broker/ui/controllers/relationships_spec.rb +1 -1
- data/spec/lib/pact_broker/verifications/repository_spec.rb +7 -7
- data/spec/lib/pact_broker/verifications/service_spec.rb +1 -1
- data/spec/lib/pact_broker/versions/repository_spec.rb +3 -3
- data/spec/lib/pact_broker/versions/service_spec.rb +1 -1
- data/spec/lib/pact_broker/webhooks/repository_spec.rb +2 -2
- data/spec/lib/pact_broker/webhooks/service_spec.rb +1 -1
- data/spec/service_consumers/provider_states_for_pact_broker_client.rb +10 -10
- data/spec/support/rspec_matchers.rb +2 -2
- data/spec/support/{provider_state_builder.rb → test_data_builder.rb} +2 -2
- data/tasks/database.rb +8 -9
- data/tasks/db.rake +0 -5
- data/tasks/test_db.rake +11 -0
- metadata +29 -5
@@ -18,7 +18,7 @@ module PactBroker
|
|
18
18
|
body: body)
|
19
19
|
end
|
20
20
|
let(:webhook) { Domain::Webhook.new(request: request)}
|
21
|
-
let(:test_data_builder) {
|
21
|
+
let(:test_data_builder) { TestDataBuilder.new }
|
22
22
|
let(:consumer) { test_data_builder.create_pacticipant 'Consumer'; test_data_builder.pacticipant}
|
23
23
|
let(:provider) { test_data_builder.create_pacticipant 'Provider'; test_data_builder.pacticipant}
|
24
24
|
let(:uuid) { 'the-uuid' }
|
@@ -202,7 +202,7 @@ module PactBroker
|
|
202
202
|
end
|
203
203
|
|
204
204
|
describe "find_by_consumer_and_provider" do
|
205
|
-
let(:test_data_builder) {
|
205
|
+
let(:test_data_builder) { TestDataBuilder.new }
|
206
206
|
subject { Repository.new.find_by_consumer_and_provider test_data_builder.consumer, test_data_builder.provider}
|
207
207
|
|
208
208
|
context "when a webhook exists with a matching consumer and provider" do
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
Pact.provider_states_for "Pact Broker Client" do
|
4
4
|
|
@@ -8,7 +8,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
8
8
|
|
9
9
|
provider_state "the 'Pricing Service' already exists in the pact-broker" do
|
10
10
|
set_up do
|
11
|
-
|
11
|
+
TestDataBuilder.new.create_pricing_service.create_pricing_service_version("1.3.0")
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -21,7 +21,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
21
21
|
|
22
22
|
provider_state "a pact between Condor and the Pricing Service exists" do
|
23
23
|
set_up do
|
24
|
-
|
24
|
+
TestDataBuilder.new
|
25
25
|
.create_condor
|
26
26
|
.create_condor_version('1.3.0')
|
27
27
|
.create_pricing_service
|
@@ -35,7 +35,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
35
35
|
|
36
36
|
provider_state "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0" do
|
37
37
|
set_up do
|
38
|
-
|
38
|
+
TestDataBuilder.new
|
39
39
|
.create_condor
|
40
40
|
.create_condor_version('1.3.0')
|
41
41
|
.create_pricing_service
|
@@ -45,19 +45,19 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
45
45
|
|
46
46
|
provider_state "'Condor' already exist in the pact-broker, but the 'Pricing Service' does not" do
|
47
47
|
set_up do
|
48
|
-
|
48
|
+
TestDataBuilder.new.create_condor
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
provider_state "'Condor' exists in the pact-broker" do
|
53
53
|
set_up do
|
54
|
-
|
54
|
+
TestDataBuilder.new.create_condor.create_condor_version('1.3.0')
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
provider_state "'Condor' exists in the pact-broker with version 1.3.0, tagged with 'prod'" do
|
59
59
|
set_up do
|
60
|
-
|
60
|
+
TestDataBuilder.new
|
61
61
|
.create_pacticipant("Condor")
|
62
62
|
.create_version('1.3.0')
|
63
63
|
.create_tag('prod')
|
@@ -70,7 +70,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
70
70
|
|
71
71
|
provider_state "a pact between Condor and the Pricing Service exists for the production version of Condor" do
|
72
72
|
set_up do
|
73
|
-
|
73
|
+
TestDataBuilder.new
|
74
74
|
.create_consumer("Condor")
|
75
75
|
.create_consumer_version('1.3.0')
|
76
76
|
.create_consumer_version_tag('prod')
|
@@ -91,7 +91,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
91
91
|
|
92
92
|
provider_state "a latest pact between Condor and the Pricing Service exists" do
|
93
93
|
set_up do
|
94
|
-
|
94
|
+
TestDataBuilder.new
|
95
95
|
.create_consumer("Condor")
|
96
96
|
.create_consumer_version('1.3.0')
|
97
97
|
.create_provider("Pricing Service")
|
@@ -101,7 +101,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
101
101
|
|
102
102
|
provider_state "tagged as prod pact between Condor and the Pricing Service exists" do
|
103
103
|
set_up do
|
104
|
-
|
104
|
+
TestDataBuilder.new
|
105
105
|
.create_consumer("Condor")
|
106
106
|
.create_consumer_version('1.3.0')
|
107
107
|
.create_consumer_version_tag('prod')
|
@@ -21,7 +21,7 @@ require 'pact_broker/tags/repository'
|
|
21
21
|
require 'pact_broker/webhooks/repository'
|
22
22
|
require 'ostruct'
|
23
23
|
|
24
|
-
class
|
24
|
+
class TestDataBuilder
|
25
25
|
|
26
26
|
include PactBroker::Repositories
|
27
27
|
|
@@ -183,7 +183,7 @@ class ProviderStateBuilder
|
|
183
183
|
|
184
184
|
def set_created_at_if_set created_at, table_name, selector
|
185
185
|
if created_at
|
186
|
-
Sequel::Model.db
|
186
|
+
Sequel::Model.db[table_name].where(selector.keys.first => selector.values.first).update(created_at: created_at.xmlschema)
|
187
187
|
end
|
188
188
|
end
|
189
189
|
|
data/tasks/database.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'pact_broker/project_root'
|
2
|
+
require 'pact_broker/db/migrate'
|
3
|
+
require 'pact_broker/db/version'
|
2
4
|
require 'sequel'
|
3
5
|
require 'yaml'
|
4
|
-
require 'db'
|
5
6
|
|
6
7
|
Sequel.extension :migration
|
7
8
|
|
@@ -14,15 +15,11 @@ module PactBroker
|
|
14
15
|
|
15
16
|
def migrate target = nil
|
16
17
|
opts = target ? {target: target} : {}
|
17
|
-
|
18
|
+
PactBroker::DB::Migrate.call(database, opts)
|
18
19
|
end
|
19
20
|
|
20
21
|
def version
|
21
|
-
|
22
|
-
database[:schema_info].first[:version]
|
23
|
-
else
|
24
|
-
0
|
25
|
-
end
|
22
|
+
PactBroker::DB::Version.call(database)
|
26
23
|
end
|
27
24
|
|
28
25
|
def delete_database_file
|
@@ -61,7 +58,6 @@ module PactBroker
|
|
61
58
|
end
|
62
59
|
|
63
60
|
def create
|
64
|
-
puts adapter
|
65
61
|
if psql?
|
66
62
|
system('psql postgres -c "create database pact_broker"')
|
67
63
|
system('psql postgres -c "CREATE USER pact_broker WITH PASSWORD \'pact_broker\'"')
|
@@ -91,7 +87,10 @@ module PactBroker
|
|
91
87
|
end
|
92
88
|
|
93
89
|
def database
|
94
|
-
@@database ||=
|
90
|
+
@@database ||= begin
|
91
|
+
require 'db'
|
92
|
+
::DB.connection_for_env env
|
93
|
+
end
|
95
94
|
end
|
96
95
|
|
97
96
|
private
|
data/tasks/db.rake
CHANGED
data/tasks/test_db.rake
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'pact_broker/tasks'
|
2
|
+
|
3
|
+
PactBroker::DB::MigrationTask.new do | task |
|
4
|
+
require 'db'
|
5
|
+
task.database_connection = DB::PACT_BROKER_DB
|
6
|
+
end
|
7
|
+
|
8
|
+
PactBroker::DB::VersionTask.new do | task |
|
9
|
+
require 'db'
|
10
|
+
task.database_connection = DB::PACT_BROKER_DB
|
11
|
+
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.0
|
4
|
+
version: 2.1.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-
|
13
|
+
date: 2017-07-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -388,6 +388,20 @@ dependencies:
|
|
388
388
|
- - ">="
|
389
389
|
- !ruby/object:Gem::Version
|
390
390
|
version: '0'
|
391
|
+
- !ruby/object:Gem::Dependency
|
392
|
+
name: dry-types
|
393
|
+
requirement: !ruby/object:Gem::Requirement
|
394
|
+
requirements:
|
395
|
+
- - "~>"
|
396
|
+
- !ruby/object:Gem::Version
|
397
|
+
version: 0.10.3
|
398
|
+
type: :development
|
399
|
+
prerelease: false
|
400
|
+
version_requirements: !ruby/object:Gem::Requirement
|
401
|
+
requirements:
|
402
|
+
- - "~>"
|
403
|
+
- !ruby/object:Gem::Version
|
404
|
+
version: 0.10.3
|
391
405
|
description: A server that stores and returns pact files generated by the pact gem.
|
392
406
|
It enables head/prod cross testing of the consumer and provider projects.
|
393
407
|
email:
|
@@ -499,6 +513,7 @@ files:
|
|
499
513
|
- lib/pact_broker/api/decorators/webhooks_decorator.rb
|
500
514
|
- lib/pact_broker/api/pact_broker_urls.rb
|
501
515
|
- lib/pact_broker/api/renderers/html_pact_renderer.rb
|
516
|
+
- lib/pact_broker/api/resources/authentication.rb
|
502
517
|
- lib/pact_broker/api/resources/base_resource.rb
|
503
518
|
- lib/pact_broker/api/resources/group.rb
|
504
519
|
- lib/pact_broker/api/resources/index.rb
|
@@ -532,7 +547,9 @@ files:
|
|
532
547
|
- lib/pact_broker/constants.rb
|
533
548
|
- lib/pact_broker/date_helper.rb
|
534
549
|
- lib/pact_broker/db.rb
|
550
|
+
- lib/pact_broker/db/migrate.rb
|
535
551
|
- lib/pact_broker/db/validate_encoding.rb
|
552
|
+
- lib/pact_broker/db/version.rb
|
536
553
|
- lib/pact_broker/diagnostic/app.rb
|
537
554
|
- lib/pact_broker/diagnostic/resources/base_resource.rb
|
538
555
|
- lib/pact_broker/diagnostic/resources/dependencies.rb
|
@@ -598,6 +615,7 @@ files:
|
|
598
615
|
- lib/pact_broker/tags/service.rb
|
599
616
|
- lib/pact_broker/tasks.rb
|
600
617
|
- lib/pact_broker/tasks/migration_task.rb
|
618
|
+
- lib/pact_broker/tasks/version_task.rb
|
601
619
|
- lib/pact_broker/ui.rb
|
602
620
|
- lib/pact_broker/ui/app.rb
|
603
621
|
- lib/pact_broker/ui/controllers/base_controller.rb
|
@@ -632,6 +650,7 @@ files:
|
|
632
650
|
- lib/rack/pact_broker/convert_file_extension_to_accept_header.rb
|
633
651
|
- lib/rack/pact_broker/database_transaction.rb
|
634
652
|
- lib/rack/pact_broker/invalid_uri_protection.rb
|
653
|
+
- lib/rack/pact_broker/ui_authentication.rb
|
635
654
|
- pact_broker.gemspec
|
636
655
|
- pact_broker_client-pact_broker.json
|
637
656
|
- public/Network Graph_files/d3.v3.js
|
@@ -672,6 +691,8 @@ files:
|
|
672
691
|
- spec/features/delete_version_spec.rb
|
673
692
|
- spec/features/delete_webhook_spec.rb
|
674
693
|
- spec/features/get_diff_spec.rb
|
694
|
+
- spec/features/get_latest_tagged_pact_spec.rb
|
695
|
+
- spec/features/get_latest_untagged_pact_spec.rb
|
675
696
|
- spec/features/get_pact_spec.rb
|
676
697
|
- spec/features/get_pact_versions_spec.rb
|
677
698
|
- spec/features/get_previous_distinct_version.rb
|
@@ -789,14 +810,15 @@ files:
|
|
789
810
|
- spec/spec_helper.rb
|
790
811
|
- spec/support/database_cleaner.rb
|
791
812
|
- spec/support/fixture_helpers.rb
|
792
|
-
- spec/support/provider_state_builder.rb
|
793
813
|
- spec/support/rspec_match_hash.rb
|
794
814
|
- spec/support/rspec_matchers.rb
|
795
815
|
- spec/support/shared_examples_for_responses.rb
|
816
|
+
- spec/support/test_data_builder.rb
|
796
817
|
- tasks/database.rb
|
797
818
|
- tasks/db.rake
|
798
819
|
- tasks/pact.rake
|
799
820
|
- tasks/rspec.rake
|
821
|
+
- tasks/test_db.rake
|
800
822
|
- vendor/hal-browser/.gitignore
|
801
823
|
- vendor/hal-browser/MIT-LICENSE.txt
|
802
824
|
- vendor/hal-browser/README.md
|
@@ -855,7 +877,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
855
877
|
version: '0'
|
856
878
|
requirements: []
|
857
879
|
rubyforge_project:
|
858
|
-
rubygems_version: 2.
|
880
|
+
rubygems_version: 2.6.12
|
859
881
|
signing_key:
|
860
882
|
specification_version: 4
|
861
883
|
summary: See description
|
@@ -865,6 +887,8 @@ test_files:
|
|
865
887
|
- spec/features/delete_version_spec.rb
|
866
888
|
- spec/features/delete_webhook_spec.rb
|
867
889
|
- spec/features/get_diff_spec.rb
|
890
|
+
- spec/features/get_latest_tagged_pact_spec.rb
|
891
|
+
- spec/features/get_latest_untagged_pact_spec.rb
|
868
892
|
- spec/features/get_pact_spec.rb
|
869
893
|
- spec/features/get_pact_versions_spec.rb
|
870
894
|
- spec/features/get_previous_distinct_version.rb
|
@@ -982,7 +1006,7 @@ test_files:
|
|
982
1006
|
- spec/spec_helper.rb
|
983
1007
|
- spec/support/database_cleaner.rb
|
984
1008
|
- spec/support/fixture_helpers.rb
|
985
|
-
- spec/support/provider_state_builder.rb
|
986
1009
|
- spec/support/rspec_match_hash.rb
|
987
1010
|
- spec/support/rspec_matchers.rb
|
988
1011
|
- spec/support/shared_examples_for_responses.rb
|
1012
|
+
- spec/support/test_data_builder.rb
|