pact_broker 2.0.5 → 2.1.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 +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
|