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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +30 -4
  4. data/db/migrations/{01_create_pacticipant_table.rb → 000001_create_pacticipant_table.rb} +0 -0
  5. data/db/migrations/{02_create_versions_table.rb → 000002_create_versions_table.rb} +0 -0
  6. data/db/migrations/{03_create_pacts_table.rb → 000003_create_pacts_table.rb} +0 -0
  7. data/db/migrations/{04_create_tags_table.rb → 000004_create_tags_table.rb} +0 -0
  8. data/db/migrations/{05_add_order_column_to_version.rb → 000005_add_order_column_to_version.rb} +0 -0
  9. data/db/migrations/{06_make_version_foreign_key_mandatory.rb → 000006_make_version_foreign_key_mandatory.rb} +0 -0
  10. data/db/migrations/{07_increase_json_content_length.rb → 000007_increase_json_content_length.rb} +0 -0
  11. data/db/migrations/{08_create_latest_pact_view.rb → 000008_create_latest_pact_view.rb} +0 -0
  12. data/db/migrations/{09_add_timestamps.rb → 000009_add_timestamps.rb} +0 -0
  13. data/db/migrations/{10_populate_timestamps.rb → 000010_populate_timestamps.rb} +0 -0
  14. data/db/migrations/{11_made_timestamps_mandatory.rb → 000011_made_timestamps_mandatory.rb} +0 -0
  15. data/db/migrations/{12_create_webhooks_table.rb → 000012_create_webhooks_table.rb} +0 -0
  16. data/db/migrations/{13_add_columns_to_webhooks.rb → 000013_add_columns_to_webhooks.rb} +0 -0
  17. data/db/migrations/{14_add_timestamps_to_pact_views.rb → 000014_add_timestamps_to_pact_views.rb} +0 -0
  18. data/db/migrations/{15_create_pact_version_content.rb → 000015_create_pact_version_content.rb} +0 -0
  19. data/db/migrations/{16_add_pact_content_foreign_key_to_pacts.rb → 000016_add_pact_content_foreign_key_to_pacts.rb} +0 -0
  20. 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
  21. data/db/migrations/{18_drop_json_content_column_from_pacts.rb → 000018_drop_json_content_column_from_pacts.rb} +0 -0
  22. data/db/migrations/{19_make_pact_version_content_sha_not_nullable.rb → 000019_make_pact_version_content_sha_not_nullable.rb} +0 -0
  23. 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
  24. data/db/migrations/{21_recreate_latest_pacts_view.rb → 000021_recreate_latest_pacts_view.rb} +0 -0
  25. data/db/migrations/{22_create_latest_tagged_pacts_view.rb → 000022_create_latest_tagged_pacts_view.rb} +0 -0
  26. data/db/migrations/{23_create_pact_versions_table.rb → 000023_create_pact_versions_table.rb} +0 -0
  27. data/db/migrations/{24_populate_pact_versions.rb → 000024_populate_pact_versions.rb} +0 -0
  28. data/db/migrations/{25_make_pv_pacticipants_mandatory.rb → 000025_make_pv_pacticipants_mandatory.rb} +0 -0
  29. data/db/migrations/{26_create_pact_publications.rb → 000026_create_pact_publications.rb} +0 -0
  30. data/db/migrations/{27_populate_pact_publications.rb → 000027_populate_pact_publications.rb} +0 -0
  31. data/db/migrations/{28_create_all_pact_publications.rb → 000028_create_all_pact_publications.rb} +0 -0
  32. data/db/migrations/{29_create_latest_tagged_pact_publications.rb → 000029_create_latest_tagged_pact_publications.rb} +0 -0
  33. data/db/migrations/{30_drop_old_tables_and_views.rb → 000030_drop_old_tables_and_views.rb} +0 -0
  34. data/db/migrations/{31_create_verifications.rb → 000031_create_verifications.rb} +0 -0
  35. data/db/migrations/{32_create_latest_verifications.rb → 000032_create_latest_verifications.rb} +0 -0
  36. data/db/migrations/{33_create_config_table.rb → 000033_create_config_table.rb} +0 -0
  37. data/db/migrations/{34_create_index_on_consumer_version_order.rb → 000034_create_index_on_consumer_version_order.rb} +0 -0
  38. data/db/migrations/{35_create_index_on_names.rb → 000035_create_index_on_names.rb} +0 -0
  39. data/db/migrations/{36_create_webhook_execution.rb → 000036_create_webhook_execution.rb} +0 -0
  40. data/db/migrations/{37_create_labels_table.rb → 000037_create_labels_table.rb} +0 -0
  41. data/db/migrations/{38_create_triggered_webhooks_table.rb → 000038_create_triggered_webhooks_table.rb} +0 -0
  42. data/db/migrations/{39_add_triggered_webhooks_fk_to_execution.rb → 000039_add_triggered_webhooks_fk_to_execution.rb} +0 -0
  43. data/db/migrations/{40_create_latest_triggered_webhooks_view.rb → 000040_create_latest_triggered_webhooks_view.rb} +0 -0
  44. data/db/migrations/{41_migrate_execution_data.rb → 000041_migrate_execution_data.rb} +0 -0
  45. data/db/migrations/{42_delete_orphan_webhook_data.rb → 000042_delete_orphan_webhook_data.rb} +0 -0
  46. data/db/migrations/{43_add_provider_version_to_verification.rb → 000043_add_provider_version_to_verification.rb} +0 -0
  47. data/db/migrations/{44_populate_verifications_provider_version_id.rb → 000044_populate_verifications_provider_version_id.rb} +0 -0
  48. data/db/migrations/{45_set_verification_provider_number_nullable.rb → 000045_set_verification_provider_number_nullable.rb} +0 -0
  49. data/db/migrations/{46_recreate_latest_verifications.rb → 000046_recreate_latest_verifications.rb} +0 -0
  50. data/db/migrations/{47_create_all_verifications.rb → 000047_create_all_verifications.rb} +4 -0
  51. data/db/pact_broker_database.sqlite3 +0 -0
  52. data/db/test/backwards_compatibility/Appraisals +8 -0
  53. data/db/test/backwards_compatibility/Rakefile +23 -6
  54. data/db/test/backwards_compatibility/gemfiles/1.18.0.gemfile.lock +20 -19
  55. data/db/test/backwards_compatibility/gemfiles/2.0.0.gemfile.lock +20 -19
  56. data/db/test/backwards_compatibility/gemfiles/2.1.0.gemfile.lock +20 -19
  57. data/db/test/backwards_compatibility/gemfiles/2.2.0.gemfile.lock +29 -26
  58. data/db/test/backwards_compatibility/gemfiles/2.3.0.gemfile.lock +29 -26
  59. data/db/test/backwards_compatibility/gemfiles/2.4.2.gemfile.lock +29 -26
  60. data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile +13 -0
  61. data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile.lock +199 -0
  62. data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile +13 -0
  63. data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile.lock +199 -0
  64. data/db/test/backwards_compatibility/gemfiles/head.gemfile.lock +30 -27
  65. data/db/test/backwards_compatibility/spec/publish_pact_spec.rb +1 -1
  66. data/db/test/change_migration_strategy/Rakefile +21 -0
  67. data/db/test/change_migration_strategy/before/Gemfile +6 -0
  68. data/lib/pact_broker/api/decorators/matrix_decorator.rb +19 -1
  69. data/lib/pact_broker/api/decorators/matrix_text_decorator.rb +29 -0
  70. data/lib/pact_broker/api/renderers/html_pact_renderer.rb +1 -1
  71. data/lib/pact_broker/api/resources/matrix.rb +21 -11
  72. data/lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb +2 -2
  73. data/lib/pact_broker/app.rb +27 -2
  74. data/lib/pact_broker/db/migrate.rb +1 -1
  75. data/lib/pact_broker/db/version.rb +4 -5
  76. data/lib/pact_broker/db.rb +1 -1
  77. data/lib/pact_broker/domain/relationship.rb +4 -24
  78. data/lib/pact_broker/matrix/parse_query.rb +22 -0
  79. data/lib/pact_broker/matrix/repository.rb +57 -26
  80. data/lib/pact_broker/matrix/service.rb +23 -16
  81. data/lib/pact_broker/pacticipants/service.rb +5 -21
  82. data/lib/pact_broker/pacts/pact_publication.rb +0 -4
  83. data/lib/pact_broker/pacts/repository.rb +1 -1
  84. data/lib/pact_broker/tags/service.rb +1 -0
  85. data/lib/pact_broker/ui/controllers/matrix.rb +3 -2
  86. data/lib/pact_broker/ui/controllers/relationships.rb +2 -2
  87. data/lib/pact_broker/ui/view_models/matrix_line.rb +38 -5
  88. data/lib/pact_broker/ui/view_models/relationship.rb +1 -19
  89. data/lib/pact_broker/ui/views/matrix/show.haml +18 -3
  90. data/lib/pact_broker/ui/views/relationships/show.haml +2 -2
  91. data/lib/pact_broker/verifications/repository.rb +0 -3
  92. data/lib/pact_broker/version.rb +1 -1
  93. data/lib/rack/hal_browser/redirect.rb +2 -2
  94. data/lib/rack/pact_broker/configurable_make_it_later.rb +24 -0
  95. data/lib/rack/pact_broker/no_auth.rb +13 -0
  96. data/pact_broker.gemspec +1 -0
  97. data/script/seed-matrix.rb +71 -0
  98. data/script/seed.rb +0 -5
  99. data/spec/features/get_matrix_spec.rb +4 -1
  100. data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +41 -7
  101. data/spec/lib/pact_broker/api/resources/matrix_spec.rb +6 -2
  102. data/spec/lib/pact_broker/app_spec.rb +69 -0
  103. data/spec/lib/pact_broker/domain/relationship_spec.rb +1 -1
  104. data/spec/lib/pact_broker/matrix/parse_query_spec.rb +79 -0
  105. data/spec/lib/pact_broker/matrix/repository_spec.rb +244 -12
  106. data/spec/lib/pact_broker/matrix/service_spec.rb +39 -9
  107. data/spec/lib/pact_broker/pacticipants/service_spec.rb +4 -78
  108. data/spec/lib/pact_broker/pacts/repository_spec.rb +14 -16
  109. data/spec/lib/pact_broker/ui/view_models/relationship_spec.rb +5 -4
  110. data/spec/migrations/change_migration_strategy_spec.rb +86 -0
  111. data/spec/service_consumers/provider_states_for_pact_broker_client.rb +34 -0
  112. data/spec/support/test_data_builder.rb +6 -0
  113. data/tasks/database.rb +1 -1
  114. metadata +78 -52
  115. data/lib/pact_broker/ui/views/relationships/show-prod-tags.haml +0 -83
  116. 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.1
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-15 00:00:00.000000000 Z
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/01_create_pacticipant_table.rb
453
- - db/migrations/02_create_versions_table.rb
454
- - db/migrations/03_create_pacts_table.rb
455
- - db/migrations/04_create_tags_table.rb
456
- - db/migrations/05_add_order_column_to_version.rb
457
- - db/migrations/06_make_version_foreign_key_mandatory.rb
458
- - db/migrations/07_increase_json_content_length.rb
459
- - db/migrations/08_create_latest_pact_view.rb
460
- - db/migrations/09_add_timestamps.rb
461
- - db/migrations/10_populate_timestamps.rb
462
- - db/migrations/11_made_timestamps_mandatory.rb
463
- - db/migrations/12_create_webhooks_table.rb
464
- - db/migrations/13_add_columns_to_webhooks.rb
465
- - db/migrations/14_add_timestamps_to_pact_views.rb
466
- - db/migrations/15_create_pact_version_content.rb
467
- - db/migrations/16_add_pact_content_foreign_key_to_pacts.rb
468
- - db/migrations/17_migrate_json_content_to_pact_version_content_table.rb
469
- - db/migrations/18_drop_json_content_column_from_pacts.rb
470
- - db/migrations/19_make_pact_version_content_sha_not_nullable.rb
471
- - db/migrations/20_add_pact_version_content_sha_to_all_pacts_view.rb
472
- - db/migrations/21_recreate_latest_pacts_view.rb
473
- - db/migrations/22_create_latest_tagged_pacts_view.rb
474
- - db/migrations/23_create_pact_versions_table.rb
475
- - db/migrations/24_populate_pact_versions.rb
476
- - db/migrations/25_make_pv_pacticipants_mandatory.rb
477
- - db/migrations/26_create_pact_publications.rb
478
- - db/migrations/27_populate_pact_publications.rb
479
- - db/migrations/28_create_all_pact_publications.rb
480
- - db/migrations/29_create_latest_tagged_pact_publications.rb
481
- - db/migrations/30_drop_old_tables_and_views.rb
482
- - db/migrations/31_create_verifications.rb
483
- - db/migrations/32_create_latest_verifications.rb
484
- - db/migrations/33_create_config_table.rb
485
- - db/migrations/34_create_index_on_consumer_version_order.rb
486
- - db/migrations/35_create_index_on_names.rb
487
- - db/migrations/36_create_webhook_execution.rb
488
- - db/migrations/37_create_labels_table.rb
489
- - db/migrations/38_create_triggered_webhooks_table.rb
490
- - db/migrations/39_add_triggered_webhooks_fk_to_execution.rb
491
- - db/migrations/40_create_latest_triggered_webhooks_view.rb
492
- - db/migrations/41_migrate_execution_data.rb
493
- - db/migrations/42_delete_orphan_webhook_data.rb
494
- - db/migrations/43_add_provider_version_to_verification.rb
495
- - db/migrations/44_populate_verifications_provider_version_id.rb
496
- - db/migrations/45_set_verification_provider_number_nullable.rb
497
- - db/migrations/46_recreate_latest_verifications.rb
498
- - db/migrations/47_create_all_verifications.rb
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