pact_broker 2.7.0.beta.1 → 2.7.0.beta.2
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/.gitignore +1 -0
- data/CHANGELOG.md +30 -4
- data/db/migrations/{01_create_pacticipant_table.rb → 000001_create_pacticipant_table.rb} +0 -0
- data/db/migrations/{02_create_versions_table.rb → 000002_create_versions_table.rb} +0 -0
- data/db/migrations/{03_create_pacts_table.rb → 000003_create_pacts_table.rb} +0 -0
- data/db/migrations/{04_create_tags_table.rb → 000004_create_tags_table.rb} +0 -0
- data/db/migrations/{05_add_order_column_to_version.rb → 000005_add_order_column_to_version.rb} +0 -0
- data/db/migrations/{06_make_version_foreign_key_mandatory.rb → 000006_make_version_foreign_key_mandatory.rb} +0 -0
- data/db/migrations/{07_increase_json_content_length.rb → 000007_increase_json_content_length.rb} +0 -0
- data/db/migrations/{08_create_latest_pact_view.rb → 000008_create_latest_pact_view.rb} +0 -0
- data/db/migrations/{09_add_timestamps.rb → 000009_add_timestamps.rb} +0 -0
- data/db/migrations/{10_populate_timestamps.rb → 000010_populate_timestamps.rb} +0 -0
- data/db/migrations/{11_made_timestamps_mandatory.rb → 000011_made_timestamps_mandatory.rb} +0 -0
- data/db/migrations/{12_create_webhooks_table.rb → 000012_create_webhooks_table.rb} +0 -0
- data/db/migrations/{13_add_columns_to_webhooks.rb → 000013_add_columns_to_webhooks.rb} +0 -0
- data/db/migrations/{14_add_timestamps_to_pact_views.rb → 000014_add_timestamps_to_pact_views.rb} +0 -0
- data/db/migrations/{15_create_pact_version_content.rb → 000015_create_pact_version_content.rb} +0 -0
- data/db/migrations/{16_add_pact_content_foreign_key_to_pacts.rb → 000016_add_pact_content_foreign_key_to_pacts.rb} +0 -0
- data/db/migrations/{17_migrate_json_content_to_pact_version_content_table.rb → 000017_migrate_json_content_to_pact_version_content_table.rb} +0 -0
- data/db/migrations/{18_drop_json_content_column_from_pacts.rb → 000018_drop_json_content_column_from_pacts.rb} +0 -0
- data/db/migrations/{19_make_pact_version_content_sha_not_nullable.rb → 000019_make_pact_version_content_sha_not_nullable.rb} +0 -0
- data/db/migrations/{20_add_pact_version_content_sha_to_all_pacts_view.rb → 000020_add_pact_version_content_sha_to_all_pacts_view.rb} +0 -0
- data/db/migrations/{21_recreate_latest_pacts_view.rb → 000021_recreate_latest_pacts_view.rb} +0 -0
- data/db/migrations/{22_create_latest_tagged_pacts_view.rb → 000022_create_latest_tagged_pacts_view.rb} +0 -0
- data/db/migrations/{23_create_pact_versions_table.rb → 000023_create_pact_versions_table.rb} +0 -0
- data/db/migrations/{24_populate_pact_versions.rb → 000024_populate_pact_versions.rb} +0 -0
- data/db/migrations/{25_make_pv_pacticipants_mandatory.rb → 000025_make_pv_pacticipants_mandatory.rb} +0 -0
- data/db/migrations/{26_create_pact_publications.rb → 000026_create_pact_publications.rb} +0 -0
- data/db/migrations/{27_populate_pact_publications.rb → 000027_populate_pact_publications.rb} +0 -0
- data/db/migrations/{28_create_all_pact_publications.rb → 000028_create_all_pact_publications.rb} +0 -0
- data/db/migrations/{29_create_latest_tagged_pact_publications.rb → 000029_create_latest_tagged_pact_publications.rb} +0 -0
- data/db/migrations/{30_drop_old_tables_and_views.rb → 000030_drop_old_tables_and_views.rb} +0 -0
- data/db/migrations/{31_create_verifications.rb → 000031_create_verifications.rb} +0 -0
- data/db/migrations/{32_create_latest_verifications.rb → 000032_create_latest_verifications.rb} +0 -0
- data/db/migrations/{33_create_config_table.rb → 000033_create_config_table.rb} +0 -0
- data/db/migrations/{34_create_index_on_consumer_version_order.rb → 000034_create_index_on_consumer_version_order.rb} +0 -0
- data/db/migrations/{35_create_index_on_names.rb → 000035_create_index_on_names.rb} +0 -0
- data/db/migrations/{36_create_webhook_execution.rb → 000036_create_webhook_execution.rb} +0 -0
- data/db/migrations/{37_create_labels_table.rb → 000037_create_labels_table.rb} +0 -0
- data/db/migrations/{38_create_triggered_webhooks_table.rb → 000038_create_triggered_webhooks_table.rb} +0 -0
- data/db/migrations/{39_add_triggered_webhooks_fk_to_execution.rb → 000039_add_triggered_webhooks_fk_to_execution.rb} +0 -0
- data/db/migrations/{40_create_latest_triggered_webhooks_view.rb → 000040_create_latest_triggered_webhooks_view.rb} +0 -0
- data/db/migrations/{41_migrate_execution_data.rb → 000041_migrate_execution_data.rb} +0 -0
- data/db/migrations/{42_delete_orphan_webhook_data.rb → 000042_delete_orphan_webhook_data.rb} +0 -0
- data/db/migrations/{43_add_provider_version_to_verification.rb → 000043_add_provider_version_to_verification.rb} +0 -0
- data/db/migrations/{44_populate_verifications_provider_version_id.rb → 000044_populate_verifications_provider_version_id.rb} +0 -0
- data/db/migrations/{45_set_verification_provider_number_nullable.rb → 000045_set_verification_provider_number_nullable.rb} +0 -0
- data/db/migrations/{46_recreate_latest_verifications.rb → 000046_recreate_latest_verifications.rb} +0 -0
- data/db/migrations/{47_create_all_verifications.rb → 000047_create_all_verifications.rb} +4 -0
- data/db/pact_broker_database.sqlite3 +0 -0
- data/db/test/backwards_compatibility/Appraisals +8 -0
- data/db/test/backwards_compatibility/Rakefile +23 -6
- data/db/test/backwards_compatibility/gemfiles/1.18.0.gemfile.lock +20 -19
- data/db/test/backwards_compatibility/gemfiles/2.0.0.gemfile.lock +20 -19
- data/db/test/backwards_compatibility/gemfiles/2.1.0.gemfile.lock +20 -19
- data/db/test/backwards_compatibility/gemfiles/2.2.0.gemfile.lock +29 -26
- data/db/test/backwards_compatibility/gemfiles/2.3.0.gemfile.lock +29 -26
- data/db/test/backwards_compatibility/gemfiles/2.4.2.gemfile.lock +29 -26
- data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile +13 -0
- data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile.lock +199 -0
- data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile +13 -0
- data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile.lock +199 -0
- data/db/test/backwards_compatibility/gemfiles/head.gemfile.lock +30 -27
- data/db/test/backwards_compatibility/spec/publish_pact_spec.rb +1 -1
- data/db/test/change_migration_strategy/Rakefile +21 -0
- data/db/test/change_migration_strategy/before/Gemfile +6 -0
- data/lib/pact_broker/api/decorators/matrix_decorator.rb +19 -1
- data/lib/pact_broker/api/decorators/matrix_text_decorator.rb +29 -0
- data/lib/pact_broker/api/renderers/html_pact_renderer.rb +1 -1
- data/lib/pact_broker/api/resources/matrix.rb +21 -11
- data/lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb +2 -2
- data/lib/pact_broker/app.rb +27 -2
- data/lib/pact_broker/db/migrate.rb +1 -1
- data/lib/pact_broker/db/version.rb +4 -5
- data/lib/pact_broker/db.rb +1 -1
- data/lib/pact_broker/domain/relationship.rb +4 -24
- data/lib/pact_broker/matrix/parse_query.rb +22 -0
- data/lib/pact_broker/matrix/repository.rb +57 -26
- data/lib/pact_broker/matrix/service.rb +23 -16
- data/lib/pact_broker/pacticipants/service.rb +5 -21
- data/lib/pact_broker/pacts/pact_publication.rb +0 -4
- data/lib/pact_broker/pacts/repository.rb +1 -1
- data/lib/pact_broker/tags/service.rb +1 -0
- data/lib/pact_broker/ui/controllers/matrix.rb +3 -2
- data/lib/pact_broker/ui/controllers/relationships.rb +2 -2
- data/lib/pact_broker/ui/view_models/matrix_line.rb +38 -5
- data/lib/pact_broker/ui/view_models/relationship.rb +1 -19
- data/lib/pact_broker/ui/views/matrix/show.haml +18 -3
- data/lib/pact_broker/ui/views/relationships/show.haml +2 -2
- data/lib/pact_broker/verifications/repository.rb +0 -3
- data/lib/pact_broker/version.rb +1 -1
- data/lib/rack/hal_browser/redirect.rb +2 -2
- data/lib/rack/pact_broker/configurable_make_it_later.rb +24 -0
- data/lib/rack/pact_broker/no_auth.rb +13 -0
- data/pact_broker.gemspec +1 -0
- data/script/seed-matrix.rb +71 -0
- data/script/seed.rb +0 -5
- data/spec/features/get_matrix_spec.rb +4 -1
- data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +41 -7
- data/spec/lib/pact_broker/api/resources/matrix_spec.rb +6 -2
- data/spec/lib/pact_broker/app_spec.rb +69 -0
- data/spec/lib/pact_broker/domain/relationship_spec.rb +1 -1
- data/spec/lib/pact_broker/matrix/parse_query_spec.rb +79 -0
- data/spec/lib/pact_broker/matrix/repository_spec.rb +244 -12
- data/spec/lib/pact_broker/matrix/service_spec.rb +39 -9
- data/spec/lib/pact_broker/pacticipants/service_spec.rb +4 -78
- data/spec/lib/pact_broker/pacts/repository_spec.rb +14 -16
- data/spec/lib/pact_broker/ui/view_models/relationship_spec.rb +5 -4
- data/spec/migrations/change_migration_strategy_spec.rb +86 -0
- data/spec/service_consumers/provider_states_for_pact_broker_client.rb +34 -0
- data/spec/support/test_data_builder.rb +6 -0
- data/tasks/database.rb +1 -1
- metadata +78 -52
- data/lib/pact_broker/ui/views/relationships/show-prod-tags.haml +0 -83
- data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +0 -35
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
|
|
3
|
+
describe "changing from integer to timestamp migrations", no_db_clean: true do
|
|
4
|
+
|
|
5
|
+
TEST_DIR = "db/test/change_migration_strategy"
|
|
6
|
+
DATABASE_PATH = "#{TEST_DIR}/pact_broker_database.sqlite3"
|
|
7
|
+
DATABASE_CONFIG = {adapter: "sqlite", database: DATABASE_PATH, :encoding => 'utf8'}
|
|
8
|
+
|
|
9
|
+
before do
|
|
10
|
+
@db = Sequel.connect(DATABASE_CONFIG)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
after do
|
|
14
|
+
@db.disconnect
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "has a clean environment" do
|
|
18
|
+
FileUtils.rm_rf DATABASE_PATH
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "uses pact_broker v 2.6.0" do
|
|
22
|
+
Dir.chdir(TEST_DIR) do
|
|
23
|
+
Bundler.with_clean_env do
|
|
24
|
+
`bundle install --gemfile before/Gemfile`
|
|
25
|
+
expect(`BUNDLE_GEMFILE=before/Gemfile bundle exec rake pact_broker:version`.strip).to eq '2.6.0'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "migrates using integer migrations using pact_broker v2.6.0" do
|
|
31
|
+
Dir.chdir(TEST_DIR) do
|
|
32
|
+
Bundler.with_clean_env do
|
|
33
|
+
output = `BUNDLE_GEMFILE=before/Gemfile bundle exec rake pact_broker:db:migrate[35]`
|
|
34
|
+
puts output
|
|
35
|
+
output = `BUNDLE_GEMFILE=before/Gemfile bundle exec rake pact_broker:db:version`
|
|
36
|
+
puts output
|
|
37
|
+
expect(output.strip).to eq "35"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "allows data to be inserted" do
|
|
43
|
+
consumer_id = @db[:pacticipants].insert(name: 'Foo', created_at: DateTime.now, updated_at: DateTime.now)
|
|
44
|
+
provider_id = @db[:pacticipants].insert(name: 'Bar', created_at: DateTime.now, updated_at: DateTime.now)
|
|
45
|
+
version_id = @db[:versions].insert(number: '1.2.3', pacticipant_id: consumer_id, created_at: DateTime.now, updated_at: DateTime.now)
|
|
46
|
+
pact_json = {consumer: {name: 'Foo'}, provider: {name: 'Bar'}, interactions: []}.to_json
|
|
47
|
+
pact_version_id = @db[:pact_versions].insert(sha: '123', content: pact_json, created_at: DateTime.now, consumer_id: consumer_id, provider_id: provider_id)
|
|
48
|
+
pact_publication_id = @db[:pact_publications].insert(consumer_version_id: version_id, provider_id: provider_id, revision_number: 1, pact_version_id: pact_version_id, created_at: DateTime.now)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "does not have a schema_migrations table" do
|
|
52
|
+
expect(@db.table_exists?(:schema_migrations)).to be false
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "migrates using timestamp migrations using pact_broker > 2.6.0" do
|
|
56
|
+
Dir.chdir(TEST_DIR) do
|
|
57
|
+
output = `bundle exec rake pact_broker:db:migrate`
|
|
58
|
+
puts output
|
|
59
|
+
output = `bundle exec rake pact_broker:db:version`
|
|
60
|
+
puts output
|
|
61
|
+
expect(output.strip).to eq "47"
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "uses the schema_migrations table after v2.6.0" do
|
|
66
|
+
expect(@db.table_exists?(:schema_migrations)).to be true
|
|
67
|
+
migrations_count = Dir.glob("db/migrations/**.*").select{ |f| f =~ /\/\d+/ }.count
|
|
68
|
+
expect(migrations_count).to be >= 47
|
|
69
|
+
expect(@db[:schema_migrations].count).to eq migrations_count
|
|
70
|
+
expect(@db[:schema_migrations].order(:filename).first[:filename]).to eq '000001_create_pacticipant_table.rb'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "doesn't need the schema_info table after this" do
|
|
74
|
+
@db.drop_table(:schema_info)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "allows rollback" do
|
|
78
|
+
Dir.chdir(TEST_DIR) do
|
|
79
|
+
output = `bundle exec rake pact_broker:db:migrate[45]`
|
|
80
|
+
puts output
|
|
81
|
+
output = `bundle exec rake pact_broker:db:version`
|
|
82
|
+
puts output
|
|
83
|
+
expect(output.strip).to eq "45"
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -2,6 +2,18 @@ require 'spec/support/test_data_builder'
|
|
|
2
2
|
|
|
3
3
|
Pact.provider_states_for "Pact Broker Client" do
|
|
4
4
|
|
|
5
|
+
provider_state "the pact for Foo Thing version 1.2.3 has been verified by Bar version 4.5.6" do
|
|
6
|
+
set_up do
|
|
7
|
+
TestDataBuilder.new
|
|
8
|
+
.create_pact_with_hierarchy("Foo Thing", "1.2.3", "Bar")
|
|
9
|
+
.create_verification(provider_version: "4.5.6")
|
|
10
|
+
.create_verification(provider_version: "7.8.9", number: 2)
|
|
11
|
+
.create_consumer_version("2.0.0")
|
|
12
|
+
.create_pact
|
|
13
|
+
.create_verification(provider_version: "4.5.6")
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
5
17
|
provider_state "the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6" do
|
|
6
18
|
set_up do
|
|
7
19
|
TestDataBuilder.new
|
|
@@ -14,6 +26,28 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
|
14
26
|
end
|
|
15
27
|
end
|
|
16
28
|
|
|
29
|
+
provider_state "the pact for Foo version 1.2.3 and 1.2.4 has been verified by Bar version 4.5.6" do
|
|
30
|
+
set_up do
|
|
31
|
+
TestDataBuilder.new
|
|
32
|
+
.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
|
33
|
+
.create_verification(provider_version: "4.5.6")
|
|
34
|
+
.create_consumer_version("1.2.4")
|
|
35
|
+
.create_pact
|
|
36
|
+
.create_verification(provider_version: "4.5.6")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
provider_state "the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6, and 1.2.4 unsuccessfully by 9.9.9" do
|
|
41
|
+
set_up do
|
|
42
|
+
TestDataBuilder.new
|
|
43
|
+
.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
|
44
|
+
.create_verification(provider_version: "4.5.6")
|
|
45
|
+
.create_consumer_version("1.2.4")
|
|
46
|
+
.create_pact
|
|
47
|
+
.create_verification(provider_version: "9.9.9", success: false)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
17
51
|
provider_state "the 'Pricing Service' does not exist in the pact-broker" do
|
|
18
52
|
no_op
|
|
19
53
|
end
|
|
@@ -143,6 +143,12 @@ class TestDataBuilder
|
|
|
143
143
|
self
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
+
def create_provider_version version_number = "1.0.#{model_counter}"
|
|
147
|
+
@version = PactBroker::Domain::Version.create(:number => version_number, :pacticipant => @provider)
|
|
148
|
+
@provider_version = @version
|
|
149
|
+
self
|
|
150
|
+
end
|
|
151
|
+
|
|
146
152
|
def use_consumer_version version_number
|
|
147
153
|
@consumer_version = PactBroker::Domain::Version.where(pacticipant_id: @consumer.id, number: version_number).single_record
|
|
148
154
|
self
|
data/tasks/database.rb
CHANGED
|
@@ -38,7 +38,7 @@ module PactBroker
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def drop_tables
|
|
41
|
-
(TABLES + [:schema_info]).each do | table_name |
|
|
41
|
+
(TABLES + [:schema_info, :schema_migrations]).each do | table_name |
|
|
42
42
|
if database.table_exists?(table_name)
|
|
43
43
|
database.drop_table(table_name, cascade: psql?)
|
|
44
44
|
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.7.0.beta.
|
|
4
|
+
version: 2.7.0.beta.2
|
|
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-10-
|
|
13
|
+
date: 2017-10-30 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: httparty
|
|
@@ -248,6 +248,20 @@ dependencies:
|
|
|
248
248
|
- - "~>"
|
|
249
249
|
- !ruby/object:Gem::Version
|
|
250
250
|
version: 0.10.3
|
|
251
|
+
- !ruby/object:Gem::Dependency
|
|
252
|
+
name: table_print
|
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
|
254
|
+
requirements:
|
|
255
|
+
- - "~>"
|
|
256
|
+
- !ruby/object:Gem::Version
|
|
257
|
+
version: '1.5'
|
|
258
|
+
type: :runtime
|
|
259
|
+
prerelease: false
|
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
261
|
+
requirements:
|
|
262
|
+
- - "~>"
|
|
263
|
+
- !ruby/object:Gem::Version
|
|
264
|
+
version: '1.5'
|
|
251
265
|
- !ruby/object:Gem::Dependency
|
|
252
266
|
name: bundler-audit
|
|
253
267
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -449,53 +463,53 @@ files:
|
|
|
449
463
|
- config/boot.rb
|
|
450
464
|
- config/database.travis.yml
|
|
451
465
|
- config/database.yml
|
|
452
|
-
- db/migrations/
|
|
453
|
-
- db/migrations/
|
|
454
|
-
- db/migrations/
|
|
455
|
-
- db/migrations/
|
|
456
|
-
- db/migrations/
|
|
457
|
-
- db/migrations/
|
|
458
|
-
- db/migrations/
|
|
459
|
-
- db/migrations/
|
|
460
|
-
- db/migrations/
|
|
461
|
-
- db/migrations/
|
|
462
|
-
- db/migrations/
|
|
463
|
-
- db/migrations/
|
|
464
|
-
- db/migrations/
|
|
465
|
-
- db/migrations/
|
|
466
|
-
- db/migrations/
|
|
467
|
-
- db/migrations/
|
|
468
|
-
- db/migrations/
|
|
469
|
-
- db/migrations/
|
|
470
|
-
- db/migrations/
|
|
471
|
-
- db/migrations/
|
|
472
|
-
- db/migrations/
|
|
473
|
-
- db/migrations/
|
|
474
|
-
- db/migrations/
|
|
475
|
-
- db/migrations/
|
|
476
|
-
- db/migrations/
|
|
477
|
-
- db/migrations/
|
|
478
|
-
- db/migrations/
|
|
479
|
-
- db/migrations/
|
|
480
|
-
- db/migrations/
|
|
481
|
-
- db/migrations/
|
|
482
|
-
- db/migrations/
|
|
483
|
-
- db/migrations/
|
|
484
|
-
- db/migrations/
|
|
485
|
-
- db/migrations/
|
|
486
|
-
- db/migrations/
|
|
487
|
-
- db/migrations/
|
|
488
|
-
- db/migrations/
|
|
489
|
-
- db/migrations/
|
|
490
|
-
- db/migrations/
|
|
491
|
-
- db/migrations/
|
|
492
|
-
- db/migrations/
|
|
493
|
-
- db/migrations/
|
|
494
|
-
- db/migrations/
|
|
495
|
-
- db/migrations/
|
|
496
|
-
- db/migrations/
|
|
497
|
-
- db/migrations/
|
|
498
|
-
- db/migrations/
|
|
466
|
+
- db/migrations/000001_create_pacticipant_table.rb
|
|
467
|
+
- db/migrations/000002_create_versions_table.rb
|
|
468
|
+
- db/migrations/000003_create_pacts_table.rb
|
|
469
|
+
- db/migrations/000004_create_tags_table.rb
|
|
470
|
+
- db/migrations/000005_add_order_column_to_version.rb
|
|
471
|
+
- db/migrations/000006_make_version_foreign_key_mandatory.rb
|
|
472
|
+
- db/migrations/000007_increase_json_content_length.rb
|
|
473
|
+
- db/migrations/000008_create_latest_pact_view.rb
|
|
474
|
+
- db/migrations/000009_add_timestamps.rb
|
|
475
|
+
- db/migrations/000010_populate_timestamps.rb
|
|
476
|
+
- db/migrations/000011_made_timestamps_mandatory.rb
|
|
477
|
+
- db/migrations/000012_create_webhooks_table.rb
|
|
478
|
+
- db/migrations/000013_add_columns_to_webhooks.rb
|
|
479
|
+
- db/migrations/000014_add_timestamps_to_pact_views.rb
|
|
480
|
+
- db/migrations/000015_create_pact_version_content.rb
|
|
481
|
+
- db/migrations/000016_add_pact_content_foreign_key_to_pacts.rb
|
|
482
|
+
- db/migrations/000017_migrate_json_content_to_pact_version_content_table.rb
|
|
483
|
+
- db/migrations/000018_drop_json_content_column_from_pacts.rb
|
|
484
|
+
- db/migrations/000019_make_pact_version_content_sha_not_nullable.rb
|
|
485
|
+
- db/migrations/000020_add_pact_version_content_sha_to_all_pacts_view.rb
|
|
486
|
+
- db/migrations/000021_recreate_latest_pacts_view.rb
|
|
487
|
+
- db/migrations/000022_create_latest_tagged_pacts_view.rb
|
|
488
|
+
- db/migrations/000023_create_pact_versions_table.rb
|
|
489
|
+
- db/migrations/000024_populate_pact_versions.rb
|
|
490
|
+
- db/migrations/000025_make_pv_pacticipants_mandatory.rb
|
|
491
|
+
- db/migrations/000026_create_pact_publications.rb
|
|
492
|
+
- db/migrations/000027_populate_pact_publications.rb
|
|
493
|
+
- db/migrations/000028_create_all_pact_publications.rb
|
|
494
|
+
- db/migrations/000029_create_latest_tagged_pact_publications.rb
|
|
495
|
+
- db/migrations/000030_drop_old_tables_and_views.rb
|
|
496
|
+
- db/migrations/000031_create_verifications.rb
|
|
497
|
+
- db/migrations/000032_create_latest_verifications.rb
|
|
498
|
+
- db/migrations/000033_create_config_table.rb
|
|
499
|
+
- db/migrations/000034_create_index_on_consumer_version_order.rb
|
|
500
|
+
- db/migrations/000035_create_index_on_names.rb
|
|
501
|
+
- db/migrations/000036_create_webhook_execution.rb
|
|
502
|
+
- db/migrations/000037_create_labels_table.rb
|
|
503
|
+
- db/migrations/000038_create_triggered_webhooks_table.rb
|
|
504
|
+
- db/migrations/000039_add_triggered_webhooks_fk_to_execution.rb
|
|
505
|
+
- db/migrations/000040_create_latest_triggered_webhooks_view.rb
|
|
506
|
+
- db/migrations/000041_migrate_execution_data.rb
|
|
507
|
+
- db/migrations/000042_delete_orphan_webhook_data.rb
|
|
508
|
+
- db/migrations/000043_add_provider_version_to_verification.rb
|
|
509
|
+
- db/migrations/000044_populate_verifications_provider_version_id.rb
|
|
510
|
+
- db/migrations/000045_set_verification_provider_number_nullable.rb
|
|
511
|
+
- db/migrations/000046_recreate_latest_verifications.rb
|
|
512
|
+
- db/migrations/000047_create_all_verifications.rb
|
|
499
513
|
- db/migrations/migration_helper.rb
|
|
500
514
|
- db/pact_broker_database.sqlite3
|
|
501
515
|
- db/test/backwards_compatibility/.rspec
|
|
@@ -515,6 +529,10 @@ files:
|
|
|
515
529
|
- db/test/backwards_compatibility/gemfiles/2.3.0.gemfile.lock
|
|
516
530
|
- db/test/backwards_compatibility/gemfiles/2.4.2.gemfile
|
|
517
531
|
- db/test/backwards_compatibility/gemfiles/2.4.2.gemfile.lock
|
|
532
|
+
- db/test/backwards_compatibility/gemfiles/2.5.1.gemfile
|
|
533
|
+
- db/test/backwards_compatibility/gemfiles/2.5.1.gemfile.lock
|
|
534
|
+
- db/test/backwards_compatibility/gemfiles/2.6.0.gemfile
|
|
535
|
+
- db/test/backwards_compatibility/gemfiles/2.6.0.gemfile.lock
|
|
518
536
|
- db/test/backwards_compatibility/gemfiles/head.gemfile
|
|
519
537
|
- db/test/backwards_compatibility/gemfiles/head.gemfile.lock
|
|
520
538
|
- db/test/backwards_compatibility/spec/fixtures/foo-bar.json
|
|
@@ -522,6 +540,8 @@ files:
|
|
|
522
540
|
- db/test/backwards_compatibility/spec/spec_helper.rb
|
|
523
541
|
- db/test/backwards_compatibility/spec/support/fixture_helpers.rb
|
|
524
542
|
- db/test/backwards_compatibility/spec/support/request_helpers.rb
|
|
543
|
+
- db/test/change_migration_strategy/Rakefile
|
|
544
|
+
- db/test/change_migration_strategy/before/Gemfile
|
|
525
545
|
- example/Gemfile
|
|
526
546
|
- example/basic_auth/Gemfile
|
|
527
547
|
- example/basic_auth/Procfile
|
|
@@ -548,6 +568,7 @@ files:
|
|
|
548
568
|
- lib/pact_broker/api/decorators/label_decorator.rb
|
|
549
569
|
- lib/pact_broker/api/decorators/latest_pact_decorator.rb
|
|
550
570
|
- lib/pact_broker/api/decorators/matrix_decorator.rb
|
|
571
|
+
- lib/pact_broker/api/decorators/matrix_text_decorator.rb
|
|
551
572
|
- lib/pact_broker/api/decorators/pact_collection_decorator.rb
|
|
552
573
|
- lib/pact_broker/api/decorators/pact_decorator.rb
|
|
553
574
|
- lib/pact_broker/api/decorators/pact_details_decorator.rb
|
|
@@ -661,6 +682,7 @@ files:
|
|
|
661
682
|
- lib/pact_broker/labels/service.rb
|
|
662
683
|
- lib/pact_broker/locale/en.yml
|
|
663
684
|
- lib/pact_broker/logging.rb
|
|
685
|
+
- lib/pact_broker/matrix/parse_query.rb
|
|
664
686
|
- lib/pact_broker/matrix/repository.rb
|
|
665
687
|
- lib/pact_broker/matrix/service.rb
|
|
666
688
|
- lib/pact_broker/messages.rb
|
|
@@ -705,7 +727,6 @@ files:
|
|
|
705
727
|
- lib/pact_broker/ui/views/groups/show.html.erb
|
|
706
728
|
- lib/pact_broker/ui/views/layouts/main.haml
|
|
707
729
|
- lib/pact_broker/ui/views/matrix/show.haml
|
|
708
|
-
- lib/pact_broker/ui/views/relationships/show-prod-tags.haml
|
|
709
730
|
- lib/pact_broker/ui/views/relationships/show.haml
|
|
710
731
|
- lib/pact_broker/verifications/latest_verifications_by_consumer_version.rb
|
|
711
732
|
- lib/pact_broker/verifications/repository.rb
|
|
@@ -729,9 +750,11 @@ files:
|
|
|
729
750
|
- lib/rack/hal_browser/redirect.rb
|
|
730
751
|
- lib/rack/pact_broker/accepts_html_filter.rb
|
|
731
752
|
- lib/rack/pact_broker/add_pact_broker_version_header.rb
|
|
753
|
+
- lib/rack/pact_broker/configurable_make_it_later.rb
|
|
732
754
|
- lib/rack/pact_broker/convert_file_extension_to_accept_header.rb
|
|
733
755
|
- lib/rack/pact_broker/database_transaction.rb
|
|
734
756
|
- lib/rack/pact_broker/invalid_uri_protection.rb
|
|
757
|
+
- lib/rack/pact_broker/no_auth.rb
|
|
735
758
|
- lib/rack/pact_broker/ui_authentication.rb
|
|
736
759
|
- pact_broker.gemspec
|
|
737
760
|
- pact_broker_client-pact_broker.json
|
|
@@ -773,6 +796,7 @@ files:
|
|
|
773
796
|
- script/publish-not-a-pact.sh
|
|
774
797
|
- script/publish.sh
|
|
775
798
|
- script/recreate-pg-db.sh
|
|
799
|
+
- script/seed-matrix.rb
|
|
776
800
|
- script/seed.rb
|
|
777
801
|
- script/update-hal-browser
|
|
778
802
|
- script/webhook-server.ru
|
|
@@ -885,6 +909,7 @@ files:
|
|
|
885
909
|
- spec/lib/pact_broker/groups/service_spec.rb
|
|
886
910
|
- spec/lib/pact_broker/labels/repository_spec.rb
|
|
887
911
|
- spec/lib/pact_broker/labels/service_spec.rb
|
|
912
|
+
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|
|
888
913
|
- spec/lib/pact_broker/matrix/repository_spec.rb
|
|
889
914
|
- spec/lib/pact_broker/matrix/service_spec.rb
|
|
890
915
|
- spec/lib/pact_broker/messages_spec.rb
|
|
@@ -895,7 +920,6 @@ files:
|
|
|
895
920
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
|
896
921
|
- spec/lib/pact_broker/pacts/merger_spec.rb
|
|
897
922
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
|
898
|
-
- spec/lib/pact_broker/pacts/pact_publication_spec.rb
|
|
899
923
|
- spec/lib/pact_broker/pacts/pact_version_spec.rb
|
|
900
924
|
- spec/lib/pact_broker/pacts/repository_spec.rb
|
|
901
925
|
- spec/lib/pact_broker/pacts/service_spec.rb
|
|
@@ -930,6 +954,7 @@ files:
|
|
|
930
954
|
- spec/migrations/41_migrate_execution_data_spec.rb
|
|
931
955
|
- spec/migrations/42_delete_ophan_webhook_data_spec.rb
|
|
932
956
|
- spec/migrations/44_add_provider_version_to_verification_spec.rb
|
|
957
|
+
- spec/migrations/change_migration_strategy_spec.rb
|
|
933
958
|
- spec/service_consumers/pact_helper.rb
|
|
934
959
|
- spec/service_consumers/provider_states_for_pact_broker_client.rb
|
|
935
960
|
- spec/spec_helper.rb
|
|
@@ -1118,6 +1143,7 @@ test_files:
|
|
|
1118
1143
|
- spec/lib/pact_broker/groups/service_spec.rb
|
|
1119
1144
|
- spec/lib/pact_broker/labels/repository_spec.rb
|
|
1120
1145
|
- spec/lib/pact_broker/labels/service_spec.rb
|
|
1146
|
+
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|
|
1121
1147
|
- spec/lib/pact_broker/matrix/repository_spec.rb
|
|
1122
1148
|
- spec/lib/pact_broker/matrix/service_spec.rb
|
|
1123
1149
|
- spec/lib/pact_broker/messages_spec.rb
|
|
@@ -1128,7 +1154,6 @@ test_files:
|
|
|
1128
1154
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
|
1129
1155
|
- spec/lib/pact_broker/pacts/merger_spec.rb
|
|
1130
1156
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
|
1131
|
-
- spec/lib/pact_broker/pacts/pact_publication_spec.rb
|
|
1132
1157
|
- spec/lib/pact_broker/pacts/pact_version_spec.rb
|
|
1133
1158
|
- spec/lib/pact_broker/pacts/repository_spec.rb
|
|
1134
1159
|
- spec/lib/pact_broker/pacts/service_spec.rb
|
|
@@ -1163,6 +1188,7 @@ test_files:
|
|
|
1163
1188
|
- spec/migrations/41_migrate_execution_data_spec.rb
|
|
1164
1189
|
- spec/migrations/42_delete_ophan_webhook_data_spec.rb
|
|
1165
1190
|
- spec/migrations/44_add_provider_version_to_verification_spec.rb
|
|
1191
|
+
- spec/migrations/change_migration_strategy_spec.rb
|
|
1166
1192
|
- spec/service_consumers/pact_helper.rb
|
|
1167
1193
|
- spec/service_consumers/provider_states_for_pact_broker_client.rb
|
|
1168
1194
|
- spec/spec_helper.rb
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
%body
|
|
2
|
-
%link{rel: 'stylesheet', href: '/css/bootstrap.min.css'}
|
|
3
|
-
%link{rel: 'stylesheet', href: '/stylesheets/relationships.css'}
|
|
4
|
-
%script{type: 'text/javascript', src:'/javascripts/jquery-2.1.1.min.js'}
|
|
5
|
-
%script{type: 'text/javascript', src:'/javascripts/jquery.tablesorter.min.js'}
|
|
6
|
-
%script{type: 'text/javascript', src:'/js/bootstrap.min.js'}
|
|
7
|
-
%nav.navbase-default.navbar-right{role: "navigation"}
|
|
8
|
-
.container
|
|
9
|
-
%ul
|
|
10
|
-
%li.navbar-right
|
|
11
|
-
%a{href: '/hal-browser/browser.html'}
|
|
12
|
-
HAL Browser
|
|
13
|
-
.container
|
|
14
|
-
%h1.page-header
|
|
15
|
-
Pacts
|
|
16
|
-
%table.table.table-bordered.table-striped{id: 'relationships'}
|
|
17
|
-
%thead
|
|
18
|
-
%th.consumer
|
|
19
|
-
Consumer
|
|
20
|
-
%span.glyphicon.glyphicon-sort.relationships-sort
|
|
21
|
-
%th.tag
|
|
22
|
-
Version
|
|
23
|
-
%span.glyphicon.glyphicon-sort.relationships-sort
|
|
24
|
-
%th.pact
|
|
25
|
-
%th.provider
|
|
26
|
-
Provider
|
|
27
|
-
%span.glyphicon.glyphicon-sort.relationships-sort
|
|
28
|
-
%th.tag
|
|
29
|
-
Version
|
|
30
|
-
%span.glyphicon.glyphicon-sort.relationships-sort
|
|
31
|
-
%th
|
|
32
|
-
Published
|
|
33
|
-
%th
|
|
34
|
-
Webhook<br>status
|
|
35
|
-
%th
|
|
36
|
-
Last<br>verified
|
|
37
|
-
%tbody
|
|
38
|
-
|
|
39
|
-
- relationships.each do | relationship |
|
|
40
|
-
%tr
|
|
41
|
-
%td.consumer
|
|
42
|
-
%a{:href => relationship.consumer_group_url}
|
|
43
|
-
= relationship.consumer_name
|
|
44
|
-
%td
|
|
45
|
-
= relationship.consumer_version_number
|
|
46
|
-
%span{style: 'color:gray'}
|
|
47
|
-
= relationship.tag_names
|
|
48
|
-
%td.pact
|
|
49
|
-
%a{:href => relationship.pact_url, :title => "View pact"}
|
|
50
|
-
%span.pact
|
|
51
|
-
%td.provider
|
|
52
|
-
%a{:href => relationship.provider_group_url}
|
|
53
|
-
= relationship.provider_name
|
|
54
|
-
%td
|
|
55
|
-
= relationship.provider_version_number
|
|
56
|
-
%td
|
|
57
|
-
= relationship.publication_date_of_latest_pact.gsub("about ", "")
|
|
58
|
-
%td{class: relationship.webhook_status}
|
|
59
|
-
- if relationship.show_webhook_status?
|
|
60
|
-
%a{:href => relationship.webhook_url}
|
|
61
|
-
= relationship.webhook_label
|
|
62
|
-
|
|
63
|
-
%td{class: relationship.verification_status, title: relationship.verification_tooltip, "data-toggle": "tooltip", "data-placement": "left"}
|
|
64
|
-
%div
|
|
65
|
-
= relationship.last_verified_date.gsub("about ", "")
|
|
66
|
-
- if relationship.warning?
|
|
67
|
-
%span.glyphicon.glyphicon-warning-sign{'aria-hidden':true}
|
|
68
|
-
%div.relationships-size
|
|
69
|
-
= relationships.size_label
|
|
70
|
-
|
|
71
|
-
:javascript
|
|
72
|
-
$(function(){
|
|
73
|
-
$("#relationships").tablesorter();
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
$(document).ready(function(){
|
|
77
|
-
$("span.pact").load("/images/doc-text.svg");
|
|
78
|
-
$('td[data-toggle="tooltip"]').each(function(index, td){
|
|
79
|
-
//appended tooltip div screws up table if it's appended after a
|
|
80
|
-
//td, so need to append it to a div
|
|
81
|
-
$(td).tooltip({container: $(td).first()});
|
|
82
|
-
});
|
|
83
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
require 'pact_broker/pacts/pact_publication'
|
|
2
|
-
|
|
3
|
-
module PactBroker
|
|
4
|
-
module Pacts
|
|
5
|
-
describe PactPublication do
|
|
6
|
-
|
|
7
|
-
describe "#latest_tag_names" do
|
|
8
|
-
before do
|
|
9
|
-
td.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
|
10
|
-
.create_consumer_version_tag("no")
|
|
11
|
-
.create_consumer_version("3.4.5")
|
|
12
|
-
.create_consumer_version_tag("yes")
|
|
13
|
-
.create_pact
|
|
14
|
-
.create_consumer_version("5.6.7")
|
|
15
|
-
.create_consumer_version_tag("no")
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
let(:td) { TestDataBuilder.new }
|
|
19
|
-
let(:pact_publication) { PactPublication.find(id: td.pact.id) }
|
|
20
|
-
|
|
21
|
-
context "when the pact is the latest for a tag" do
|
|
22
|
-
it "returns the relevant tag names" do
|
|
23
|
-
expect(pact_publication.latest_tag_names).to eq ["yes"]
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
context "when the pact is not the latest for a tag" do
|
|
28
|
-
it "returns the relevant tag names" do
|
|
29
|
-
expect(pact_publication.latest_tag_names).to eq ["yes"]
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|