pact 1.10.0 → 1.11.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 +8 -0
- data/lib/pact/provider/configuration/configuration_extension.rb +2 -0
- data/lib/pact/provider/configuration/service_provider_config.rb +9 -1
- data/lib/pact/provider/configuration/service_provider_dsl.rb +22 -3
- data/lib/pact/provider/pact_source.rb +4 -1
- data/lib/pact/provider/pact_spec_runner.rb +7 -2
- data/lib/pact/provider/pact_uri.rb +15 -4
- data/lib/pact/provider/rspec.rb +6 -6
- data/lib/pact/provider/verification_results/create.rb +42 -0
- data/lib/pact/provider/verification_results/publish.rb +78 -0
- data/lib/pact/provider/verification_results/publish_all.rb +36 -0
- data/lib/pact/provider/verification_results/verification_result.rb +28 -0
- data/lib/pact/version.rb +1 -1
- data/pact.gemspec +3 -3
- metadata +92 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e38dc280e6592408508f4e59c018203b8504946
|
4
|
+
data.tar.gz: f26b048371865114bea388c812bf2b33bc23ead9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 554be632b814eb194c01fe50800c073b3fa1540fd2bbb530f35ccb33bb1918ab24a9f37c2eca0a3ad16b685a66ccda244418b3bbbea6178846d1b1a1a45443a3
|
7
|
+
data.tar.gz: 6a02276a6a970827a37b66039b90dd47b4444d2ae9ed2f67a510a0e8895af046f5299bb2ce4370c2f084a9d36cce9ad2574358310068f5218048994ed154329d
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@ Do this to generate your change history
|
|
2
2
|
|
3
3
|
git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
|
4
4
|
|
5
|
+
## 1.11.0 (8 May 2017)
|
6
|
+
* 2a54388 - Only publish verification results when using spec 3. (Beth Skurrie, Mon May 8 12:08:48 2017 +1000)
|
7
|
+
* a82d919 - Remove build for ruby 2.0.0! (Beth Skurrie, Tue May 2 15:16:40 2017 +1000)
|
8
|
+
* 37437db - Use basic auth to publish verification if basic auth was configured on the pact URL. (Beth Skurrie, Tue May 2 10:22:15 2017 +1000)
|
9
|
+
* 3038354 - Enable verifications to be automatically published to the pact broker. (Beth Skurrie, Tue May 2 08:44:19 2017 +1000)
|
10
|
+
* 527f27f - Update gem dependency versions. (Beth Skurrie, Tue May 2 08:24:37 2017 +1000)
|
11
|
+
* 041f107 - Updated pact-mock_service version in gemspec (Beth Skurrie, Tue Apr 4 16:20:10 2017 +1000)
|
12
|
+
|
5
13
|
## 1.10.0 (14 Nov 2016)
|
6
14
|
* 1e8c0bc - Updating pact-support and pact-mock_service versions (Beth Skurrie, Mon Nov 14 10:16:38 2016 +1100)
|
7
15
|
|
@@ -3,13 +3,21 @@ module Pact
|
|
3
3
|
module Configuration
|
4
4
|
class ServiceProviderConfig
|
5
5
|
|
6
|
-
|
6
|
+
attr_accessor :application_version
|
7
|
+
|
8
|
+
def initialize application_version, publish_verification_results, &app_block
|
9
|
+
@application_version = application_version
|
10
|
+
@publish_verification_results = publish_verification_results
|
7
11
|
@app_block = app_block
|
8
12
|
end
|
9
13
|
|
10
14
|
def app
|
11
15
|
@app_block.call
|
12
16
|
end
|
17
|
+
|
18
|
+
def publish_verification_results?
|
19
|
+
@publish_verification_results
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
@@ -7,11 +7,13 @@ module Pact
|
|
7
7
|
|
8
8
|
module Configuration
|
9
9
|
|
10
|
+
class Error < ::Pact::Error; end
|
11
|
+
|
10
12
|
class ServiceProviderDSL
|
11
13
|
|
12
14
|
extend Pact::DSL
|
13
15
|
|
14
|
-
attr_accessor :name, :app_block
|
16
|
+
attr_accessor :name, :app_block, :application_version, :publish_verification_results
|
15
17
|
|
16
18
|
CONFIG_RU_APP = lambda {
|
17
19
|
unless File.exist? Pact.configuration.config_ru_path
|
@@ -22,6 +24,7 @@ module Pact
|
|
22
24
|
|
23
25
|
def initialize name
|
24
26
|
@name = name
|
27
|
+
@publish_verification_results = false
|
25
28
|
@app_block = CONFIG_RU_APP
|
26
29
|
end
|
27
30
|
|
@@ -30,6 +33,17 @@ module Pact
|
|
30
33
|
self.app_block = block
|
31
34
|
end
|
32
35
|
|
36
|
+
def app_version application_version
|
37
|
+
self.application_version = application_version
|
38
|
+
end
|
39
|
+
|
40
|
+
def publish_verification_results publish_verification_results
|
41
|
+
self.publish_verification_results = publish_verification_results
|
42
|
+
Pact::RSpec.with_rspec_2 do
|
43
|
+
puts "WARNING: Publishing of verification results is currently not supported with rspec 2. If you would like this functionality, please feel free to submit a PR!"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
33
47
|
def honours_pact_with consumer_name, options = {}, &block
|
34
48
|
create_pact_verification consumer_name, options, &block
|
35
49
|
end
|
@@ -47,11 +61,16 @@ module Pact
|
|
47
61
|
private
|
48
62
|
|
49
63
|
def validate
|
50
|
-
raise "Please provide a name for the Provider" unless name && !name.strip.empty?
|
64
|
+
raise Error.new("Please provide a name for the Provider") unless name && !name.strip.empty?
|
65
|
+
raise Error.new("Please set the app_version when publish_verification_results is true") if publish_verification_results && application_version_blank?
|
66
|
+
end
|
67
|
+
|
68
|
+
def application_version_blank?
|
69
|
+
application_version.nil? || application_version.strip.empty?
|
51
70
|
end
|
52
71
|
|
53
72
|
def create_service_provider
|
54
|
-
Pact.configuration.provider = ServiceProviderConfig.new(&@app_block)
|
73
|
+
Pact.configuration.provider = ServiceProviderConfig.new(application_version, publish_verification_results, &@app_block)
|
55
74
|
end
|
56
75
|
end
|
57
76
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'pact/consumer_contract/pact_file'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Pact
|
4
4
|
module Provider
|
5
5
|
class PactSource
|
6
6
|
|
@@ -14,6 +14,9 @@ module PactBroker
|
|
14
14
|
@pact_json ||= Pact::PactFile.read(uri.uri, uri.options)
|
15
15
|
end
|
16
16
|
|
17
|
+
def pact_hash
|
18
|
+
@pact_hash ||= JSON.load(pact_json, nil, { max_nesting: 50 })
|
19
|
+
end
|
17
20
|
end
|
18
21
|
end
|
19
22
|
end
|
@@ -7,6 +7,7 @@ require 'pact/project_root'
|
|
7
7
|
require 'pact/rspec'
|
8
8
|
require 'pact/provider/pact_source'
|
9
9
|
require 'pact/provider/help/write'
|
10
|
+
require 'pact/provider/verification_results/publish_all'
|
10
11
|
|
11
12
|
require_relative 'rspec'
|
12
13
|
|
@@ -77,9 +78,13 @@ module Pact
|
|
77
78
|
end
|
78
79
|
|
79
80
|
jsons = pact_jsons
|
81
|
+
sources = pact_sources
|
80
82
|
|
81
|
-
config.after(:suite) do
|
83
|
+
config.after(:suite) do | suite |
|
82
84
|
Pact::Provider::Help::Write.call(jsons)
|
85
|
+
Pact::RSpec.with_rspec_3 do
|
86
|
+
Pact::Provider::VerificationResults::PublishAll.call(sources, suite)
|
87
|
+
end
|
83
88
|
end
|
84
89
|
|
85
90
|
end
|
@@ -107,7 +112,7 @@ module Pact
|
|
107
112
|
def pact_sources
|
108
113
|
@pact_sources ||= begin
|
109
114
|
pact_urls.collect do | pact_url |
|
110
|
-
|
115
|
+
Pact::Provider::PactSource.new(pact_url)
|
111
116
|
end
|
112
117
|
end
|
113
118
|
end
|
@@ -14,14 +14,25 @@ module Pact
|
|
14
14
|
options == other.options
|
15
15
|
end
|
16
16
|
|
17
|
+
def basic_auth?
|
18
|
+
!!username
|
19
|
+
end
|
20
|
+
|
21
|
+
def username
|
22
|
+
options[:username]
|
23
|
+
end
|
24
|
+
|
25
|
+
def password
|
26
|
+
options[:password]
|
27
|
+
end
|
28
|
+
|
17
29
|
def to_s
|
18
|
-
if(
|
19
|
-
URI(@uri).tap { |x| x.userinfo="#{
|
30
|
+
if(basic_auth?)
|
31
|
+
URI(@uri).tap { |x| x.userinfo="#{username}:*****"}.to_s
|
20
32
|
else
|
21
33
|
@uri
|
22
34
|
end
|
23
|
-
|
24
35
|
end
|
25
36
|
end
|
26
37
|
end
|
27
|
-
end
|
38
|
+
end
|
data/lib/pact/provider/rspec.rb
CHANGED
@@ -23,13 +23,13 @@ module Pact
|
|
23
23
|
puts "Reading pact at #{pact_uri}"
|
24
24
|
puts "Filtering interactions by: #{options[:criteria]}" if options[:criteria] && options[:criteria].any?
|
25
25
|
consumer_contract = Pact::ConsumerContract.from_json(pact_json)
|
26
|
-
::RSpec.describe "Verifying a pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}", :
|
26
|
+
::RSpec.describe "Verifying a pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}", pactfile_uri: pact_uri do
|
27
27
|
honour_consumer_contract consumer_contract, options.merge(pact_json: pact_json)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
def honour_consumer_contract consumer_contract, options = {}
|
32
|
-
describe_consumer_contract consumer_contract, options.merge(:
|
32
|
+
describe_consumer_contract consumer_contract, options.merge(consumer: consumer_contract.consumer.name)
|
33
33
|
end
|
34
34
|
|
35
35
|
private
|
@@ -61,10 +61,10 @@ module Pact
|
|
61
61
|
def describe_interaction interaction, options
|
62
62
|
|
63
63
|
metadata = {
|
64
|
-
:
|
65
|
-
:
|
66
|
-
:
|
67
|
-
:
|
64
|
+
pact: :verify,
|
65
|
+
pact_interaction: interaction,
|
66
|
+
pact_interaction_example_description: interaction_description_for_rerun_command(interaction),
|
67
|
+
pact_json: options[:pact_json]
|
68
68
|
}
|
69
69
|
|
70
70
|
describe description_for(interaction), metadata do
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'pact/provider/verification_results/verification_result'
|
2
|
+
module Pact
|
3
|
+
module Provider
|
4
|
+
module VerificationResults
|
5
|
+
class Create
|
6
|
+
|
7
|
+
def self.call pact_json, suite_context
|
8
|
+
new(pact_json, suite_context).call
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize pact_json, suite_context
|
12
|
+
@pact_json = pact_json
|
13
|
+
@suite_context = suite_context
|
14
|
+
end
|
15
|
+
|
16
|
+
def call
|
17
|
+
VerificationResult.new(!any_failures?, Pact.configuration.provider.application_version)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def pact_hash
|
23
|
+
@pact_hash ||= json_load(pact_json)
|
24
|
+
end
|
25
|
+
|
26
|
+
def json_load json
|
27
|
+
JSON.load(json, nil, { max_nesting: 50 })
|
28
|
+
end
|
29
|
+
|
30
|
+
def count_failures_for_pact_json
|
31
|
+
suite_context.reporter.failed_examples.collect{ |e| e.metadata[:pact_json] == pact_json }.uniq.size
|
32
|
+
end
|
33
|
+
|
34
|
+
def any_failures?
|
35
|
+
count_failures_for_pact_json > 0
|
36
|
+
end
|
37
|
+
|
38
|
+
attr_reader :pact_json, :suite_context
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'pact/errors'
|
3
|
+
|
4
|
+
module Pact
|
5
|
+
module Provider
|
6
|
+
module VerificationResults
|
7
|
+
|
8
|
+
class PublicationError < Pact::Error; end
|
9
|
+
|
10
|
+
class Publish
|
11
|
+
|
12
|
+
def self.call pact_source, verification_result
|
13
|
+
new(pact_source, verification_result).call
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize pact_source, verification_result
|
17
|
+
@pact_source = pact_source
|
18
|
+
@verification_result = verification_result
|
19
|
+
end
|
20
|
+
|
21
|
+
def call
|
22
|
+
if Pact.configuration.provider.publish_verification_results?
|
23
|
+
if publication_url
|
24
|
+
publish
|
25
|
+
else
|
26
|
+
puts "WARNING: Cannot publish verification for #{consumer_name} as there is no link named pb:publish-verification-results in the pact JSON. If you are using a pact broker, please upgrade to version 2.0.0 or later."
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def publication_url
|
34
|
+
@publication_url ||= pact_source.pact_hash.fetch('_links', {}).fetch('pb:publish-verification-results', {})['href']
|
35
|
+
end
|
36
|
+
|
37
|
+
def publish
|
38
|
+
#TODO https
|
39
|
+
#TODO username/password
|
40
|
+
uri = URI(publication_url)
|
41
|
+
request = build_request(uri)
|
42
|
+
response = nil
|
43
|
+
begin
|
44
|
+
response = Net::HTTP.start(uri.host, uri.port) do |http|
|
45
|
+
http.request request
|
46
|
+
end
|
47
|
+
rescue StandardError => e
|
48
|
+
error_message = "Failed to publish verification result due to: #{e.class} #{e.message}"
|
49
|
+
raise PublicationError.new(error_message)
|
50
|
+
end
|
51
|
+
|
52
|
+
unless response.code.start_with?("2")
|
53
|
+
raise PublicationError.new("Error returned from verification result publication #{response.code} #{response.body}")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def build_request uri
|
58
|
+
request = Net::HTTP::Post.new(uri.path)
|
59
|
+
request['Content-Type'] = "application/json"
|
60
|
+
request.body = verification_result.to_json
|
61
|
+
debug_uri = uri
|
62
|
+
if pact_source.uri.basic_auth?
|
63
|
+
request.basic_auth pact_source.uri.username, pact_source.uri.password
|
64
|
+
debug_uri = URI(uri.to_s).tap { |x| x.userinfo="#{pact_source.uri.username}:*****"}
|
65
|
+
end
|
66
|
+
puts "Publishing verification result #{verification_result.to_json} to #{debug_uri}"
|
67
|
+
request
|
68
|
+
end
|
69
|
+
|
70
|
+
def consumer_name
|
71
|
+
pact_source.pact_hash['consumer']['name']
|
72
|
+
end
|
73
|
+
|
74
|
+
attr_reader :pact_source, :verification_result
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require'pact/provider/verification_results/create'
|
2
|
+
require'pact/provider/verification_results/publish'
|
3
|
+
|
4
|
+
module Pact
|
5
|
+
module Provider
|
6
|
+
module VerificationResults
|
7
|
+
class PublishAll
|
8
|
+
|
9
|
+
def self.call pact_sources, rspec_summary
|
10
|
+
new(pact_sources, rspec_summary).call
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize pact_sources, rspec_summary
|
14
|
+
@pact_sources = pact_sources
|
15
|
+
@rspec_summary = rspec_summary
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
verification_results.collect do | pair |
|
20
|
+
Publish.call(pair.first, pair.last)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def verification_results
|
27
|
+
pact_sources.collect do | pact_source |
|
28
|
+
[pact_source, Create.call(pact_source.pact_json, rspec_summary)]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
attr_reader :pact_sources, :rspec_summary
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Pact
|
2
|
+
module Provider
|
3
|
+
module VerificationResults
|
4
|
+
class VerificationResult
|
5
|
+
|
6
|
+
def initialize success, provider_application_version
|
7
|
+
@success = success
|
8
|
+
@provider_application_version = provider_application_version
|
9
|
+
end
|
10
|
+
|
11
|
+
def provider_application_version_set?
|
12
|
+
!!provider_application_version
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_json
|
16
|
+
{
|
17
|
+
success: success,
|
18
|
+
providerApplicationVersion: provider_application_version
|
19
|
+
}.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
attr_reader :success, :provider_application_version
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/pact/version.rb
CHANGED
data/pact.gemspec
CHANGED
@@ -24,15 +24,15 @@ Gem::Specification.new do |gem|
|
|
24
24
|
gem.add_runtime_dependency 'rspec', '>=2.14'
|
25
25
|
gem.add_runtime_dependency 'rack-test', '~> 0.6.2'
|
26
26
|
gem.add_runtime_dependency 'thor'
|
27
|
-
gem.add_runtime_dependency 'json'
|
27
|
+
gem.add_runtime_dependency 'json','> 1.8.5'
|
28
28
|
gem.add_runtime_dependency 'webrick'
|
29
29
|
gem.add_runtime_dependency 'term-ansicolor', '~> 1.0'
|
30
30
|
|
31
31
|
gem.add_runtime_dependency 'pact-support', '~> 0.6'
|
32
|
-
gem.add_runtime_dependency 'pact-mock_service', '~>
|
32
|
+
gem.add_runtime_dependency 'pact-mock_service', '~> 1.2'
|
33
33
|
|
34
34
|
gem.add_development_dependency 'rake', '~> 10.0.3'
|
35
|
-
gem.add_development_dependency 'webmock', '~>
|
35
|
+
gem.add_development_dependency 'webmock', '~> 3.0'
|
36
36
|
gem.add_development_dependency 'pry'
|
37
37
|
gem.add_development_dependency 'fakefs', '0.5' # 0.6.0 blows up
|
38
38
|
gem.add_development_dependency 'hashie', '~> 2.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -9,250 +9,252 @@ authors:
|
|
9
9
|
- Brent Snook
|
10
10
|
- Ronald Holshausen
|
11
11
|
- Beth Skurrie
|
12
|
-
autorequire:
|
12
|
+
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: randexp
|
19
|
-
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.1.7
|
24
|
-
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
27
|
requirements:
|
26
28
|
- - "~>"
|
27
29
|
- !ruby/object:Gem::Version
|
28
30
|
version: 0.1.7
|
29
|
-
prerelease: false
|
30
|
-
type: :runtime
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: rspec
|
33
|
-
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
35
|
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '2.14'
|
38
|
-
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
41
|
requirements:
|
40
42
|
- - ">="
|
41
43
|
- !ruby/object:Gem::Version
|
42
44
|
version: '2.14'
|
43
|
-
prerelease: false
|
44
|
-
type: :runtime
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: rack-test
|
47
|
-
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: 0.6.2
|
52
|
-
|
52
|
+
type: :runtime
|
53
|
+
prerelease: false
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
55
|
requirements:
|
54
56
|
- - "~>"
|
55
57
|
- !ruby/object:Gem::Version
|
56
58
|
version: 0.6.2
|
57
|
-
prerelease: false
|
58
|
-
type: :runtime
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: thor
|
61
|
-
version_requirements: !ruby/object:Gem::Requirement
|
62
|
-
requirements:
|
63
|
-
- - ">="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
66
61
|
requirement: !ruby/object:Gem::Requirement
|
67
62
|
requirements:
|
68
63
|
- - ">="
|
69
64
|
- !ruby/object:Gem::Version
|
70
65
|
version: '0'
|
71
|
-
prerelease: false
|
72
66
|
type: :runtime
|
73
|
-
|
74
|
-
name: json
|
67
|
+
prerelease: false
|
75
68
|
version_requirements: !ruby/object:Gem::Requirement
|
76
69
|
requirements:
|
77
70
|
- - ">="
|
78
71
|
- !ruby/object:Gem::Version
|
79
72
|
version: '0'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: json
|
80
75
|
requirement: !ruby/object:Gem::Requirement
|
81
76
|
requirements:
|
82
|
-
- - "
|
77
|
+
- - ">"
|
83
78
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
85
|
-
prerelease: false
|
79
|
+
version: 1.8.5
|
86
80
|
type: :runtime
|
87
|
-
|
88
|
-
name: webrick
|
81
|
+
prerelease: false
|
89
82
|
version_requirements: !ruby/object:Gem::Requirement
|
90
83
|
requirements:
|
91
|
-
- - "
|
84
|
+
- - ">"
|
92
85
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
86
|
+
version: 1.8.5
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: webrick
|
94
89
|
requirement: !ruby/object:Gem::Requirement
|
95
90
|
requirements:
|
96
91
|
- - ">="
|
97
92
|
- !ruby/object:Gem::Version
|
98
93
|
version: '0'
|
99
|
-
prerelease: false
|
100
94
|
type: :runtime
|
101
|
-
|
102
|
-
name: term-ansicolor
|
95
|
+
prerelease: false
|
103
96
|
version_requirements: !ruby/object:Gem::Requirement
|
104
97
|
requirements:
|
105
|
-
- - "
|
98
|
+
- - ">="
|
106
99
|
- !ruby/object:Gem::Version
|
107
|
-
version: '
|
100
|
+
version: '0'
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: term-ansicolor
|
108
103
|
requirement: !ruby/object:Gem::Requirement
|
109
104
|
requirements:
|
110
105
|
- - "~>"
|
111
106
|
- !ruby/object:Gem::Version
|
112
107
|
version: '1.0'
|
113
|
-
prerelease: false
|
114
108
|
type: :runtime
|
115
|
-
|
116
|
-
name: pact-support
|
109
|
+
prerelease: false
|
117
110
|
version_requirements: !ruby/object:Gem::Requirement
|
118
111
|
requirements:
|
119
112
|
- - "~>"
|
120
113
|
- !ruby/object:Gem::Version
|
121
|
-
version: '0
|
114
|
+
version: '1.0'
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: pact-support
|
122
117
|
requirement: !ruby/object:Gem::Requirement
|
123
118
|
requirements:
|
124
119
|
- - "~>"
|
125
120
|
- !ruby/object:Gem::Version
|
126
121
|
version: '0.6'
|
127
|
-
prerelease: false
|
128
122
|
type: :runtime
|
129
|
-
|
130
|
-
name: pact-mock_service
|
123
|
+
prerelease: false
|
131
124
|
version_requirements: !ruby/object:Gem::Requirement
|
132
125
|
requirements:
|
133
126
|
- - "~>"
|
134
127
|
- !ruby/object:Gem::Version
|
135
|
-
version: '0.
|
128
|
+
version: '0.6'
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: pact-mock_service
|
136
131
|
requirement: !ruby/object:Gem::Requirement
|
137
132
|
requirements:
|
138
133
|
- - "~>"
|
139
134
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
141
|
-
prerelease: false
|
135
|
+
version: '1.2'
|
142
136
|
type: :runtime
|
143
|
-
|
144
|
-
name: rake
|
137
|
+
prerelease: false
|
145
138
|
version_requirements: !ruby/object:Gem::Requirement
|
146
139
|
requirements:
|
147
140
|
- - "~>"
|
148
141
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
142
|
+
version: '1.2'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rake
|
150
145
|
requirement: !ruby/object:Gem::Requirement
|
151
146
|
requirements:
|
152
147
|
- - "~>"
|
153
148
|
- !ruby/object:Gem::Version
|
154
149
|
version: 10.0.3
|
155
|
-
prerelease: false
|
156
150
|
type: :development
|
157
|
-
|
158
|
-
name: webmock
|
151
|
+
prerelease: false
|
159
152
|
version_requirements: !ruby/object:Gem::Requirement
|
160
153
|
requirements:
|
161
154
|
- - "~>"
|
162
155
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
156
|
+
version: 10.0.3
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: webmock
|
164
159
|
requirement: !ruby/object:Gem::Requirement
|
165
160
|
requirements:
|
166
161
|
- - "~>"
|
167
162
|
- !ruby/object:Gem::Version
|
168
|
-
version:
|
169
|
-
prerelease: false
|
163
|
+
version: '3.0'
|
170
164
|
type: :development
|
165
|
+
prerelease: false
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - "~>"
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '3.0'
|
171
171
|
- !ruby/object:Gem::Dependency
|
172
172
|
name: pry
|
173
|
-
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
175
|
- - ">="
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: '0'
|
178
|
-
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
181
|
requirements:
|
180
182
|
- - ">="
|
181
183
|
- !ruby/object:Gem::Version
|
182
184
|
version: '0'
|
183
|
-
prerelease: false
|
184
|
-
type: :development
|
185
185
|
- !ruby/object:Gem::Dependency
|
186
186
|
name: fakefs
|
187
|
-
|
187
|
+
requirement: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
189
|
- - '='
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0.5'
|
192
|
-
|
192
|
+
type: :development
|
193
|
+
prerelease: false
|
194
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
195
|
requirements:
|
194
196
|
- - '='
|
195
197
|
- !ruby/object:Gem::Version
|
196
198
|
version: '0.5'
|
197
|
-
prerelease: false
|
198
|
-
type: :development
|
199
199
|
- !ruby/object:Gem::Dependency
|
200
200
|
name: hashie
|
201
|
-
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
202
202
|
requirements:
|
203
203
|
- - "~>"
|
204
204
|
- !ruby/object:Gem::Version
|
205
205
|
version: '2.0'
|
206
|
-
|
206
|
+
type: :development
|
207
|
+
prerelease: false
|
208
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
209
|
requirements:
|
208
210
|
- - "~>"
|
209
211
|
- !ruby/object:Gem::Version
|
210
212
|
version: '2.0'
|
211
|
-
prerelease: false
|
212
|
-
type: :development
|
213
213
|
- !ruby/object:Gem::Dependency
|
214
214
|
name: activesupport
|
215
|
-
version_requirements: !ruby/object:Gem::Requirement
|
216
|
-
requirements:
|
217
|
-
- - ">="
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: '0'
|
220
215
|
requirement: !ruby/object:Gem::Requirement
|
221
216
|
requirements:
|
222
217
|
- - ">="
|
223
218
|
- !ruby/object:Gem::Version
|
224
219
|
version: '0'
|
225
|
-
prerelease: false
|
226
220
|
type: :development
|
227
|
-
|
228
|
-
name: faraday
|
221
|
+
prerelease: false
|
229
222
|
version_requirements: !ruby/object:Gem::Requirement
|
230
223
|
requirements:
|
231
224
|
- - ">="
|
232
225
|
- !ruby/object:Gem::Version
|
233
226
|
version: '0'
|
227
|
+
- !ruby/object:Gem::Dependency
|
228
|
+
name: faraday
|
234
229
|
requirement: !ruby/object:Gem::Requirement
|
235
230
|
requirements:
|
236
231
|
- - ">="
|
237
232
|
- !ruby/object:Gem::Version
|
238
233
|
version: '0'
|
239
|
-
prerelease: false
|
240
234
|
type: :development
|
241
|
-
|
242
|
-
name: appraisal
|
235
|
+
prerelease: false
|
243
236
|
version_requirements: !ruby/object:Gem::Requirement
|
244
237
|
requirements:
|
245
238
|
- - ">="
|
246
239
|
- !ruby/object:Gem::Version
|
247
240
|
version: '0'
|
241
|
+
- !ruby/object:Gem::Dependency
|
242
|
+
name: appraisal
|
248
243
|
requirement: !ruby/object:Gem::Requirement
|
249
244
|
requirements:
|
250
245
|
- - ">="
|
251
246
|
- !ruby/object:Gem::Version
|
252
247
|
version: '0'
|
253
|
-
prerelease: false
|
254
248
|
type: :development
|
255
|
-
|
249
|
+
prerelease: false
|
250
|
+
version_requirements: !ruby/object:Gem::Requirement
|
251
|
+
requirements:
|
252
|
+
- - ">="
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: '0'
|
255
|
+
description: Enables consumer driven contract testing, providing a mock service and
|
256
|
+
DSL for the consumer project, and interaction playback and verification for the
|
257
|
+
service provider project.
|
256
258
|
email:
|
257
259
|
- james.fraser@alumni.swinburne.edu
|
258
260
|
- sergei.matheson@gmail.com
|
@@ -330,6 +332,10 @@ files:
|
|
330
332
|
- lib/pact/provider/state/provider_state_proxy.rb
|
331
333
|
- lib/pact/provider/test_methods.rb
|
332
334
|
- lib/pact/provider/verification_report.rb
|
335
|
+
- lib/pact/provider/verification_results/create.rb
|
336
|
+
- lib/pact/provider/verification_results/publish.rb
|
337
|
+
- lib/pact/provider/verification_results/publish_all.rb
|
338
|
+
- lib/pact/provider/verification_results/verification_result.rb
|
333
339
|
- lib/pact/provider/world.rb
|
334
340
|
- lib/pact/tasks.rb
|
335
341
|
- lib/pact/tasks/task_helper.rb
|
@@ -343,7 +349,7 @@ homepage: https://github.com/realestate-com-au/pact
|
|
343
349
|
licenses:
|
344
350
|
- MIT
|
345
351
|
metadata: {}
|
346
|
-
post_install_message:
|
352
|
+
post_install_message:
|
347
353
|
rdoc_options: []
|
348
354
|
require_paths:
|
349
355
|
- lib
|
@@ -358,9 +364,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
358
364
|
- !ruby/object:Gem::Version
|
359
365
|
version: '0'
|
360
366
|
requirements: []
|
361
|
-
rubyforge_project:
|
362
|
-
rubygems_version: 2.
|
363
|
-
signing_key:
|
367
|
+
rubyforge_project:
|
368
|
+
rubygems_version: 2.6.11
|
369
|
+
signing_key:
|
364
370
|
specification_version: 4
|
365
|
-
summary: Enables consumer driven contract testing, providing a mock service and DSL
|
371
|
+
summary: Enables consumer driven contract testing, providing a mock service and DSL
|
372
|
+
for the consumer project, and interaction playback and verification for the service
|
373
|
+
provider project.
|
366
374
|
test_files: []
|