pact 1.1.1 → 1.2.1.rc1
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 +7 -0
- data/Gemfile.lock +42 -39
- data/README.md +2 -0
- data/documentation/configuration.md +2 -2
- data/documentation/faq.md +5 -7
- data/documentation/provider-states.md +2 -10
- data/example/animal-service/spec/service_consumers/pact_helper.rb +0 -4
- data/lib/pact/consumer/configuration/mock_service.rb +2 -0
- data/lib/pact/consumer/consumer_contract_builder.rb +58 -58
- data/lib/pact/consumer/mock_service/app.rb +4 -1
- data/lib/pact/consumer/mock_service/interaction_replay.rb +11 -3
- data/lib/pact/consumer/mock_service/missing_interactions_get.rb +2 -2
- data/lib/pact/consumer/mock_service/pact_post.rb +33 -0
- data/lib/pact/consumer/mock_service/verification_get.rb +1 -2
- data/lib/pact/consumer/mock_service_client.rb +14 -5
- data/lib/pact/consumer/mock_service_interaction_expectation.rb +1 -1
- data/lib/pact/consumer/spec_hooks.rb +2 -0
- data/lib/pact/consumer/world.rb +25 -0
- data/lib/pact/consumer_contract/consumer_contract.rb +1 -1
- data/lib/pact/consumer_contract/consumer_contract_writer.rb +84 -0
- data/lib/pact/consumer_contract/file_name.rb +7 -1
- data/lib/pact/provider/pact_helper_locator.rb +1 -1
- data/lib/pact/provider/pact_spec_runner.rb +3 -9
- data/lib/pact/provider/rspec/{formatter.rb → formatter_rspec_2.rb} +2 -2
- data/lib/pact/provider/rspec/formatter_rspec_3.rb +96 -0
- data/lib/pact/provider/rspec/matchers.rb +79 -19
- data/lib/pact/provider/rspec.rb +3 -1
- data/lib/pact/provider/state/provider_state_configured_modules.rb +6 -0
- data/lib/pact/provider/state/provider_state_manager.rb +3 -3
- data/lib/pact/provider/world.rb +2 -8
- data/lib/pact/rspec.rb +32 -0
- data/lib/pact/version.rb +1 -1
- data/pact.gemspec +3 -3
- data/spec/features/consumption_spec.rb +6 -1
- data/spec/integration/consumer_spec.rb +16 -9
- data/spec/integration/pact/consumer_configuration_spec.rb +7 -22
- data/spec/lib/pact/app_spec.rb +5 -5
- data/spec/lib/pact/configuration_spec.rb +1 -1
- data/spec/lib/pact/consumer/app_manager_spec.rb +3 -3
- data/spec/lib/pact/consumer/configuration_spec.rb +11 -8
- data/spec/lib/pact/consumer/consumer_contract_builder_spec.rb +3 -101
- data/spec/lib/pact/consumer/interaction_builder_spec.rb +8 -8
- data/spec/lib/pact/consumer/mock_service/app_spec.rb +2 -2
- data/spec/lib/pact/consumer/mock_service/interaction_mismatch_spec.rb +2 -2
- data/spec/lib/pact/consumer/mock_service/interaction_replay_spec.rb +12 -0
- data/spec/lib/pact/consumer/mock_service/verification_get_spec.rb +2 -2
- data/spec/lib/pact/consumer/mock_service_client_spec.rb +88 -0
- data/spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb +4 -4
- data/spec/lib/pact/consumer_contract/consumer_contract_spec.rb +18 -18
- data/spec/lib/pact/consumer_contract/consumer_contract_writer_spec.rb +111 -0
- data/spec/lib/pact/provider/configuration/pact_verification_spec.rb +1 -1
- data/spec/lib/pact/provider/pact_helper_locator_spec.rb +2 -2
- data/spec/lib/pact/provider/rspec/{formatter_spec.rb → formatter_rspec_2_spec.rb} +14 -4
- data/spec/lib/pact/provider/rspec/formatter_rspec_3_spec.rb +72 -0
- data/spec/lib/pact/provider/rspec_spec.rb +3 -0
- data/spec/lib/pact/provider/state/provider_state_manager_spec.rb +1 -1
- data/spec/lib/pact/provider/state/provider_state_proxy_spec.rb +4 -4
- data/spec/lib/pact/provider/state/provider_state_spec.rb +7 -7
- data/spec/lib/pact/provider/world_spec.rb +8 -8
- data/spec/lib/pact/tasks/verification_task_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -4
- data/spec/support/factories.rb +13 -13
- data/spec/support/spec_support.rb +10 -0
- data/spec/support/stubbing_using_allow.rb +0 -4
- data/tasks/pact-test.rake +12 -8
- metadata +27 -24
- data/bethtest.rb +0 -30
- data/lib/pact/provider/rspec/silent_json_formatter.rb +0 -18
- data/spec/support/stubbing.rb +0 -26
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.1.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Fraser
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2014-06-
|
16
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: randexp
|
@@ -36,17 +36,17 @@ dependencies:
|
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
none: false
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ! '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '2.
|
41
|
+
version: '2.14'
|
42
42
|
type: :runtime
|
43
43
|
prerelease: false
|
44
44
|
version_requirements: !ruby/object:Gem::Requirement
|
45
45
|
none: false
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ! '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '2.
|
49
|
+
version: '2.14'
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: find_a_port
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,7 +182,7 @@ dependencies:
|
|
182
182
|
requirements:
|
183
183
|
- - ~>
|
184
184
|
- !ruby/object:Gem::Version
|
185
|
-
version: 1.
|
185
|
+
version: 1.18.0
|
186
186
|
type: :development
|
187
187
|
prerelease: false
|
188
188
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -190,7 +190,7 @@ dependencies:
|
|
190
190
|
requirements:
|
191
191
|
- - ~>
|
192
192
|
- !ruby/object:Gem::Version
|
193
|
-
version: 1.
|
193
|
+
version: 1.18.0
|
194
194
|
- !ruby/object:Gem::Dependency
|
195
195
|
name: pry
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,7 +240,7 @@ dependencies:
|
|
240
240
|
- !ruby/object:Gem::Version
|
241
241
|
version: '2.0'
|
242
242
|
- !ruby/object:Gem::Dependency
|
243
|
-
name:
|
243
|
+
name: activesupport
|
244
244
|
requirement: !ruby/object:Gem::Requirement
|
245
245
|
none: false
|
246
246
|
requirements:
|
@@ -256,7 +256,7 @@ dependencies:
|
|
256
256
|
- !ruby/object:Gem::Version
|
257
257
|
version: '0'
|
258
258
|
- !ruby/object:Gem::Dependency
|
259
|
-
name:
|
259
|
+
name: faraday
|
260
260
|
requirement: !ruby/object:Gem::Requirement
|
261
261
|
none: false
|
262
262
|
requirements:
|
@@ -295,7 +295,6 @@ files:
|
|
295
295
|
- LICENSE.txt
|
296
296
|
- README.md
|
297
297
|
- Rakefile
|
298
|
-
- bethtest.rb
|
299
298
|
- bin/pact
|
300
299
|
- config.ru
|
301
300
|
- documentation/README.md
|
@@ -358,6 +357,7 @@ files:
|
|
358
357
|
- lib/pact/consumer/mock_service/log_get.rb
|
359
358
|
- lib/pact/consumer/mock_service/missing_interactions_get.rb
|
360
359
|
- lib/pact/consumer/mock_service/mock_service_administration_endpoint.rb
|
360
|
+
- lib/pact/consumer/mock_service/pact_post.rb
|
361
361
|
- lib/pact/consumer/mock_service/rack_request_helper.rb
|
362
362
|
- lib/pact/consumer/mock_service/verification_get.rb
|
363
363
|
- lib/pact/consumer/mock_service_client.rb
|
@@ -366,8 +366,10 @@ files:
|
|
366
366
|
- lib/pact/consumer/rspec.rb
|
367
367
|
- lib/pact/consumer/server.rb
|
368
368
|
- lib/pact/consumer/spec_hooks.rb
|
369
|
+
- lib/pact/consumer/world.rb
|
369
370
|
- lib/pact/consumer_contract.rb
|
370
371
|
- lib/pact/consumer_contract/consumer_contract.rb
|
372
|
+
- lib/pact/consumer_contract/consumer_contract_writer.rb
|
371
373
|
- lib/pact/consumer_contract/file_name.rb
|
372
374
|
- lib/pact/consumer_contract/interaction.rb
|
373
375
|
- lib/pact/consumer_contract/pact_file.rb
|
@@ -419,9 +421,9 @@ files:
|
|
419
421
|
- lib/pact/provider/request.rb
|
420
422
|
- lib/pact/provider/rspec.rb
|
421
423
|
- lib/pact/provider/rspec/custom_options_file
|
422
|
-
- lib/pact/provider/rspec/
|
424
|
+
- lib/pact/provider/rspec/formatter_rspec_2.rb
|
425
|
+
- lib/pact/provider/rspec/formatter_rspec_3.rb
|
423
426
|
- lib/pact/provider/rspec/matchers.rb
|
424
|
-
- lib/pact/provider/rspec/silent_json_formatter.rb
|
425
427
|
- lib/pact/provider/state/provider_state.rb
|
426
428
|
- lib/pact/provider/state/provider_state_configured_modules.rb
|
427
429
|
- lib/pact/provider/state/provider_state_manager.rb
|
@@ -467,11 +469,13 @@ files:
|
|
467
469
|
- spec/lib/pact/consumer/mock_service/interaction_replay_spec.rb
|
468
470
|
- spec/lib/pact/consumer/mock_service/rack_request_helper_spec.rb
|
469
471
|
- spec/lib/pact/consumer/mock_service/verification_get_spec.rb
|
472
|
+
- spec/lib/pact/consumer/mock_service_client_spec.rb
|
470
473
|
- spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb
|
471
474
|
- spec/lib/pact/consumer/request_spec.rb
|
472
475
|
- spec/lib/pact/consumer/service_consumer_spec.rb
|
473
476
|
- spec/lib/pact/consumer_contract/active_support_support_spec.rb
|
474
477
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
478
|
+
- spec/lib/pact/consumer_contract/consumer_contract_writer_spec.rb
|
475
479
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
476
480
|
- spec/lib/pact/consumer_contract/request_spec.rb
|
477
481
|
- spec/lib/pact/doc/generator_spec.rb
|
@@ -498,7 +502,8 @@ files:
|
|
498
502
|
- spec/lib/pact/provider/pact_helper_locator_spec.rb
|
499
503
|
- spec/lib/pact/provider/print_missing_provider_states_spec.rb
|
500
504
|
- spec/lib/pact/provider/request_spec.rb
|
501
|
-
- spec/lib/pact/provider/rspec/
|
505
|
+
- spec/lib/pact/provider/rspec/formatter_rspec_2_spec.rb
|
506
|
+
- spec/lib/pact/provider/rspec/formatter_rspec_3_spec.rb
|
502
507
|
- spec/lib/pact/provider/rspec_spec.rb
|
503
508
|
- spec/lib/pact/provider/state/provider_state_manager_spec.rb
|
504
509
|
- spec/lib/pact/provider/state/provider_state_proxy_spec.rb
|
@@ -533,7 +538,6 @@ files:
|
|
533
538
|
- spec/support/shared_examples_for_request.rb
|
534
539
|
- spec/support/spec_support.rb
|
535
540
|
- spec/support/stubbing.json
|
536
|
-
- spec/support/stubbing.rb
|
537
541
|
- spec/support/stubbing_using_allow.rb
|
538
542
|
- spec/support/term.json
|
539
543
|
- spec/support/test_app_fail.json
|
@@ -555,16 +559,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
555
559
|
version: '0'
|
556
560
|
segments:
|
557
561
|
- 0
|
558
|
-
hash:
|
562
|
+
hash: 984907966293091128
|
559
563
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
560
564
|
none: false
|
561
565
|
requirements:
|
562
|
-
- - ! '
|
566
|
+
- - ! '>'
|
563
567
|
- !ruby/object:Gem::Version
|
564
|
-
version:
|
565
|
-
segments:
|
566
|
-
- 0
|
567
|
-
hash: 3393348357730131022
|
568
|
+
version: 1.3.1
|
568
569
|
requirements: []
|
569
570
|
rubyforge_project:
|
570
571
|
rubygems_version: 1.8.23
|
@@ -593,11 +594,13 @@ test_files:
|
|
593
594
|
- spec/lib/pact/consumer/mock_service/interaction_replay_spec.rb
|
594
595
|
- spec/lib/pact/consumer/mock_service/rack_request_helper_spec.rb
|
595
596
|
- spec/lib/pact/consumer/mock_service/verification_get_spec.rb
|
597
|
+
- spec/lib/pact/consumer/mock_service_client_spec.rb
|
596
598
|
- spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb
|
597
599
|
- spec/lib/pact/consumer/request_spec.rb
|
598
600
|
- spec/lib/pact/consumer/service_consumer_spec.rb
|
599
601
|
- spec/lib/pact/consumer_contract/active_support_support_spec.rb
|
600
602
|
- spec/lib/pact/consumer_contract/consumer_contract_spec.rb
|
603
|
+
- spec/lib/pact/consumer_contract/consumer_contract_writer_spec.rb
|
601
604
|
- spec/lib/pact/consumer_contract/interaction_spec.rb
|
602
605
|
- spec/lib/pact/consumer_contract/request_spec.rb
|
603
606
|
- spec/lib/pact/doc/generator_spec.rb
|
@@ -624,7 +627,8 @@ test_files:
|
|
624
627
|
- spec/lib/pact/provider/pact_helper_locator_spec.rb
|
625
628
|
- spec/lib/pact/provider/print_missing_provider_states_spec.rb
|
626
629
|
- spec/lib/pact/provider/request_spec.rb
|
627
|
-
- spec/lib/pact/provider/rspec/
|
630
|
+
- spec/lib/pact/provider/rspec/formatter_rspec_2_spec.rb
|
631
|
+
- spec/lib/pact/provider/rspec/formatter_rspec_3_spec.rb
|
628
632
|
- spec/lib/pact/provider/rspec_spec.rb
|
629
633
|
- spec/lib/pact/provider/state/provider_state_manager_spec.rb
|
630
634
|
- spec/lib/pact/provider/state/provider_state_proxy_spec.rb
|
@@ -659,7 +663,6 @@ test_files:
|
|
659
663
|
- spec/support/shared_examples_for_request.rb
|
660
664
|
- spec/support/spec_support.rb
|
661
665
|
- spec/support/stubbing.json
|
662
|
-
- spec/support/stubbing.rb
|
663
666
|
- spec/support/stubbing_using_allow.rb
|
664
667
|
- spec/support/term.json
|
665
668
|
- spec/support/test_app_fail.json
|
data/bethtest.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'colored'
|
2
|
-
|
3
|
-
puts "Key: #{'-'.red} expected, #{'+'.green} actual"
|
4
|
-
|
5
|
-
puts '{
|
6
|
-
"_embedded": {'
|
7
|
-
puts '- "events": [
|
8
|
-
- {
|
9
|
-
- "probability": "75",
|
10
|
-
- "timestamp": "2014-03-03T14:00:00+00:00",
|
11
|
-
- "_embedded": {
|
12
|
-
- "opportunity": {
|
13
|
-
- "displayAdvertising": true,
|
14
|
-
- "_links": {
|
15
|
-
- "self": {
|
16
|
-
- "href": "http://media-opportunities/opportunity-id-1"
|
17
|
-
- },
|
18
|
-
- "mediaProject": {
|
19
|
-
- "href": "http://media-projects/project-id-1"
|
20
|
-
- }
|
21
|
-
- }
|
22
|
-
- }
|
23
|
-
- }
|
24
|
-
- }
|
25
|
-
- ]'.red
|
26
|
-
puts '+ {
|
27
|
-
+ }'.green
|
28
|
-
puts ' }
|
29
|
-
}'
|
30
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rspec/core/formatters'
|
2
|
-
|
3
|
-
module Pact
|
4
|
-
module Provider
|
5
|
-
module RSpec
|
6
|
-
class SilentJsonFormatter < ::RSpec::Core::Formatters::JsonFormatter
|
7
|
-
|
8
|
-
def initialize stream
|
9
|
-
# Don't want to display this to the screen,
|
10
|
-
# not sure how else to set a custom stream for a particular formatter
|
11
|
-
# Store a reference to this so it can be inspected afterwards.
|
12
|
-
super(Pact.world.json_formatter_stream)
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/spec/support/stubbing.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'pact/provider/rspec'
|
2
|
-
require 'rspec/mocks'
|
3
|
-
|
4
|
-
class StubbedThing
|
5
|
-
def self.stub_me
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class App
|
10
|
-
def self.call env
|
11
|
-
[200, {}, [StubbedThing.stub_me]]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
Pact.provider_states_for 'Consumer' do
|
16
|
-
|
17
|
-
provider_state 'something is stubbed' do
|
18
|
-
set_up do
|
19
|
-
StubbedThing.stub(:stub_me).and_return("stubbing works")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
Pact.service_provider 'Provider' do
|
25
|
-
app { App }
|
26
|
-
end
|