pact 1.0.15 → 1.0.18
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.
- data/CHANGELOG.md +29 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +23 -6
- data/README.md +64 -19
- data/Rakefile +2 -2
- data/example/animal-service/spec/service_consumers/provider_states_for_zoo_app.rb +5 -2
- data/lib/pact/consumer/consumer_contract_builder.rb +2 -2
- data/lib/pact/consumer/mock_service/app.rb +2 -2
- data/lib/pact/consumer/mock_service_interaction_expectation.rb +5 -1
- data/lib/pact/consumer_contract/active_support_support.rb +29 -0
- data/lib/pact/consumer_contract/consumer_contract.rb +30 -6
- data/lib/pact/consumer_contract/interaction.rb +7 -1
- data/lib/pact/consumer_contract/request.rb +2 -2
- data/lib/pact/consumer_contract/service_consumer.rb +5 -1
- data/lib/pact/consumer_contract/service_provider.rb +5 -1
- data/lib/pact/matchers/matchers.rb +1 -1
- data/lib/pact/provider/pact_spec_runner.rb +100 -72
- data/lib/pact/provider/rspec.rb +17 -33
- data/lib/pact/provider/verification_report.rb +5 -1
- data/lib/pact/shared/request.rb +7 -3
- data/lib/pact/something_like.rb +5 -1
- data/lib/pact/tasks/task_helper.rb +9 -0
- data/lib/pact/tasks/verification_task.rb +74 -73
- data/lib/pact/term.rb +15 -1
- data/lib/pact/version.rb +1 -1
- data/lib/tasks/pact.rake +4 -2
- data/pact.gemspec +2 -1
- data/spec/features/production_spec.rb +1 -0
- data/spec/integration/consumer_spec.rb +1 -0
- data/spec/lib/pact/consumer_contract/active_support_support_spec.rb +43 -0
- data/spec/lib/pact/consumer_contract/consumer_contract_spec.rb +1 -1
- data/spec/lib/pact/consumer_contract/interaction_spec.rb +3 -3
- data/spec/lib/pact/matchers/matchers_spec.rb +10 -1
- data/spec/lib/pact/verification_task_spec.rb +102 -79
- data/spec/spec_helper.rb +11 -0
- data/tasks/pact-test.rake +1 -1
- data/tasks/spec.rake +8 -0
- metadata +40 -23
- data/lib/pact/json_warning.rb +0 -32
- data/spec/lib/pact/json_warning_spec.rb +0 -39
data/lib/pact/term.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
require 'pact/consumer_contract/active_support_support'
|
2
|
+
require 'json/add/regexp'
|
3
|
+
|
1
4
|
module Pact
|
2
5
|
class Term
|
3
6
|
|
7
|
+
include Pact::ActiveSupportSupport
|
8
|
+
|
4
9
|
attr_reader :generate, :matcher
|
5
10
|
|
6
11
|
def self.json_create(obj)
|
@@ -15,8 +20,17 @@ module Pact
|
|
15
20
|
raise "Value to generate \"#{@generate}\" does not match regular expression #{@matcher}" unless @generate =~ @matcher
|
16
21
|
end
|
17
22
|
|
23
|
+
def to_hash
|
24
|
+
{ json_class: self.class.name, data: { generate: generate, matcher: fix_regexp(matcher)} }
|
25
|
+
end
|
26
|
+
|
27
|
+
def as_json(options = {})
|
28
|
+
to_hash
|
29
|
+
end
|
30
|
+
|
31
|
+
|
18
32
|
def to_json(options = {})
|
19
|
-
|
33
|
+
as_json.to_json(options)
|
20
34
|
end
|
21
35
|
|
22
36
|
def match(literal)
|
data/lib/pact/version.rb
CHANGED
data/lib/tasks/pact.rake
CHANGED
@@ -10,10 +10,11 @@ namespace :pact do
|
|
10
10
|
include Pact::TaskHelper
|
11
11
|
|
12
12
|
handle_verification_failure do
|
13
|
+
options = {criteria: spec_criteria}
|
13
14
|
pact_verifications = Pact.configuration.pact_verifications
|
14
15
|
verification_configs = pact_verifications.collect { | pact_verification | { :uri => pact_verification.uri }}
|
15
16
|
raise "Please configure a pact to verify" if verification_configs.empty?
|
16
|
-
Pact::Provider::PactSpecRunner.new(verification_configs).run
|
17
|
+
Pact::Provider::PactSpecRunner.new(verification_configs, options).run
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
@@ -26,7 +27,8 @@ namespace :pact do
|
|
26
27
|
|
27
28
|
handle_verification_failure do
|
28
29
|
puts "Verifying pact at uri #{args[:pact_uri]}"
|
29
|
-
|
30
|
+
options = {criteria: spec_criteria}
|
31
|
+
Pact::Provider::PactSpecRunner.new([{uri: args[:pact_uri]}], options).run
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
data/pact.gemspec
CHANGED
@@ -27,11 +27,12 @@ Gem::Specification.new do |gem|
|
|
27
27
|
gem.add_runtime_dependency 'thin'
|
28
28
|
gem.add_runtime_dependency 'json' #Not locking down a version because buncher gem requires 1.6, while other projects use 1.7.
|
29
29
|
|
30
|
-
gem.add_development_dependency 'geminabox-client'
|
31
30
|
gem.add_development_dependency 'rake', '~> 10.0.3'
|
32
31
|
gem.add_development_dependency 'webmock', '~> 1.9.3'
|
33
32
|
gem.add_development_dependency 'pry'
|
34
33
|
gem.add_development_dependency 'fakefs', '~> 0.4'
|
35
34
|
gem.add_development_dependency 'hashie', '~> 2.0'
|
36
35
|
gem.add_development_dependency 'rspec-fire'
|
36
|
+
gem.add_development_dependency 'activesupport'
|
37
|
+
gem.add_development_dependency 'debugger'
|
37
38
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'pact/consumer_contract/active_support_support'
|
3
|
+
|
4
|
+
module Pact
|
5
|
+
describe ActiveSupportSupport do
|
6
|
+
|
7
|
+
include ActiveSupportSupport
|
8
|
+
|
9
|
+
|
10
|
+
describe "fix_regexp" do
|
11
|
+
let(:regexp) { /moose/ }
|
12
|
+
|
13
|
+
subject { fix_regexp regexp }
|
14
|
+
|
15
|
+
it "returns the original regexp" do
|
16
|
+
expect(subject).to be(regexp)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "fixes the as_json method for Regexp that ActiveSupport tramples beneath its destructive hooves of destruction" do
|
20
|
+
expect(subject.to_json).to eq("{\"json_class\":\"Regexp\",\"o\":0,\"s\":\"moose\"}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "fix_all_the_things" do
|
25
|
+
let(:hash) do
|
26
|
+
{ 'body' => Pact::Term.new(matcher: /a*b/, generate: 'abba'), array: [/blah/], thing: /alligator/ }
|
27
|
+
end
|
28
|
+
|
29
|
+
subject { fix_all_the_things(hash) }
|
30
|
+
|
31
|
+
it "returns the original object" do
|
32
|
+
expect(subject).to be(hash)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "finds all the Regexp objects in hashes or Pact class attributes and fixes the as_json method" do
|
36
|
+
json = subject.to_json
|
37
|
+
expect(json).to include("{\"json_class\":\"Regexp\",\"o\":0,\"s\":\"a*b\"}")
|
38
|
+
expect(json).to include("{\"json_class\":\"Regexp\",\"o\":0,\"s\":\"blah\"}")
|
39
|
+
expect(json).to include("{\"json_class\":\"Regexp\",\"o\":0,\"s\":\"alligator\"}")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -191,7 +191,7 @@ eos
|
|
191
191
|
end
|
192
192
|
|
193
193
|
it "should write the interactions to the file" do
|
194
|
-
File.read(expected_pact_path).should eql expected_pact_string.strip
|
194
|
+
File.read(expected_pact_path).gsub(/\s+/, '').should eql expected_pact_string.strip.gsub(/\s+/, '')
|
195
195
|
end
|
196
196
|
end
|
197
197
|
end
|
@@ -28,7 +28,7 @@ module Pact
|
|
28
28
|
context "by description" do
|
29
29
|
context "when the interaction matches" do
|
30
30
|
it "returns true" do
|
31
|
-
expect(subject.matches_criteria?(:description => /request.*food/)).to be_true
|
31
|
+
expect(subject.matches_criteria?(:description => /request.*food/)).to be_true
|
32
32
|
end
|
33
33
|
end
|
34
34
|
context "when the interaction does not match" do
|
@@ -52,10 +52,10 @@ module Pact
|
|
52
52
|
|
53
53
|
let(:response) do
|
54
54
|
{ baz: /qux/, wiffle: Term.new(generate: 'wiffle', matcher: /iff/) }
|
55
|
-
end
|
55
|
+
end
|
56
56
|
|
57
57
|
let(:parsed_result) do
|
58
|
-
JSON.load(
|
58
|
+
JSON.load(subject.to_json)
|
59
59
|
end
|
60
60
|
|
61
61
|
subject { Interaction.from_hash('response' => response, 'request' => request) }
|
@@ -38,6 +38,15 @@ describe Pact::Matchers do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
describe "expecting a string matching a regexp and not finding key" do
|
42
|
+
let(:expected) { {a: /b/} }
|
43
|
+
let(:actual) { {} }
|
44
|
+
let(:difference) { {:a=>{:expected=>/b/, :actual=> Pact::KeyNotFound.new }} }
|
45
|
+
it "returns the diff" do
|
46
|
+
expect(diff(expected, actual)).to eq difference
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
41
50
|
describe 'structure_diff' do
|
42
51
|
let(:expected) {
|
43
52
|
{a: 'a string', b: 1, c: nil, d: [{e: 'thing'}], f: {g: 10}, h: false}
|
@@ -153,7 +162,7 @@ describe Pact::Matchers do
|
|
153
162
|
let(:difference) { [Pact::Matchers::NO_DIFF_INDICATOR, {expected: Pact::UnexpectedIndex.new , actual: 2}] }
|
154
163
|
it 'returns the diff' do
|
155
164
|
expect(diff(subject, actual)).to eq(difference)
|
156
|
-
end
|
165
|
+
end
|
157
166
|
end
|
158
167
|
|
159
168
|
context 'where an expected value is a non-empty string' do
|
@@ -2,85 +2,108 @@ require 'spec_helper'
|
|
2
2
|
require 'pact/tasks/verification_task'
|
3
3
|
|
4
4
|
module Pact
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
5
|
+
describe VerificationTask do
|
6
|
+
before :all do
|
7
|
+
@support_file = nil
|
8
|
+
@pact_helper = '/custom/path/support_file.rb'
|
9
|
+
@pact_uri = 'http://example.org/pact.json'
|
10
|
+
@task_name = 'pact:verify:pact_rake_spec'
|
11
|
+
@task_name_with_explict_support_file = 'pact:verify:pact_rake_spec_with_explict_support_file'
|
12
|
+
@consumer = 'some-consumer'
|
13
|
+
@criteria = {:description => /wiffle/}
|
14
|
+
|
15
|
+
VerificationTask.new(:pact_rake_spec_with_explict_support_file) do | pact |
|
16
|
+
pact.uri @pact_uri, support_file: @support_file, pact_helper: @pact_helper
|
17
|
+
end
|
18
|
+
|
19
|
+
VerificationTask.new(:pact_rake_spec) do | pact |
|
20
|
+
pact.uri @pact_uri
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
after :each do
|
25
|
+
ENV.delete 'PACT_DESCRIPTION'
|
26
|
+
end
|
27
|
+
|
28
|
+
before do
|
29
|
+
ENV['PACT_DESCRIPTION'] = 'wiffle'
|
30
|
+
VerificationTask.any_instance.stub(:publish_report)
|
31
|
+
Provider::PactSpecRunner.stub(:new).with(consumer_contract, options).and_return(pact_spec_runner)
|
32
|
+
end
|
33
|
+
|
34
|
+
let(:pact_spec_runner) { double('PactSpecRunner', :run => exit_code, :output => nil)}
|
35
|
+
let(:exit_code) {0}
|
36
|
+
let(:consumer_contract) { [ uri: @pact_uri, support_file: nil, pact_helper: nil ] }
|
37
|
+
let(:options) { {criteria: @criteria} }
|
38
|
+
|
39
|
+
|
40
|
+
describe '.initialize' do
|
41
|
+
context 'with an explict support_file' do
|
42
|
+
it 'creates the tasks' do
|
43
|
+
Rake::Task.tasks.should include_task @task_name
|
44
|
+
end
|
45
|
+
end
|
46
|
+
context 'with no explict support_file' do
|
47
|
+
it 'creates the tasks' do
|
48
|
+
Rake::Task.tasks.should include_task @task_name_with_explict_support_file
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'execute' do
|
54
|
+
|
55
|
+
|
56
|
+
context "with no explicit support file " do
|
57
|
+
it 'verifies the pacts using PactSpecRunner' do
|
58
|
+
Rake::Task[@task_name].execute
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "with an explict support_file" do
|
63
|
+
let(:consumer_contract) { [ uri: @pact_uri, support_file: @support_file, pact_helper: @pact_helper] }
|
64
|
+
it 'verifies the pacts using PactSpecRunner' do
|
65
|
+
Rake::Task[@task_name_with_explict_support_file].execute
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context "with criteria" do
|
70
|
+
it 'passes the criteria to the PactSpecRunner as regexes' do
|
71
|
+
ENV.delete 'PACT_DESCRIPTION'
|
72
|
+
Provider::PactSpecRunner.should_receive(:new).with(
|
73
|
+
consumer_contract, {
|
74
|
+
criteria: {
|
75
|
+
description: /stuff/,
|
76
|
+
provider_state: /things/
|
77
|
+
}
|
78
|
+
}
|
79
|
+
).and_return(pact_spec_runner)
|
80
|
+
Rake::Task[@task_name].execute(description: 'stuff', provider_state: 'things')
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'when all specs pass' do
|
85
|
+
|
86
|
+
it 'does not raise an exception' do
|
87
|
+
Rake::Task[@task_name].execute
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context 'when one or more specs fail' do
|
92
|
+
|
93
|
+
let(:exit_code) {1}
|
94
|
+
|
95
|
+
it 'raises an exception' do
|
96
|
+
$stderr.should_receive(:puts) #Confusing if this shows on the screen!
|
97
|
+
expect { Rake::Task[@task_name].execute }.to raise_error RuntimeError
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
80
103
|
end
|
81
104
|
|
82
105
|
RSpec::Matchers.define :include_task do |expected|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
end
|
106
|
+
match do |actual|
|
107
|
+
actual.any? { |task| task.name == expected }
|
108
|
+
end
|
109
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,18 @@ require_relative 'support/factories'
|
|
8
8
|
|
9
9
|
WebMock.disable_net_connect!(allow_localhost: true)
|
10
10
|
|
11
|
+
if ENV['LOAD_ACTIVE_SUPPORT']
|
12
|
+
puts 'LOADING ACTIVE SUPPORT!!!! Hopefully it all still works'
|
13
|
+
require 'active_support/all'
|
14
|
+
require 'active_support'
|
15
|
+
require 'active_support/json'
|
16
|
+
end
|
17
|
+
|
11
18
|
RSpec.configure do | config |
|
12
19
|
config.include(FakeFS::SpecHelpers, :fakefs => true)
|
13
20
|
config.include(RSpec::Fire)
|
21
|
+
|
22
|
+
config.extend Pact::Provider::RSpec::ClassMethods
|
23
|
+
config.include Pact::Provider::RSpec::InstanceMethods
|
24
|
+
config.include Pact::Provider::TestMethods
|
14
25
|
end
|
data/tasks/pact-test.rake
CHANGED
@@ -14,7 +14,7 @@ namespace :pact do
|
|
14
14
|
result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_pass.json' }], silent: silent).run
|
15
15
|
fail 'Expected pact to pass' unless (result == 0)
|
16
16
|
|
17
|
-
result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_fail.json',
|
17
|
+
result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_fail.json', pact_helper: './spec/support/pact_helper.rb' }], silent: silent).run
|
18
18
|
fail 'Expected pact to fail' if (result == 0)
|
19
19
|
|
20
20
|
expect_to_pass "bundle exec rake pact:verify"
|
data/tasks/spec.rake
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
task :set_active_support_on do
|
2
|
+
ENV["LOAD_ACTIVE_SUPPORT"] = 'true'
|
3
|
+
end
|
4
|
+
|
5
|
+
desc "This is to ensure that the gem still works even when active support JSON is loaded."
|
6
|
+
task :spec_with_active_support => [:set_active_support_on] do
|
7
|
+
Rake::Task['spec'].execute
|
8
|
+
end
|
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.0.
|
4
|
+
version: 1.0.18
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-10-
|
16
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: randexp
|
@@ -143,22 +143,6 @@ dependencies:
|
|
143
143
|
- - ! '>='
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
name: geminabox-client
|
148
|
-
requirement: !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
|
-
requirements:
|
151
|
-
- - ! '>='
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
|
-
type: :development
|
155
|
-
prerelease: false
|
156
|
-
version_requirements: !ruby/object:Gem::Requirement
|
157
|
-
none: false
|
158
|
-
requirements:
|
159
|
-
- - ! '>='
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
version: '0'
|
162
146
|
- !ruby/object:Gem::Dependency
|
163
147
|
name: rake
|
164
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -255,6 +239,38 @@ dependencies:
|
|
255
239
|
- - ! '>='
|
256
240
|
- !ruby/object:Gem::Version
|
257
241
|
version: '0'
|
242
|
+
- !ruby/object:Gem::Dependency
|
243
|
+
name: activesupport
|
244
|
+
requirement: !ruby/object:Gem::Requirement
|
245
|
+
none: false
|
246
|
+
requirements:
|
247
|
+
- - ! '>='
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '0'
|
250
|
+
type: :development
|
251
|
+
prerelease: false
|
252
|
+
version_requirements: !ruby/object:Gem::Requirement
|
253
|
+
none: false
|
254
|
+
requirements:
|
255
|
+
- - ! '>='
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
- !ruby/object:Gem::Dependency
|
259
|
+
name: debugger
|
260
|
+
requirement: !ruby/object:Gem::Requirement
|
261
|
+
none: false
|
262
|
+
requirements:
|
263
|
+
- - ! '>='
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '0'
|
266
|
+
type: :development
|
267
|
+
prerelease: false
|
268
|
+
version_requirements: !ruby/object:Gem::Requirement
|
269
|
+
none: false
|
270
|
+
requirements:
|
271
|
+
- - ! '>='
|
272
|
+
- !ruby/object:Gem::Version
|
273
|
+
version: '0'
|
258
274
|
description: Define a pact between service consumers and providers
|
259
275
|
email:
|
260
276
|
- james.fraser@alumni.swinburne.edu
|
@@ -316,12 +332,12 @@ files:
|
|
316
332
|
- lib/pact/consumer/rspec.rb
|
317
333
|
- lib/pact/consumer/server.rb
|
318
334
|
- lib/pact/consumer_contract.rb
|
335
|
+
- lib/pact/consumer_contract/active_support_support.rb
|
319
336
|
- lib/pact/consumer_contract/consumer_contract.rb
|
320
337
|
- lib/pact/consumer_contract/interaction.rb
|
321
338
|
- lib/pact/consumer_contract/request.rb
|
322
339
|
- lib/pact/consumer_contract/service_consumer.rb
|
323
340
|
- lib/pact/consumer_contract/service_provider.rb
|
324
|
-
- lib/pact/json_warning.rb
|
325
341
|
- lib/pact/logging.rb
|
326
342
|
- lib/pact/matchers.rb
|
327
343
|
- lib/pact/matchers/index_not_found.rb
|
@@ -372,10 +388,10 @@ files:
|
|
372
388
|
- spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb
|
373
389
|
- spec/lib/pact/consumer/request_spec.rb
|
374
390
|
- spec/lib/pact/consumer/service_consumer_spec.rb
|
391
|
+
- spec/lib/pact/consumer_contract/active_support_support_spec.rb
|
375
392
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
376
393
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
377
394
|
- spec/lib/pact/consumer_contract/request_spec.rb
|
378
|
-
- spec/lib/pact/json_warning_spec.rb
|
379
395
|
- spec/lib/pact/matchers/matchers_spec.rb
|
380
396
|
- spec/lib/pact/provider/configuration_spec.rb
|
381
397
|
- spec/lib/pact/provider/pact_helper_locator_spec.rb
|
@@ -400,6 +416,7 @@ files:
|
|
400
416
|
- spec/support/test_app_fail.json
|
401
417
|
- spec/support/test_app_pass.json
|
402
418
|
- tasks/pact-test.rake
|
419
|
+
- tasks/spec.rake
|
403
420
|
homepage: https://github.com/uglyog/pact.git
|
404
421
|
licenses:
|
405
422
|
- MIT
|
@@ -415,7 +432,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
415
432
|
version: '0'
|
416
433
|
segments:
|
417
434
|
- 0
|
418
|
-
hash: -
|
435
|
+
hash: -1950289785278429589
|
419
436
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
420
437
|
none: false
|
421
438
|
requirements:
|
@@ -424,7 +441,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
424
441
|
version: '0'
|
425
442
|
segments:
|
426
443
|
- 0
|
427
|
-
hash: -
|
444
|
+
hash: -1950289785278429589
|
428
445
|
requirements: []
|
429
446
|
rubyforge_project:
|
430
447
|
rubygems_version: 1.8.23
|
@@ -449,10 +466,10 @@ test_files:
|
|
449
466
|
- spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb
|
450
467
|
- spec/lib/pact/consumer/request_spec.rb
|
451
468
|
- spec/lib/pact/consumer/service_consumer_spec.rb
|
469
|
+
- spec/lib/pact/consumer_contract/active_support_support_spec.rb
|
452
470
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
453
471
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
454
472
|
- spec/lib/pact/consumer_contract/request_spec.rb
|
455
|
-
- spec/lib/pact/json_warning_spec.rb
|
456
473
|
- spec/lib/pact/matchers/matchers_spec.rb
|
457
474
|
- spec/lib/pact/provider/configuration_spec.rb
|
458
475
|
- spec/lib/pact/provider/pact_helper_locator_spec.rb
|