pact_broker 1.4.0 → 1.5.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 +7 -0
- data/lib/db.rb +1 -1
- data/lib/pact_broker/api/decorators/basic_pacticipant_decorator.rb +1 -1
- data/lib/pact_broker/api/decorators/pact_details_decorator.rb +2 -2
- data/lib/pact_broker/api/decorators/pact_pacticipant_decorator.rb +1 -1
- data/lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb +2 -2
- data/lib/pact_broker/api/decorators/pacticipant_decorator.rb +1 -1
- data/lib/pact_broker/api/decorators/webhook_decorator.rb +2 -2
- data/lib/pact_broker/api/resources/pacticipant.rb +1 -1
- data/lib/pact_broker/api/resources/pacticipants.rb +2 -2
- data/lib/pact_broker/api.rb +1 -1
- data/lib/pact_broker/app.rb +10 -1
- data/lib/pact_broker/configuration.rb +3 -0
- data/lib/pact_broker/db.rb +6 -1
- data/lib/pact_broker/diagnostic/app.rb +37 -0
- data/lib/pact_broker/diagnostic/resources/dependencies.rb +65 -0
- data/lib/pact_broker/diagnostic/resources/heartbeat.rb +30 -0
- data/lib/pact_broker/{functions → pacticipants}/find_potential_duplicate_pacticipant_names.rb +1 -5
- data/lib/pact_broker/{services/pact_service.rb → pacts/service.rb} +5 -5
- data/lib/pact_broker/{functions → relationships}/groupify.rb +2 -2
- data/lib/pact_broker/services/group_service.rb +2 -2
- data/lib/pact_broker/services/pacticipant_service.rb +2 -2
- data/lib/pact_broker/services.rb +4 -2
- data/lib/pact_broker/version.rb +1 -1
- data/pact_broker.gemspec +1 -1
- data/spec/integration/app_spec.rb +18 -0
- data/spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/resources/latest_pact_spec.rb +2 -2
- data/spec/lib/pact_broker/api/resources/pact_spec.rb +1 -1
- data/spec/lib/pact_broker/api/resources/pacticipants_spec.rb +1 -1
- data/spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb +85 -0
- data/spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb +35 -0
- data/spec/lib/pact_broker/{functions → pacticipants}/find_potential_duplicate_pacticipant_names_spec.rb +2 -2
- data/spec/lib/pact_broker/pacts/create_formatted_diff_spec.rb +0 -1
- data/spec/lib/pact_broker/{services/pact_service_spec.rb → pacts/service_spec.rb} +5 -5
- data/spec/lib/pact_broker/{functions → relationships}/groupify_spec.rb +2 -2
- data/spec/lib/pact_broker/services/group_service_spec.rb +2 -2
- data/spec/lib/pact_broker/services/pacticipant_service_spec.rb +2 -2
- data/spec/service_consumers/provider_states_for_pact_broker_client.rb +1 -1
- data/spec/support/database_cleaner.rb +1 -1
- metadata +20 -14
- data/lib/pact_broker/repositories/pact_content.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 17b10186ffac951ca6a1d81ca4c4941b378d8e72
|
|
4
|
+
data.tar.gz: 8cfabd6ed5d782788096d445ae46e098679d0fcd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 758286a2af8b8d56f12763e6b2a4c5f156186ed95a2f37ed4e30b24a8c2d79903fcdd54444317a3cef9fd67811cd5d8c9fed66e950aa9d5244e87b0949d0025b
|
|
7
|
+
data.tar.gz: c6db590d2225a0738a0b0dd9c8c1582ef1f887905990b383951537a9df23fdc5f1158c75de76242978d4c01689b66bce1f723f5c2f28438561cc5c5a24dbc3fb
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@ Do this to generate your change history
|
|
|
2
2
|
|
|
3
3
|
$ git log --pretty=format:' * %h - %s (%an, %ad)'
|
|
4
4
|
|
|
5
|
+
#### 1.5.0 (2015-02-20)
|
|
6
|
+
|
|
7
|
+
* b848ce3 - Added healthcheck endpoint for database dependency. /diagnostic/status/dependencies (Beth, Fri Feb 20 09:41:16 2015 +1100)
|
|
8
|
+
* 56ea4a6 - Added heartbeat endpoint for monitoring. /diagnostic/status/heartbeat (Beth, Fri Feb 20 08:49:51 2015 +1100)
|
|
9
|
+
* dbdb4fb - Upgraded webmachine gem to 1.3.1 (Beth, Wed Feb 11 21:49:55 2015 +1100)
|
|
10
|
+
* 111f088 - Added validation to ensure that the encoding for the database connection is set to UTF8. This is required to ensure the pact_version_content_sha foreign key works. (Beth, Wed Feb 11 20:03:34 2015 +1100)
|
|
11
|
+
|
|
5
12
|
#### 1.4.0 (2015-01-20)
|
|
6
13
|
|
|
7
14
|
* d740fb0 - Removed pact-versions rel from pact resource. Pact versions resource is not implemented yet. (Beth, Tue Jan 20 09:20:52 2015 +1100)
|
data/lib/db.rb
CHANGED
|
@@ -25,7 +25,7 @@ module DB
|
|
|
25
25
|
# pool, as noted in the documentation for the extension.
|
|
26
26
|
#
|
|
27
27
|
def self.connect db_credentials
|
|
28
|
-
con = Sequel.connect(db_credentials.merge(:logger => logger, :pool_class => Sequel::ThreadedConnectionPool))
|
|
28
|
+
con = Sequel.connect(db_credentials.merge(:logger => logger, :pool_class => Sequel::ThreadedConnectionPool, :encoding => 'utf8'))
|
|
29
29
|
con.extension(:connection_validator)
|
|
30
30
|
con.pool.connection_validation_timeout = -1 #Check the connection on every request
|
|
31
31
|
con.timezone = :utc
|
|
@@ -9,8 +9,8 @@ module PactBroker
|
|
|
9
9
|
|
|
10
10
|
class PactDetailsDecorator < BaseDecorator
|
|
11
11
|
|
|
12
|
-
property :consumer, :extend => PactBroker::Api::Decorators::
|
|
13
|
-
property :provider, :extend => PactBroker::Api::Decorators::
|
|
12
|
+
property :consumer, :extend => PactBroker::Api::Decorators::PactPacticipantDecorator, :embedded => true
|
|
13
|
+
property :provider, :extend => PactBroker::Api::Decorators::PactPacticipantDecorator, :embedded => true
|
|
14
14
|
|
|
15
15
|
link :self do | options |
|
|
16
16
|
pact_url(options[:base_url], represented)
|
|
@@ -8,9 +8,9 @@ module PactBroker
|
|
|
8
8
|
|
|
9
9
|
module Decorators
|
|
10
10
|
|
|
11
|
-
class
|
|
11
|
+
class PacticipantCollectionDecorator < BaseDecorator
|
|
12
12
|
|
|
13
|
-
collection :entries, :as => :pacticipants, :class => PactBroker::Domain::Pacticipant, :extend => PactBroker::Api::Decorators::
|
|
13
|
+
collection :entries, :as => :pacticipants, :class => PactBroker::Domain::Pacticipant, :extend => PactBroker::Api::Decorators::PacticipantDecorator
|
|
14
14
|
|
|
15
15
|
link :self do | options |
|
|
16
16
|
pacticipants_url options[:base_url]
|
|
@@ -13,8 +13,8 @@ module PactBroker
|
|
|
13
13
|
|
|
14
14
|
include Timestamps
|
|
15
15
|
|
|
16
|
-
property :consumer, :extend => PactBroker::Api::Decorators::
|
|
17
|
-
property :provider, :extend => PactBroker::Api::Decorators::
|
|
16
|
+
property :consumer, :extend => PactBroker::Api::Decorators::BasicPacticipantDecorator, :embedded => true, writeable: false
|
|
17
|
+
property :provider, :extend => PactBroker::Api::Decorators::BasicPacticipantDecorator, :embedded => true, writeable: false
|
|
18
18
|
|
|
19
19
|
link :self do | options |
|
|
20
20
|
{
|
|
@@ -50,7 +50,7 @@ module PactBroker
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def to_json
|
|
53
|
-
PactBroker::Api::Decorators::
|
|
53
|
+
PactBroker::Api::Decorators::PacticipantDecorator.new(pacticipant).to_json(base_url: base_url)
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
private
|
|
@@ -45,11 +45,11 @@ module PactBroker
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def generate_json pacticipants
|
|
48
|
-
PactBroker::Api::Decorators::
|
|
48
|
+
PactBroker::Api::Decorators::PacticipantCollectionDecorator.new(pacticipants).to_json(base_url: base_url)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
def decorator_for model
|
|
52
|
-
PactBroker::Api::Decorators::
|
|
52
|
+
PactBroker::Api::Decorators::PacticipantDecorator.new(model)
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def new_model
|
data/lib/pact_broker/api.rb
CHANGED
|
@@ -24,7 +24,7 @@ module PactBroker
|
|
|
24
24
|
API ||= begin
|
|
25
25
|
pact_api = Webmachine::Application.new do |app|
|
|
26
26
|
app.routes do
|
|
27
|
-
add(['trace',
|
|
27
|
+
add(['trace', :*], Webmachine::Trace::TraceResource) unless ENV['RACK_ENV'] == 'production'
|
|
28
28
|
# Support both /pact and /pacts
|
|
29
29
|
# /pact will be deprecated
|
|
30
30
|
# Todo, rename /version/ to /versions
|
data/lib/pact_broker/app.rb
CHANGED
|
@@ -31,6 +31,7 @@ module PactBroker
|
|
|
31
31
|
PactBroker.logger = configuration.logger
|
|
32
32
|
PactBroker::DB.connection = configuration.database_connection
|
|
33
33
|
PactBroker::DB.connection.timezone = :utc
|
|
34
|
+
PactBroker::DB.validate_connection_config if configuration.validate_database_connection_config
|
|
34
35
|
|
|
35
36
|
if configuration.auto_migrate_db
|
|
36
37
|
logger.info "Migrating database"
|
|
@@ -59,7 +60,15 @@ module PactBroker
|
|
|
59
60
|
logger.info "Mounting PactBroker::API"
|
|
60
61
|
require 'pact_broker/api'
|
|
61
62
|
|
|
62
|
-
apps = [
|
|
63
|
+
apps = []
|
|
64
|
+
|
|
65
|
+
if configuration.enable_diagnostic_endpoints
|
|
66
|
+
require 'pact_broker/diagnostic/app'
|
|
67
|
+
apps << PactBroker::Diagnostic::App.new
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
apps << PactBroker::UI::App.new
|
|
71
|
+
apps << PactBroker::API
|
|
63
72
|
|
|
64
73
|
@app.map "/" do
|
|
65
74
|
run Rack::Cascade.new(apps)
|
|
@@ -7,6 +7,7 @@ module PactBroker
|
|
|
7
7
|
class Configuration
|
|
8
8
|
|
|
9
9
|
attr_accessor :log_dir, :database_connection, :auto_migrate_db, :use_hal_browser, :html_pact_renderer
|
|
10
|
+
attr_accessor :validate_database_connection_config, :enable_diagnostic_endpoints
|
|
10
11
|
attr_writer :logger
|
|
11
12
|
|
|
12
13
|
def logger
|
|
@@ -19,6 +20,8 @@ module PactBroker
|
|
|
19
20
|
config.auto_migrate_db = true
|
|
20
21
|
config.use_hal_browser = true
|
|
21
22
|
config.html_pact_renderer = default_html_pact_render
|
|
23
|
+
config.validate_database_connection_config = true
|
|
24
|
+
config.enable_diagnostic_endpoints = true
|
|
22
25
|
config
|
|
23
26
|
end
|
|
24
27
|
|
data/lib/pact_broker/db.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'sequel'
|
|
2
|
+
require 'pact_broker/db/validate_encoding'
|
|
2
3
|
|
|
3
4
|
Sequel.datetime_class = DateTime
|
|
4
5
|
|
|
@@ -19,5 +20,9 @@ module PactBroker
|
|
|
19
20
|
Sequel.extension :migration
|
|
20
21
|
Sequel::Migrator.run(database_connection, PactBroker::DB::MIGRATIONS_DIR)
|
|
21
22
|
end
|
|
23
|
+
|
|
24
|
+
def self.validate_connection_config
|
|
25
|
+
PactBroker::DB::ValidateEncoding.(connection)
|
|
26
|
+
end
|
|
22
27
|
end
|
|
23
|
-
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'pact_broker/diagnostic/resources/heartbeat'
|
|
2
|
+
require 'pact_broker/diagnostic/resources/dependencies'
|
|
3
|
+
require 'webmachine/adapters/rack'
|
|
4
|
+
|
|
5
|
+
module PactBroker
|
|
6
|
+
module Diagnostic
|
|
7
|
+
|
|
8
|
+
class App
|
|
9
|
+
def initialize
|
|
10
|
+
@app = build_diagnostic_app
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call env
|
|
14
|
+
if env['PATH_INFO'].start_with? "/diagnostic/"
|
|
15
|
+
@app.call(env)
|
|
16
|
+
else
|
|
17
|
+
[404, {}, []]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def build_diagnostic_app
|
|
22
|
+
app = Webmachine::Application.new do |app|
|
|
23
|
+
app.routes do
|
|
24
|
+
add ['diagnostic','status','heartbeat'], Diagnostic::Resources::Heartbeat
|
|
25
|
+
add ['diagnostic','status','dependencies'], Diagnostic::Resources::Dependencies
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
app.configure do |config|
|
|
30
|
+
config.adapter = :Rack
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
app.adapter
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require 'webmachine'
|
|
2
|
+
require 'pact_broker/db'
|
|
3
|
+
require 'pact_broker/logging'
|
|
4
|
+
|
|
5
|
+
module PactBroker
|
|
6
|
+
module Diagnostic
|
|
7
|
+
module Resources
|
|
8
|
+
class Dependencies < Webmachine::Resource
|
|
9
|
+
|
|
10
|
+
include Logging
|
|
11
|
+
|
|
12
|
+
def initialize
|
|
13
|
+
@return_status = 200
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def allowed_methods
|
|
17
|
+
["GET"]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def content_types_provided
|
|
21
|
+
[["application/hal+json", :to_json]]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_json
|
|
25
|
+
ok, report = database_connectivity_status
|
|
26
|
+
response.body = {
|
|
27
|
+
"database" => report,
|
|
28
|
+
"_links" => {
|
|
29
|
+
"self" => {
|
|
30
|
+
"href" => request.uri.to_s
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}.to_json
|
|
34
|
+
|
|
35
|
+
ok ? 200 : 500
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def database_connectivity_status
|
|
41
|
+
begin
|
|
42
|
+
valid = valid_database_connection?
|
|
43
|
+
return valid, { "ok" => valid }
|
|
44
|
+
rescue => e
|
|
45
|
+
logger.error "#{e.class} - #{e.message}\n#{e.backtrace.join("\n")}"
|
|
46
|
+
report = {
|
|
47
|
+
"ok" => false,
|
|
48
|
+
"error" => {
|
|
49
|
+
"message" => "#{e.class} - #{e.message}"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false, report
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def valid_database_connection?
|
|
57
|
+
connection = PactBroker::DB.connection
|
|
58
|
+
connection.synchronize do |synchronized_connection|
|
|
59
|
+
connection.valid_connection? synchronized_connection
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'webmachine'
|
|
2
|
+
|
|
3
|
+
module PactBroker
|
|
4
|
+
module Diagnostic
|
|
5
|
+
module Resources
|
|
6
|
+
class Heartbeat < Webmachine::Resource
|
|
7
|
+
|
|
8
|
+
def allowed_methods
|
|
9
|
+
["GET"]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def content_types_provided
|
|
13
|
+
[["application/hal+json", :to_json]]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_json
|
|
17
|
+
{
|
|
18
|
+
"ok" => true,
|
|
19
|
+
"_links" => {
|
|
20
|
+
"self" => {
|
|
21
|
+
"href" => request.uri.to_s
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}.to_json
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'pact_broker/repositories'
|
|
2
|
+
require 'pact_broker/services'
|
|
2
3
|
|
|
3
4
|
module PactBroker
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
module PactService
|
|
5
|
+
module Pacts
|
|
6
|
+
module Service
|
|
7
7
|
|
|
8
8
|
extend self
|
|
9
9
|
|
|
10
|
-
extend Repositories
|
|
11
|
-
extend Services
|
|
10
|
+
extend PactBroker::Repositories
|
|
11
|
+
extend PactBroker::Services
|
|
12
12
|
|
|
13
13
|
def find_latest_pact params
|
|
14
14
|
pact_repository.find_latest_pact(params[:consumer_name], params[:provider_name], params[:tag])
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require 'pact_broker/repositories'
|
|
2
|
-
require 'pact_broker/
|
|
2
|
+
require 'pact_broker/relationships/groupify'
|
|
3
3
|
|
|
4
4
|
module PactBroker
|
|
5
5
|
|
|
@@ -16,7 +16,7 @@ module PactBroker
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def groups
|
|
19
|
-
|
|
19
|
+
Relationships::Groupify.call pacticipant_service.find_relationships
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
end
|
|
@@ -2,7 +2,7 @@ require 'pact_broker/repositories'
|
|
|
2
2
|
require 'pact_broker/logging'
|
|
3
3
|
require 'pact_broker/messages'
|
|
4
4
|
require 'pact_broker/domain/relationship'
|
|
5
|
-
require 'pact_broker/
|
|
5
|
+
require 'pact_broker/pacticipants/find_potential_duplicate_pacticipant_names'
|
|
6
6
|
|
|
7
7
|
module PactBroker
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@ module PactBroker
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def self.find_potential_duplicate_pacticipants pacticipant_name
|
|
28
|
-
PactBroker::
|
|
28
|
+
PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames
|
|
29
29
|
.call(pacticipant_name, pacticipant_names).tap { | names|
|
|
30
30
|
if names.any?
|
|
31
31
|
logger.info "The following potential duplicate pacticipants were found for #{pacticipant_name}: #{names.join(", ")}"
|
data/lib/pact_broker/services.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'pact_broker/services/pact_service'
|
|
2
1
|
require 'pact_broker/services/pacticipant_service'
|
|
3
2
|
require 'pact_broker/services/tag_service'
|
|
4
3
|
require 'pact_broker/services/group_service'
|
|
@@ -7,8 +6,11 @@ require 'pact_broker/services/version_service'
|
|
|
7
6
|
|
|
8
7
|
module PactBroker
|
|
9
8
|
module Services
|
|
9
|
+
|
|
10
10
|
def pact_service
|
|
11
|
-
|
|
11
|
+
# TODO work out how to fix circular dependency
|
|
12
|
+
require 'pact_broker/pacts/service'
|
|
13
|
+
Pacts::Service
|
|
12
14
|
end
|
|
13
15
|
|
|
14
16
|
def pacticipant_service
|
data/lib/pact_broker/version.rb
CHANGED
data/pact_broker.gemspec
CHANGED
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |gem|
|
|
|
25
25
|
gem.add_runtime_dependency 'roar', '~> 1.0.0.beta2'
|
|
26
26
|
gem.add_runtime_dependency 'reform', '~> 1.0'
|
|
27
27
|
gem.add_runtime_dependency 'sequel', '~> 4.12'
|
|
28
|
-
gem.add_runtime_dependency 'webmachine', '1.
|
|
28
|
+
gem.add_runtime_dependency 'webmachine', '1.3.1'
|
|
29
29
|
gem.add_runtime_dependency 'versionomy', '~> 0.4'
|
|
30
30
|
gem.add_runtime_dependency 'rack'
|
|
31
31
|
gem.add_runtime_dependency 'redcarpet', '~>3.1'
|
|
@@ -12,12 +12,14 @@ module PactBroker
|
|
|
12
12
|
|
|
13
13
|
let(:hal_browser_enabled) { true }
|
|
14
14
|
let(:group_url) { '/groups/Some%20Consumer' }
|
|
15
|
+
let(:enable_diagnostic_endpoints) { false }
|
|
15
16
|
|
|
16
17
|
let(:app) do
|
|
17
18
|
app = PactBroker::App.new do | config |
|
|
18
19
|
config.auto_migrate_db = false
|
|
19
20
|
config.use_hal_browser = hal_browser_enabled
|
|
20
21
|
config.database_connection = ::DB::PACT_BROKER_DB
|
|
22
|
+
config.enable_diagnostic_endpoints = enable_diagnostic_endpoints
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
|
|
@@ -163,5 +165,21 @@ module PactBroker
|
|
|
163
165
|
end
|
|
164
166
|
|
|
165
167
|
end
|
|
168
|
+
|
|
169
|
+
context "when the diagnostic endpoints are enabled" do
|
|
170
|
+
let(:enable_diagnostic_endpoints) { true }
|
|
171
|
+
|
|
172
|
+
it "returns a 200 to /diagnostic/status/heartbeat" do
|
|
173
|
+
get "/diagnostic/status/heartbeat"
|
|
174
|
+
expect(last_response.status).to eq 200
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
context "when the diagnostic endpoints are not enabled" do
|
|
179
|
+
it "returns a 404 to /diagnostic/status/heartbeat" do
|
|
180
|
+
get "/diagnostic/status/heartbeat"
|
|
181
|
+
expect(last_response.status).to eq 404
|
|
182
|
+
end
|
|
183
|
+
end
|
|
166
184
|
end
|
|
167
185
|
end
|
|
@@ -8,9 +8,9 @@ module PactBroker
|
|
|
8
8
|
|
|
9
9
|
module Decorators
|
|
10
10
|
|
|
11
|
-
describe
|
|
11
|
+
describe PacticipantCollectionDecorator do
|
|
12
12
|
|
|
13
|
-
subject { JSON.parse
|
|
13
|
+
subject { JSON.parse PacticipantCollectionDecorator.new(pacticipants).to_json, symbolize_names: true }
|
|
14
14
|
|
|
15
15
|
context "with no pacticipants" do
|
|
16
16
|
let(:pacticipants) { [] }
|
|
@@ -8,13 +8,13 @@ module PactBroker
|
|
|
8
8
|
|
|
9
9
|
module Decorators
|
|
10
10
|
|
|
11
|
-
describe
|
|
11
|
+
describe PacticipantDecorator do
|
|
12
12
|
|
|
13
13
|
let(:created_at) { Time.new(2014, 3, 4) }
|
|
14
14
|
let(:updated_at) { Time.new(2014, 3, 5) }
|
|
15
15
|
let(:pacticipant) { PactBroker::Domain::Pacticipant.new(name: 'Name', updated_at: updated_at, created_at: created_at)}
|
|
16
16
|
|
|
17
|
-
subject { JSON.parse
|
|
17
|
+
subject { JSON.parse PacticipantDecorator.new(pacticipant).to_json, symbolize_names: true }
|
|
18
18
|
|
|
19
19
|
it "includes timestamps" do
|
|
20
20
|
expect(subject[:createdAt]).to eq created_at.xmlschema
|
|
@@ -22,14 +22,14 @@ module PactBroker::Api
|
|
|
22
22
|
let(:pact_id_params) { {:provider_name=>"provider_name", :consumer_name=>"consumer_name"} }
|
|
23
23
|
|
|
24
24
|
before do
|
|
25
|
-
allow(PactBroker::
|
|
25
|
+
allow(PactBroker::Pacts::Service).to receive(:find_latest_pact).and_return(pact)
|
|
26
26
|
allow(PactBroker.configuration.html_pact_renderer).to receive(:call).and_return(html)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
subject { get "/pacts/provider/provider_name/consumer/consumer_name/latest",{}, {'HTTP_ACCEPT' => "text/html"} }
|
|
30
30
|
|
|
31
31
|
it "find the pact" do
|
|
32
|
-
expect(PactBroker::
|
|
32
|
+
expect(PactBroker::Pacts::Service).to receive(:find_latest_pact).with(pact_id_params)
|
|
33
33
|
subject
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -83,7 +83,7 @@ module PactBroker::Api
|
|
|
83
83
|
subject { delete "/pacts/provider/Provider/consumer/Consumer/version/1.2", json, {'CONTENT_TYPE' => "application/json"} ; last_response }
|
|
84
84
|
|
|
85
85
|
let(:pact) { double('pact') }
|
|
86
|
-
let(:pact_service) { PactBroker::
|
|
86
|
+
let(:pact_service) { PactBroker::Pacts::Service }
|
|
87
87
|
let(:response) { subject; last_response }
|
|
88
88
|
|
|
89
89
|
before do
|
|
@@ -14,7 +14,7 @@ module PactBroker
|
|
|
14
14
|
let(:created_model) { instance_double(model_class) }
|
|
15
15
|
let(:errors) { [] }
|
|
16
16
|
let(:model_class) { PactBroker::Domain::Pacticipant }
|
|
17
|
-
let(:decorator_class) { PactBroker::Api::Decorators::
|
|
17
|
+
let(:decorator_class) { PactBroker::Api::Decorators::PacticipantDecorator }
|
|
18
18
|
let(:decorator) { instance_double(decorator_class, to_json: response_json, from_json: model) }
|
|
19
19
|
let(:response_json) { {some: 'json'}.to_json }
|
|
20
20
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require 'pact_broker/diagnostic/app'
|
|
2
|
+
require 'rack/test'
|
|
3
|
+
|
|
4
|
+
module PactBroker
|
|
5
|
+
module Diagnostic
|
|
6
|
+
module Resources
|
|
7
|
+
describe Dependencies do
|
|
8
|
+
|
|
9
|
+
describe "GET /diagnostic/status/dependencies" do
|
|
10
|
+
|
|
11
|
+
include Rack::Test::Methods
|
|
12
|
+
|
|
13
|
+
let(:app) { PactBroker::Diagnostic::App.new }
|
|
14
|
+
let(:parsed_response_body) { JSON.parse(subject.body) }
|
|
15
|
+
|
|
16
|
+
subject { get "/diagnostic/status/dependencies"; last_response }
|
|
17
|
+
|
|
18
|
+
it "returns application/hal+json" do
|
|
19
|
+
expect(subject.headers['Content-Type']).to eq "application/hal+json"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "returns a link to itself" do
|
|
23
|
+
expect(parsed_response_body['_links']['self']['href']).to eq "http://example.org/diagnostic/status/dependencies"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
context "when we can connect to the database" do
|
|
27
|
+
before do
|
|
28
|
+
allow(PactBroker::DB.connection).to receive(:valid_connection?).and_return(true)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "returns a 200 response" do
|
|
32
|
+
expect(subject.status).to eq 200
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "indicates that the database connectivity is OK" do
|
|
36
|
+
expect(parsed_response_body['database']['ok']).to be true
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context "when we can't connect to the database" do
|
|
41
|
+
before do
|
|
42
|
+
allow(PactBroker::DB.connection).to receive(:valid_connection?).and_return(false)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "returns a 500 response" do
|
|
46
|
+
expect(subject.status).to eq 500
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "indicates that the database connectivity is not OK" do
|
|
50
|
+
expect(parsed_response_body['database']['ok']).to be false
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
context "when there is an exception valiating the database connection" do
|
|
55
|
+
|
|
56
|
+
class TestError < StandardError; end
|
|
57
|
+
|
|
58
|
+
before do
|
|
59
|
+
allow(PactBroker::DB.connection).to receive(:valid_connection?).and_raise(TestError.new("a message"))
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "returns a 500 response" do
|
|
63
|
+
expect(subject.status).to eq 500
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "indicates that the database connectivity is not OK" do
|
|
67
|
+
expect(parsed_response_body['database']['ok']).to be false
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "includes an error message" do
|
|
71
|
+
expect(parsed_response_body['database']['error']['message']).to eq "PactBroker::Diagnostic::Resources::TestError - a message"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "logs the error" do
|
|
75
|
+
logger = double('Logger')
|
|
76
|
+
allow_any_instance_of(PactBroker::Diagnostic::Resources::Dependencies).to receive(:logger).and_return(logger)
|
|
77
|
+
expect(logger).to receive(:error).with(/TestError.*a message/)
|
|
78
|
+
subject
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'pact_broker/diagnostic/resources/heartbeat'
|
|
2
|
+
require 'pact_broker/diagnostic/app'
|
|
3
|
+
require 'rack/test'
|
|
4
|
+
|
|
5
|
+
module PactBroker
|
|
6
|
+
module Diagnostic
|
|
7
|
+
module Resources
|
|
8
|
+
describe Heartbeat do
|
|
9
|
+
|
|
10
|
+
include Rack::Test::Methods
|
|
11
|
+
|
|
12
|
+
let(:app) { PactBroker::Diagnostic::App.new }
|
|
13
|
+
|
|
14
|
+
describe "GET /diagnostic/status/heartbeat" do
|
|
15
|
+
|
|
16
|
+
let(:parsed_response_body) { JSON.parse(subject.body) }
|
|
17
|
+
|
|
18
|
+
subject { get "/diagnostic/status/heartbeat"; last_response }
|
|
19
|
+
|
|
20
|
+
it "returns a 200" do
|
|
21
|
+
expect(subject.status).to eq 200
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "returns application/hal+json" do
|
|
25
|
+
expect(subject.headers['Content-Type']).to eq "application/hal+json"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "returns a link to itself" do
|
|
29
|
+
expect(parsed_response_body['_links']['self']['href']).to eq "http://example.org/diagnostic/status/heartbeat"
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
require 'pact_broker/
|
|
2
|
+
require 'pact_broker/pacticipants/find_potential_duplicate_pacticipant_names'
|
|
3
3
|
|
|
4
4
|
module PactBroker
|
|
5
5
|
|
|
6
|
-
module
|
|
6
|
+
module Pacticipants
|
|
7
7
|
|
|
8
8
|
describe FindPotentialDuplicatePacticipantNames do
|
|
9
9
|
|
|
@@ -19,7 +19,6 @@ module PactBroker
|
|
|
19
19
|
subject { CreateFormattedDiff.call(pact_content_version_2, pact_content_version_1) }
|
|
20
20
|
|
|
21
21
|
it "returns the formatted diff" do
|
|
22
|
-
puts subject
|
|
23
22
|
expect(subject).to include 'interactions'
|
|
24
23
|
expect(subject).to match /\-.*post/
|
|
25
24
|
expect(subject).to match /\+.*get/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
require 'pact_broker/
|
|
2
|
+
require 'pact_broker/pacts/service'
|
|
3
3
|
|
|
4
4
|
module PactBroker
|
|
5
5
|
|
|
6
|
-
module
|
|
7
|
-
module
|
|
6
|
+
module Pacts
|
|
7
|
+
module Service
|
|
8
8
|
|
|
9
9
|
describe "find_distinct_pacts_between" do
|
|
10
10
|
let(:pact_1) { double('pact 1', json_content: 'content 1')}
|
|
@@ -18,7 +18,7 @@ module PactBroker
|
|
|
18
18
|
allow_any_instance_of(Pacts::Repository).to receive(:find_all_pacts_between).and_return(all_pacts)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
subject {
|
|
21
|
+
subject { Service.find_distinct_pacts_between 'consumer', :and => 'provider' }
|
|
22
22
|
|
|
23
23
|
it "returns the distinct pacts" do
|
|
24
24
|
expect(subject).to eq [pact_4, pact_2, pact_1]
|
|
@@ -35,7 +35,7 @@ module PactBroker
|
|
|
35
35
|
allow_any_instance_of(Pacts::Repository).to receive(:find_previous_pact).and_return(previous_pact)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
subject {
|
|
38
|
+
subject { Service.pact_has_changed_since_previous_version? pact }
|
|
39
39
|
|
|
40
40
|
context "when a previous pact is found" do
|
|
41
41
|
let(:previous_pact) { instance_double(PactBroker::Domain::Pact, json_content: previous_json_content)}
|
|
@@ -28,7 +28,7 @@ module PactBroker
|
|
|
28
28
|
|
|
29
29
|
before do
|
|
30
30
|
allow(PacticipantService).to receive(:find_relationships).and_return(relationship_list)
|
|
31
|
-
allow(
|
|
31
|
+
allow(Relationships::Groupify).to receive(:call).and_return(groups)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
it "retrieves a list of the relationships" do
|
|
@@ -37,7 +37,7 @@ module PactBroker
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
it "turns the relationships into groups" do
|
|
40
|
-
expect(
|
|
40
|
+
expect(Relationships::Groupify).to receive(:call).with(relationship_list)
|
|
41
41
|
subject
|
|
42
42
|
end
|
|
43
43
|
|
|
@@ -63,7 +63,7 @@ module PactBroker
|
|
|
63
63
|
let(:pacticipant_repository) { instance_double(PactBroker::Repositories::PacticipantRepository)}
|
|
64
64
|
|
|
65
65
|
before do
|
|
66
|
-
allow(PactBroker::
|
|
66
|
+
allow(PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames).to receive(:call).and_return(duplicates)
|
|
67
67
|
allow(PactBroker::Repositories::PacticipantRepository).to receive(:new).and_return(pacticipant_repository)
|
|
68
68
|
allow(pacticipant_repository).to receive(:pacticipant_names).and_return(pacticipant_names)
|
|
69
69
|
allow(pacticipant_repository).to receive(:find_by_name).with("Fred").and_return(fred)
|
|
@@ -76,7 +76,7 @@ module PactBroker
|
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
it "calculates the duplicates" do
|
|
79
|
-
expect(PactBroker::
|
|
79
|
+
expect(PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames).to receive(:call).with(pacticipant_name, pacticipant_names)
|
|
80
80
|
subject.find_potential_duplicate_pacticipants pacticipant_name
|
|
81
81
|
end
|
|
82
82
|
|
|
@@ -14,7 +14,7 @@ Pact.provider_states_for "Pact Broker Client" do
|
|
|
14
14
|
|
|
15
15
|
provider_state "an error occurs while publishing a pact" do
|
|
16
16
|
set_up do
|
|
17
|
-
allow(PactBroker::
|
|
17
|
+
allow(PactBroker::Pacts::Service).to receive(:create_or_update_pact).and_raise("an error")
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
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: 1.
|
|
4
|
+
version: 1.5.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: 2015-
|
|
13
|
+
date: 2015-02-20 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: httparty
|
|
@@ -88,14 +88,14 @@ dependencies:
|
|
|
88
88
|
requirements:
|
|
89
89
|
- - '='
|
|
90
90
|
- !ruby/object:Gem::Version
|
|
91
|
-
version:
|
|
91
|
+
version: 1.3.1
|
|
92
92
|
type: :runtime
|
|
93
93
|
prerelease: false
|
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
|
95
95
|
requirements:
|
|
96
96
|
- - '='
|
|
97
97
|
- !ruby/object:Gem::Version
|
|
98
|
-
version:
|
|
98
|
+
version: 1.3.1
|
|
99
99
|
- !ruby/object:Gem::Dependency
|
|
100
100
|
name: versionomy
|
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -448,6 +448,9 @@ files:
|
|
|
448
448
|
- lib/pact_broker/date_helper.rb
|
|
449
449
|
- lib/pact_broker/db.rb
|
|
450
450
|
- lib/pact_broker/db/validate_encoding.rb
|
|
451
|
+
- lib/pact_broker/diagnostic/app.rb
|
|
452
|
+
- lib/pact_broker/diagnostic/resources/dependencies.rb
|
|
453
|
+
- lib/pact_broker/diagnostic/resources/heartbeat.rb
|
|
451
454
|
- lib/pact_broker/doc/controllers/app.rb
|
|
452
455
|
- lib/pact_broker/doc/views/consumer.markdown
|
|
453
456
|
- lib/pact_broker/doc/views/diff-previous-distinct.markdown
|
|
@@ -474,12 +477,11 @@ files:
|
|
|
474
477
|
- lib/pact_broker/domain/webhook_execution_result.rb
|
|
475
478
|
- lib/pact_broker/domain/webhook_request.rb
|
|
476
479
|
- lib/pact_broker/domain/webhook_request_header.rb
|
|
477
|
-
- lib/pact_broker/functions/find_potential_duplicate_pacticipant_names.rb
|
|
478
|
-
- lib/pact_broker/functions/groupify.rb
|
|
479
480
|
- lib/pact_broker/json.rb
|
|
480
481
|
- lib/pact_broker/locale/en.yml
|
|
481
482
|
- lib/pact_broker/logging.rb
|
|
482
483
|
- lib/pact_broker/messages.rb
|
|
484
|
+
- lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb
|
|
483
485
|
- lib/pact_broker/pacts/all_pacts.rb
|
|
484
486
|
- lib/pact_broker/pacts/create_formatted_diff.rb
|
|
485
487
|
- lib/pact_broker/pacts/database_model.rb
|
|
@@ -488,9 +490,10 @@ files:
|
|
|
488
490
|
- lib/pact_broker/pacts/pact_params.rb
|
|
489
491
|
- lib/pact_broker/pacts/pact_version_content.rb
|
|
490
492
|
- lib/pact_broker/pacts/repository.rb
|
|
493
|
+
- lib/pact_broker/pacts/service.rb
|
|
491
494
|
- lib/pact_broker/project_root.rb
|
|
495
|
+
- lib/pact_broker/relationships/groupify.rb
|
|
492
496
|
- lib/pact_broker/repositories.rb
|
|
493
|
-
- lib/pact_broker/repositories/pact_content.rb
|
|
494
497
|
- lib/pact_broker/repositories/pacticipant_repository.rb
|
|
495
498
|
- lib/pact_broker/repositories/tag_repository.rb
|
|
496
499
|
- lib/pact_broker/repositories/version_repository.rb
|
|
@@ -498,7 +501,6 @@ files:
|
|
|
498
501
|
- lib/pact_broker/repositories/webhook_repository.rb
|
|
499
502
|
- lib/pact_broker/services.rb
|
|
500
503
|
- lib/pact_broker/services/group_service.rb
|
|
501
|
-
- lib/pact_broker/services/pact_service.rb
|
|
502
504
|
- lib/pact_broker/services/pacticipant_service.rb
|
|
503
505
|
- lib/pact_broker/services/tag_service.rb
|
|
504
506
|
- lib/pact_broker/services/version_service.rb
|
|
@@ -599,25 +601,27 @@ files:
|
|
|
599
601
|
- spec/lib/pact_broker/api/resources/webhooks_spec.rb
|
|
600
602
|
- spec/lib/pact_broker/configuration_spec.rb
|
|
601
603
|
- spec/lib/pact_broker/db/validate_encoding_spec.rb
|
|
604
|
+
- spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb
|
|
605
|
+
- spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb
|
|
602
606
|
- spec/lib/pact_broker/doc/controllers/app_spec.rb
|
|
603
607
|
- spec/lib/pact_broker/domain/group_spec.rb
|
|
604
608
|
- spec/lib/pact_broker/domain/order_versions_spec.rb
|
|
605
609
|
- spec/lib/pact_broker/domain/pacticipant_spec.rb
|
|
606
610
|
- spec/lib/pact_broker/domain/webhook_request_spec.rb
|
|
607
611
|
- spec/lib/pact_broker/domain/webhook_spec.rb
|
|
608
|
-
- spec/lib/pact_broker/functions/find_potential_duplicate_pacticipant_names_spec.rb
|
|
609
|
-
- spec/lib/pact_broker/functions/groupify_spec.rb
|
|
610
612
|
- spec/lib/pact_broker/messages_spec.rb
|
|
613
|
+
- spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb
|
|
611
614
|
- spec/lib/pact_broker/pacts/create_formatted_diff_spec.rb
|
|
612
615
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
|
613
616
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
|
614
617
|
- spec/lib/pact_broker/pacts/repository_spec.rb
|
|
618
|
+
- spec/lib/pact_broker/pacts/service_spec.rb
|
|
619
|
+
- spec/lib/pact_broker/relationships/groupify_spec.rb
|
|
615
620
|
- spec/lib/pact_broker/repositories/pacticipant_repository_spec.rb
|
|
616
621
|
- spec/lib/pact_broker/repositories/tag_repository_spec.rb
|
|
617
622
|
- spec/lib/pact_broker/repositories/version_repository_spec.rb
|
|
618
623
|
- spec/lib/pact_broker/repositories/webhook_repository_spec.rb
|
|
619
624
|
- spec/lib/pact_broker/services/group_service_spec.rb
|
|
620
|
-
- spec/lib/pact_broker/services/pact_service_spec.rb
|
|
621
625
|
- spec/lib/pact_broker/services/pacticipant_service_spec.rb
|
|
622
626
|
- spec/lib/pact_broker/services/tag_service_spec.rb
|
|
623
627
|
- spec/lib/pact_broker/services/webhook_service_spec.rb
|
|
@@ -747,25 +751,27 @@ test_files:
|
|
|
747
751
|
- spec/lib/pact_broker/api/resources/webhooks_spec.rb
|
|
748
752
|
- spec/lib/pact_broker/configuration_spec.rb
|
|
749
753
|
- spec/lib/pact_broker/db/validate_encoding_spec.rb
|
|
754
|
+
- spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb
|
|
755
|
+
- spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb
|
|
750
756
|
- spec/lib/pact_broker/doc/controllers/app_spec.rb
|
|
751
757
|
- spec/lib/pact_broker/domain/group_spec.rb
|
|
752
758
|
- spec/lib/pact_broker/domain/order_versions_spec.rb
|
|
753
759
|
- spec/lib/pact_broker/domain/pacticipant_spec.rb
|
|
754
760
|
- spec/lib/pact_broker/domain/webhook_request_spec.rb
|
|
755
761
|
- spec/lib/pact_broker/domain/webhook_spec.rb
|
|
756
|
-
- spec/lib/pact_broker/functions/find_potential_duplicate_pacticipant_names_spec.rb
|
|
757
|
-
- spec/lib/pact_broker/functions/groupify_spec.rb
|
|
758
762
|
- spec/lib/pact_broker/messages_spec.rb
|
|
763
|
+
- spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb
|
|
759
764
|
- spec/lib/pact_broker/pacts/create_formatted_diff_spec.rb
|
|
760
765
|
- spec/lib/pact_broker/pacts/diff_spec.rb
|
|
761
766
|
- spec/lib/pact_broker/pacts/pact_params_spec.rb
|
|
762
767
|
- spec/lib/pact_broker/pacts/repository_spec.rb
|
|
768
|
+
- spec/lib/pact_broker/pacts/service_spec.rb
|
|
769
|
+
- spec/lib/pact_broker/relationships/groupify_spec.rb
|
|
763
770
|
- spec/lib/pact_broker/repositories/pacticipant_repository_spec.rb
|
|
764
771
|
- spec/lib/pact_broker/repositories/tag_repository_spec.rb
|
|
765
772
|
- spec/lib/pact_broker/repositories/version_repository_spec.rb
|
|
766
773
|
- spec/lib/pact_broker/repositories/webhook_repository_spec.rb
|
|
767
774
|
- spec/lib/pact_broker/services/group_service_spec.rb
|
|
768
|
-
- spec/lib/pact_broker/services/pact_service_spec.rb
|
|
769
775
|
- spec/lib/pact_broker/services/pacticipant_service_spec.rb
|
|
770
776
|
- spec/lib/pact_broker/services/tag_service_spec.rb
|
|
771
777
|
- spec/lib/pact_broker/services/webhook_service_spec.rb
|
|
File without changes
|