pact 1.1.0 → 1.1.1
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 +31 -20
- data/Gemfile.lock +12 -12
- data/README.md +32 -16
- data/Rakefile +3 -3
- data/documentation/README.md +1 -0
- data/documentation/development-workflow.md +22 -0
- data/documentation/faq.md +8 -0
- data/documentation/provider-states.md +2 -0
- data/documentation/troubleshooting.md +4 -0
- data/documentation/verifying-pacts.md +97 -0
- data/lib/pact/app.rb +98 -4
- data/lib/pact/consumer/rspec.rb +3 -2
- data/lib/pact/doc/doc_file.rb +4 -4
- data/lib/pact/doc/generator.rb +3 -3
- data/lib/pact/doc/interaction_view_model.rb +1 -0
- data/lib/pact/doc/markdown/{interactions_renderer.rb → consumer_contract_renderer.rb} +1 -1
- data/lib/pact/doc/markdown/generator.rb +2 -2
- data/lib/pact/matchers/unix_diff_formatter.rb +1 -1
- data/lib/pact/project_root.rb +7 -0
- data/lib/pact/provider.rb +0 -1
- data/lib/pact/provider/context.rb +0 -0
- data/lib/pact/provider/matchers/messages.rb +15 -13
- data/lib/pact/provider/pact_spec_runner.rb +21 -22
- data/lib/pact/provider/rspec.rb +22 -15
- data/lib/pact/provider/rspec/custom_options_file +0 -0
- data/lib/pact/provider/{matchers.rb → rspec/matchers.rb} +2 -1
- data/lib/pact/rspec.rb +20 -0
- data/lib/pact/shared/request.rb +1 -1
- data/lib/pact/tasks/task_helper.rb +18 -15
- data/lib/pact/tasks/verification_task.rb +26 -32
- data/lib/pact/version.rb +1 -1
- data/lib/tasks/pact.rake +5 -11
- data/spec/integration/pact/consumer_configuration_spec.rb +3 -3
- data/spec/lib/pact/app_spec.rb +47 -0
- data/spec/lib/pact/consumer/app_manager_spec.rb +1 -1
- data/spec/lib/pact/consumer/mock_service/interaction_list_spec.rb +3 -3
- data/spec/lib/pact/consumer/mock_service/verification_get_spec.rb +10 -2
- data/spec/lib/pact/consumer/mock_service_interaction_expectation_spec.rb +2 -2
- data/spec/lib/pact/consumer_contract/consumer_contract_spec.rb +1 -1
- data/spec/lib/pact/consumer_contract/interaction_spec.rb +4 -4
- data/spec/lib/pact/consumer_contract/request_spec.rb +23 -23
- data/spec/lib/pact/doc/generator_spec.rb +4 -4
- data/spec/lib/pact/doc/markdown/{interactions_renderer_spec.rb → consumer_contract_renderer_spec.rb} +4 -4
- data/spec/lib/pact/matchers/unix_diff_formatter_spec.rb +8 -8
- data/spec/lib/pact/provider/configuration/configuration_extension_spec.rb +2 -2
- data/spec/lib/pact/provider/matchers/messages_spec.rb +17 -6
- data/spec/lib/pact/provider/rspec/formatter_spec.rb +3 -1
- data/spec/lib/pact/shared/dsl_spec.rb +1 -1
- data/spec/lib/pact/shared/request_spec.rb +8 -0
- data/spec/lib/pact/tasks/task_helper_spec.rb +39 -54
- data/spec/lib/pact/tasks/verification_task_spec.rb +75 -0
- data/spec/pact_specification/compliance-1.0.0.rb +47 -0
- data/spec/spec_helper.rb +2 -6
- data/spec/standalone/consumer_fail_test.rb +1 -0
- data/spec/standalone/consumer_pass_test.rb +1 -0
- data/spec/support/active_support_if_configured.rb +6 -0
- data/spec/support/pact_helper.rb +2 -1
- data/spec/support/shared_examples_for_request.rb +15 -4
- data/spec/support/spec_support.rb +3 -0
- data/spec/support/stubbing_using_allow.rb +1 -0
- data/spec/support/term.json +13 -1
- data/tasks/pact-test.rake +45 -26
- metadata +23 -13
- data/lib/pact/provider/client_project_pact_helper.rb +0 -4
- data/spec/lib/pact/provider/pact_spec_runner_spec.rb +0 -7
- data/spec/lib/pact/verification_task_spec.rb +0 -99
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -6,15 +6,11 @@ require 'pact' | |
| 6 6 | 
             
            require 'webmock/rspec'
         | 
| 7 7 | 
             
            require_relative 'support/factories'
         | 
| 8 8 | 
             
            require_relative 'support/spec_support'
         | 
| 9 | 
            +
            require 'pact/provider/rspec'
         | 
| 9 10 |  | 
| 10 11 | 
             
            WebMock.disable_net_connect!(allow_localhost: true)
         | 
| 11 12 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
               puts 'LOADING ACTIVE SUPPORT!!!! Hopefully it all still works'
         | 
| 14 | 
            -
               require 'active_support/all'
         | 
| 15 | 
            -
               require 'active_support'
         | 
| 16 | 
            -
               require 'active_support/json'
         | 
| 17 | 
            -
            end
         | 
| 13 | 
            +
            require './spec/support/active_support_if_configured'
         | 
| 18 14 |  | 
| 19 15 | 
             
            RSpec.configure do | config |
         | 
| 20 16 | 
             
              config.include(FakeFS::SpecHelpers, :fakefs => true)
         | 
    
        data/spec/support/pact_helper.rb
    CHANGED
    
    
| @@ -59,10 +59,21 @@ shared_examples "a request" do | |
| 59 59 |  | 
| 60 60 | 
             
                subject { described_class.from_hash(raw_request) }
         | 
| 61 61 |  | 
| 62 | 
            -
                 | 
| 63 | 
            -
             | 
| 64 | 
            -
                 | 
| 65 | 
            -
             | 
| 62 | 
            +
                it "extracts the method" do
         | 
| 63 | 
            +
                  expect(subject.method).to eq 'get'
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                it "extracts the path" do
         | 
| 67 | 
            +
                  expect(subject.path).to eq '/mallory'
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                it "extracts the body" do
         | 
| 71 | 
            +
                  expect(subject.body).to eq 'hello mallory'
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                it "extracts the query" do
         | 
| 75 | 
            +
                  expect(subject.query).to eq 'query'
         | 
| 76 | 
            +
                end
         | 
| 66 77 |  | 
| 67 78 | 
             
                it "blows up if method is absent" do
         | 
| 68 79 | 
             
                  raw_request.delete 'method'
         | 
    
        data/spec/support/term.json
    CHANGED
    
    | @@ -15,7 +15,19 @@ | |
| 15 15 | 
             
                        },
         | 
| 16 16 | 
             
                        "response": {
         | 
| 17 17 | 
             
                            "status": 200,
         | 
| 18 | 
            -
                            "headers" : { | 
| 18 | 
            +
                            "headers" : {
         | 
| 19 | 
            +
                                "Content-type": {
         | 
| 20 | 
            +
                                  "json_class": "Pact::Term",
         | 
| 21 | 
            +
                                  "data": {
         | 
| 22 | 
            +
                                    "generate": "text/plain",
         | 
| 23 | 
            +
                                    "matcher": {
         | 
| 24 | 
            +
                                      "json_class": "Regexp",
         | 
| 25 | 
            +
                                      "o": 0,
         | 
| 26 | 
            +
                                      "s": "text"
         | 
| 27 | 
            +
                                    }
         | 
| 28 | 
            +
                                  }
         | 
| 29 | 
            +
                                }
         | 
| 30 | 
            +
                            },
         | 
| 19 31 | 
             
                            "body": {
         | 
| 20 32 | 
             
                                "message" : {
         | 
| 21 33 | 
             
                                  "json_class": "Pact::Term",
         | 
    
        data/tasks/pact-test.rake
    CHANGED
    
    | @@ -1,7 +1,8 @@ | |
| 1 | 
            -
            require 'pact/tasks'
         | 
| 1 | 
            +
            require 'pact/tasks/verification_task'
         | 
| 2 | 
            +
            require 'open3'
         | 
| 2 3 |  | 
| 3 4 | 
             
            Pact::VerificationTask.new(:stubbing) do | pact |
         | 
| 4 | 
            -
            	pact.uri './spec/support/stubbing.json', :pact_helper => './spec/support/stubbing | 
| 5 | 
            +
            	pact.uri './spec/support/stubbing.json', :pact_helper => './spec/support/stubbing'
         | 
| 5 6 | 
             
            end
         | 
| 6 7 |  | 
| 7 8 | 
             
            Pact::VerificationTask.new(:stubbing_using_allow) do | pact |
         | 
| @@ -13,6 +14,7 @@ Pact::VerificationTask.new(:pass) do | pact | | |
| 13 14 | 
             
            end
         | 
| 14 15 |  | 
| 15 16 | 
             
            Pact::VerificationTask.new(:fail) do | pact |
         | 
| 17 | 
            +
            	pact.uri './spec/support/test_app_pass.json'
         | 
| 16 18 | 
             
            	pact.uri './spec/support/test_app_fail.json'
         | 
| 17 19 | 
             
            end
         | 
| 18 20 |  | 
| @@ -28,49 +30,66 @@ RSpec::Core::RakeTask.new('spec:standalone:pass') do | task | | |
| 28 30 | 
             
            	task.pattern = FileList["spec/standalone/**/*_pass_test.rb"]
         | 
| 29 31 | 
             
            end
         | 
| 30 32 |  | 
| 33 | 
            +
            Pact::VerificationTask.new('test_app:pass') do | pact |
         | 
| 34 | 
            +
            	pact.uri './spec/support/test_app_pass.json'
         | 
| 35 | 
            +
            end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            Pact::VerificationTask.new('test_app:fail') do | pact |
         | 
| 38 | 
            +
            	pact.uri './spec/support/test_app_fail.json', pact_helper: './spec/support/pact_helper.rb'
         | 
| 39 | 
            +
            end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            task :bethtest => ['pact:tests:all','pact:tests:all:with_active_support']
         | 
| 42 | 
            +
             | 
| 31 43 | 
             
            namespace :pact do
         | 
| 32 44 |  | 
| 45 | 
            +
            	desc "All the verification tests"
         | 
| 46 | 
            +
            	task "tests:all" do
         | 
| 47 | 
            +
            		Rake::Task['pact:verify:stubbing'].execute
         | 
| 48 | 
            +
            		Rake::Task['pact:verify:stubbing_using_allow'].execute
         | 
| 49 | 
            +
            		Rake::Task['spec:standalone:pass'].execute
         | 
| 50 | 
            +
            		Rake::Task['pact:verify'].execute
         | 
| 51 | 
            +
            		Rake::Task['pact:verify:test_app:pass'].execute
         | 
| 52 | 
            +
            		Rake::Task['pact:test:fail'].execute
         | 
| 53 | 
            +
            	end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            	desc "All the verification tests with active support loaded"
         | 
| 56 | 
            +
            	task 'tests:all:with_active_support' => :set_active_support_on do
         | 
| 57 | 
            +
            		Rake::Task['pact:tests:all'].execute
         | 
| 58 | 
            +
            	end
         | 
| 59 | 
            +
             | 
| 33 60 | 
             
            	desc 'Runs pact tests against a sample application, testing failure and success.'
         | 
| 34 | 
            -
            	task  | 
| 61 | 
            +
            	task 'test:fail' do
         | 
| 35 62 |  | 
| 36 | 
            -
            		require 'pact/provider/pact_spec_runner'
         | 
| 37 63 | 
             
            		require 'open3'
         | 
| 38 64 |  | 
| 39 65 | 
             
            		silent = true
         | 
| 40 | 
            -
            		puts "Running task pact:tests"
         | 
| 41 66 | 
             
            		# Run these specs silently, otherwise expected failures will be written to stdout and look like unexpected failures.
         | 
| 42 | 
            -
            		Pact.configuration.output_stream = StringIO.new if silent
         | 
| 43 | 
            -
             | 
| 44 | 
            -
            		result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_pass.json' }], silent: silent).run
         | 
| 45 | 
            -
            		fail 'Expected pact to pass' unless (result == 0)
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            		result = Pact::Provider::PactSpecRunner.new([{ uri: './spec/support/test_app_fail.json', pact_helper: './spec/support/pact_helper.rb' }], silent: silent).run
         | 
| 48 | 
            -
            		fail 'Expected pact to fail' if (result == 0)
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            		expect_to_pass "bundle exec rake pact:verify"
         | 
| 51 | 
            -
            		expect_to_pass "bundle exec rake pact:verify:at[./spec/support/test_app_pass.json]"
         | 
| 52 | 
            -
            		expect_to_fail "bundle exec rake pact:verify:at[./spec/support/test_app_fail.json]"
         | 
| 53 | 
            -
            		expect_to_fail "bundle exec rake spec:standalone:fail"
         | 
| 67 | 
            +
            		#Pact.configuration.output_stream = StringIO.new if silent
         | 
| 54 68 |  | 
| 55 | 
            -
            		 | 
| 69 | 
            +
            		expect_to_fail "bundle exec rake pact:verify:test_app:fail", with: [/Could not find one or more provider states/]
         | 
| 70 | 
            +
            		expect_to_fail "bundle exec rake spec:standalone:fail", with: [/Actual interactions do not match expected interactions/]
         | 
| 71 | 
            +
            		expect_to_fail "bundle exec rake pact:verify:term", with: [%r{"Content-type" with value /text/}]
         | 
| 56 72 | 
             
            	end
         | 
| 57 73 |  | 
| 58 | 
            -
            	def expect_to_fail command
         | 
| 59 | 
            -
            		success = execute_command command
         | 
| 74 | 
            +
            	def expect_to_fail command, options = {}
         | 
| 75 | 
            +
            		success = execute_command command, options
         | 
| 60 76 | 
             
            		fail "Expected '#{command}' to fail" if success
         | 
| 61 77 | 
             
            	end
         | 
| 62 78 |  | 
| 63 | 
            -
            	def  | 
| 64 | 
            -
            		success = execute_command command
         | 
| 65 | 
            -
            		fail "Expected '#{command}' to pass" unless success
         | 
| 66 | 
            -
            	end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
            	def execute_command command
         | 
| 79 | 
            +
            	def execute_command command, options
         | 
| 69 80 | 
             
            		result = nil
         | 
| 70 81 | 
             
            		Open3.popen3(command) {|stdin, stdout, stderr, wait_thr|
         | 
| 71 82 | 
             
            		  result = wait_thr.value
         | 
| 83 | 
            +
            		  ensure_patterns_present(options, stdout, stderr) if options[:with]
         | 
| 72 84 | 
             
            		}
         | 
| 73 85 | 
             
            		result.success?
         | 
| 74 86 | 
             
            	end
         | 
| 75 87 |  | 
| 88 | 
            +
            	def ensure_patterns_present options, stdout, stderr
         | 
| 89 | 
            +
            		output = stdout.read + stderr.read
         | 
| 90 | 
            +
            		options[:with].each do | pattern |
         | 
| 91 | 
            +
            			raise (::Term::ANSIColor.red("Could not find #{pattern.inspect} in output of #{command}").red + "\n\n#{output}") unless output =~ pattern
         | 
| 92 | 
            +
            		end
         | 
| 93 | 
            +
            	end
         | 
| 94 | 
            +
             | 
| 76 95 | 
             
            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.1. | 
| 4 | 
            +
              version: 1.1.1
         | 
| 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: 2014- | 
| 16 | 
            +
            date: 2014-06-02 00:00:00.000000000 Z
         | 
| 17 17 | 
             
            dependencies:
         | 
| 18 18 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 19 19 | 
             
              name: randexp
         | 
| @@ -302,6 +302,7 @@ files: | |
| 302 302 | 
             
            - documentation/Testing with pact.png
         | 
| 303 303 | 
             
            - documentation/best-practices.md
         | 
| 304 304 | 
             
            - documentation/configuration.md
         | 
| 305 | 
            +
            - documentation/development-workflow.md
         | 
| 305 306 | 
             
            - documentation/diff_formatter_embedded.png
         | 
| 306 307 | 
             
            - documentation/diff_formatter_list.png
         | 
| 307 308 | 
             
            - documentation/diff_formatter_unix.png
         | 
| @@ -309,6 +310,8 @@ files: | |
| 309 310 | 
             
            - documentation/provider-states.md
         | 
| 310 311 | 
             
            - documentation/raq.md
         | 
| 311 312 | 
             
            - documentation/terminology.md
         | 
| 313 | 
            +
            - documentation/troubleshooting.md
         | 
| 314 | 
            +
            - documentation/verifying-pacts.md
         | 
| 312 315 | 
             
            - example/animal-service/Gemfile
         | 
| 313 316 | 
             
            - example/animal-service/Gemfile.lock
         | 
| 314 317 | 
             
            - example/animal-service/Rakefile
         | 
| @@ -375,11 +378,11 @@ files: | |
| 375 378 | 
             
            - lib/pact/doc/generate.rb
         | 
| 376 379 | 
             
            - lib/pact/doc/generator.rb
         | 
| 377 380 | 
             
            - lib/pact/doc/interaction_view_model.rb
         | 
| 381 | 
            +
            - lib/pact/doc/markdown/consumer_contract_renderer.rb
         | 
| 378 382 | 
             
            - lib/pact/doc/markdown/generator.rb
         | 
| 379 383 | 
             
            - lib/pact/doc/markdown/index_renderer.rb
         | 
| 380 384 | 
             
            - lib/pact/doc/markdown/interaction.erb
         | 
| 381 385 | 
             
            - lib/pact/doc/markdown/interaction_renderer.rb
         | 
| 382 | 
            -
            - lib/pact/doc/markdown/interactions_renderer.rb
         | 
| 383 386 | 
             
            - lib/pact/doc/sort_interactions.rb
         | 
| 384 387 | 
             
            - lib/pact/logging.rb
         | 
| 385 388 | 
             
            - lib/pact/matchers.rb
         | 
| @@ -399,15 +402,15 @@ files: | |
| 399 402 | 
             
            - lib/pact/matchers/unexpected_index.rb
         | 
| 400 403 | 
             
            - lib/pact/matchers/unexpected_key.rb
         | 
| 401 404 | 
             
            - lib/pact/matchers/unix_diff_formatter.rb
         | 
| 405 | 
            +
            - lib/pact/project_root.rb
         | 
| 402 406 | 
             
            - lib/pact/provider.rb
         | 
| 403 | 
            -
            - lib/pact/provider/client_project_pact_helper.rb
         | 
| 404 407 | 
             
            - lib/pact/provider/configuration.rb
         | 
| 405 408 | 
             
            - lib/pact/provider/configuration/configuration_extension.rb
         | 
| 406 409 | 
             
            - lib/pact/provider/configuration/dsl.rb
         | 
| 407 410 | 
             
            - lib/pact/provider/configuration/pact_verification.rb
         | 
| 408 411 | 
             
            - lib/pact/provider/configuration/service_provider_config.rb
         | 
| 409 412 | 
             
            - lib/pact/provider/configuration/service_provider_dsl.rb
         | 
| 410 | 
            -
            - lib/pact/provider/ | 
| 413 | 
            +
            - lib/pact/provider/context.rb
         | 
| 411 414 | 
             
            - lib/pact/provider/matchers/messages.rb
         | 
| 412 415 | 
             
            - lib/pact/provider/pact_helper_locator.rb
         | 
| 413 416 | 
             
            - lib/pact/provider/pact_spec_runner.rb
         | 
| @@ -415,7 +418,9 @@ files: | |
| 415 418 | 
             
            - lib/pact/provider/print_missing_provider_states.rb
         | 
| 416 419 | 
             
            - lib/pact/provider/request.rb
         | 
| 417 420 | 
             
            - lib/pact/provider/rspec.rb
         | 
| 421 | 
            +
            - lib/pact/provider/rspec/custom_options_file
         | 
| 418 422 | 
             
            - lib/pact/provider/rspec/formatter.rb
         | 
| 423 | 
            +
            - lib/pact/provider/rspec/matchers.rb
         | 
| 419 424 | 
             
            - lib/pact/provider/rspec/silent_json_formatter.rb
         | 
| 420 425 | 
             
            - lib/pact/provider/state/provider_state.rb
         | 
| 421 426 | 
             
            - lib/pact/provider/state/provider_state_configured_modules.rb
         | 
| @@ -425,6 +430,7 @@ files: | |
| 425 430 | 
             
            - lib/pact/provider/verification_report.rb
         | 
| 426 431 | 
             
            - lib/pact/provider/world.rb
         | 
| 427 432 | 
             
            - lib/pact/reification.rb
         | 
| 433 | 
            +
            - lib/pact/rspec.rb
         | 
| 428 434 | 
             
            - lib/pact/shared/active_support_support.rb
         | 
| 429 435 | 
             
            - lib/pact/shared/dsl.rb
         | 
| 430 436 | 
             
            - lib/pact/shared/jruby_support.rb
         | 
| @@ -448,6 +454,7 @@ files: | |
| 448 454 | 
             
            - spec/integration/consumer_spec.rb
         | 
| 449 455 | 
             
            - spec/integration/pact/consumer_configuration_spec.rb
         | 
| 450 456 | 
             
            - spec/integration/pact/provider_configuration_spec.rb
         | 
| 457 | 
            +
            - spec/lib/pact/app_spec.rb
         | 
| 451 458 | 
             
            - spec/lib/pact/configuration_spec.rb
         | 
| 452 459 | 
             
            - spec/lib/pact/consumer/app_manager_spec.rb
         | 
| 453 460 | 
             
            - spec/lib/pact/consumer/configuration_spec.rb
         | 
| @@ -469,8 +476,8 @@ files: | |
| 469 476 | 
             
            - spec/lib/pact/consumer_contract/request_spec.rb
         | 
| 470 477 | 
             
            - spec/lib/pact/doc/generator_spec.rb
         | 
| 471 478 | 
             
            - spec/lib/pact/doc/interaction_view_model_spec.rb
         | 
| 479 | 
            +
            - spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
         | 
| 472 480 | 
             
            - spec/lib/pact/doc/markdown/index_renderer_spec.rb
         | 
| 473 | 
            -
            - spec/lib/pact/doc/markdown/interactions_renderer_spec.rb
         | 
| 474 481 | 
             
            - spec/lib/pact/matchers/differ_spec.rb
         | 
| 475 482 | 
             
            - spec/lib/pact/matchers/difference_spec.rb
         | 
| 476 483 | 
             
            - spec/lib/pact/matchers/embedded_diff_formatter_spec.rb
         | 
| @@ -489,7 +496,6 @@ files: | |
| 489 496 | 
             
            - spec/lib/pact/provider/configuration_spec.rb
         | 
| 490 497 | 
             
            - spec/lib/pact/provider/matchers/messages_spec.rb
         | 
| 491 498 | 
             
            - spec/lib/pact/provider/pact_helper_locator_spec.rb
         | 
| 492 | 
            -
            - spec/lib/pact/provider/pact_spec_runner_spec.rb
         | 
| 493 499 | 
             
            - spec/lib/pact/provider/print_missing_provider_states_spec.rb
         | 
| 494 500 | 
             
            - spec/lib/pact/provider/request_spec.rb
         | 
| 495 501 | 
             
            - spec/lib/pact/provider/rspec/formatter_spec.rb
         | 
| @@ -504,13 +510,15 @@ files: | |
| 504 510 | 
             
            - spec/lib/pact/shared/request_spec.rb
         | 
| 505 511 | 
             
            - spec/lib/pact/something_like_spec.rb
         | 
| 506 512 | 
             
            - spec/lib/pact/tasks/task_helper_spec.rb
         | 
| 513 | 
            +
            - spec/lib/pact/tasks/verification_task_spec.rb
         | 
| 507 514 | 
             
            - spec/lib/pact/term_spec.rb
         | 
| 508 | 
            -
            - spec/ | 
| 515 | 
            +
            - spec/pact_specification/compliance-1.0.0.rb
         | 
| 509 516 | 
             
            - spec/spec_helper.rb
         | 
| 510 517 | 
             
            - spec/standalone/consumer_fail_test.rb
         | 
| 511 518 | 
             
            - spec/standalone/consumer_pass_test.rb
         | 
| 512 519 | 
             
            - spec/support/a_consumer-a_producer.json
         | 
| 513 520 | 
             
            - spec/support/a_consumer-a_provider.json
         | 
| 521 | 
            +
            - spec/support/active_support_if_configured.rb
         | 
| 514 522 | 
             
            - spec/support/app_for_config_ru.rb
         | 
| 515 523 | 
             
            - spec/support/consumer_contract_template.json
         | 
| 516 524 | 
             
            - spec/support/dsl_spec_support.rb
         | 
| @@ -547,7 +555,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 547 555 | 
             
                  version: '0'
         | 
| 548 556 | 
             
                  segments:
         | 
| 549 557 | 
             
                  - 0
         | 
| 550 | 
            -
                  hash:  | 
| 558 | 
            +
                  hash: 3393348357730131022
         | 
| 551 559 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 552 560 | 
             
              none: false
         | 
| 553 561 | 
             
              requirements:
         | 
| @@ -556,7 +564,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 556 564 | 
             
                  version: '0'
         | 
| 557 565 | 
             
                  segments:
         | 
| 558 566 | 
             
                  - 0
         | 
| 559 | 
            -
                  hash:  | 
| 567 | 
            +
                  hash: 3393348357730131022
         | 
| 560 568 | 
             
            requirements: []
         | 
| 561 569 | 
             
            rubyforge_project: 
         | 
| 562 570 | 
             
            rubygems_version: 1.8.23
         | 
| @@ -572,6 +580,7 @@ test_files: | |
| 572 580 | 
             
            - spec/integration/consumer_spec.rb
         | 
| 573 581 | 
             
            - spec/integration/pact/consumer_configuration_spec.rb
         | 
| 574 582 | 
             
            - spec/integration/pact/provider_configuration_spec.rb
         | 
| 583 | 
            +
            - spec/lib/pact/app_spec.rb
         | 
| 575 584 | 
             
            - spec/lib/pact/configuration_spec.rb
         | 
| 576 585 | 
             
            - spec/lib/pact/consumer/app_manager_spec.rb
         | 
| 577 586 | 
             
            - spec/lib/pact/consumer/configuration_spec.rb
         | 
| @@ -593,8 +602,8 @@ test_files: | |
| 593 602 | 
             
            - spec/lib/pact/consumer_contract/request_spec.rb
         | 
| 594 603 | 
             
            - spec/lib/pact/doc/generator_spec.rb
         | 
| 595 604 | 
             
            - spec/lib/pact/doc/interaction_view_model_spec.rb
         | 
| 605 | 
            +
            - spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
         | 
| 596 606 | 
             
            - spec/lib/pact/doc/markdown/index_renderer_spec.rb
         | 
| 597 | 
            -
            - spec/lib/pact/doc/markdown/interactions_renderer_spec.rb
         | 
| 598 607 | 
             
            - spec/lib/pact/matchers/differ_spec.rb
         | 
| 599 608 | 
             
            - spec/lib/pact/matchers/difference_spec.rb
         | 
| 600 609 | 
             
            - spec/lib/pact/matchers/embedded_diff_formatter_spec.rb
         | 
| @@ -613,7 +622,6 @@ test_files: | |
| 613 622 | 
             
            - spec/lib/pact/provider/configuration_spec.rb
         | 
| 614 623 | 
             
            - spec/lib/pact/provider/matchers/messages_spec.rb
         | 
| 615 624 | 
             
            - spec/lib/pact/provider/pact_helper_locator_spec.rb
         | 
| 616 | 
            -
            - spec/lib/pact/provider/pact_spec_runner_spec.rb
         | 
| 617 625 | 
             
            - spec/lib/pact/provider/print_missing_provider_states_spec.rb
         | 
| 618 626 | 
             
            - spec/lib/pact/provider/request_spec.rb
         | 
| 619 627 | 
             
            - spec/lib/pact/provider/rspec/formatter_spec.rb
         | 
| @@ -628,13 +636,15 @@ test_files: | |
| 628 636 | 
             
            - spec/lib/pact/shared/request_spec.rb
         | 
| 629 637 | 
             
            - spec/lib/pact/something_like_spec.rb
         | 
| 630 638 | 
             
            - spec/lib/pact/tasks/task_helper_spec.rb
         | 
| 639 | 
            +
            - spec/lib/pact/tasks/verification_task_spec.rb
         | 
| 631 640 | 
             
            - spec/lib/pact/term_spec.rb
         | 
| 632 | 
            -
            - spec/ | 
| 641 | 
            +
            - spec/pact_specification/compliance-1.0.0.rb
         | 
| 633 642 | 
             
            - spec/spec_helper.rb
         | 
| 634 643 | 
             
            - spec/standalone/consumer_fail_test.rb
         | 
| 635 644 | 
             
            - spec/standalone/consumer_pass_test.rb
         | 
| 636 645 | 
             
            - spec/support/a_consumer-a_producer.json
         | 
| 637 646 | 
             
            - spec/support/a_consumer-a_provider.json
         | 
| 647 | 
            +
            - spec/support/active_support_if_configured.rb
         | 
| 638 648 | 
             
            - spec/support/app_for_config_ru.rb
         | 
| 639 649 | 
             
            - spec/support/consumer_contract_template.json
         | 
| 640 650 | 
             
            - spec/support/dsl_spec_support.rb
         | 
| @@ -1,99 +0,0 @@ | |
| 1 | 
            -
            require 'spec_helper'
         | 
| 2 | 
            -
            require 'pact/tasks/verification_task'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            module Pact
         | 
| 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 | 
            -
                end
         | 
| 92 | 
            -
              end
         | 
| 93 | 
            -
            end
         | 
| 94 | 
            -
             | 
| 95 | 
            -
            RSpec::Matchers.define :include_task do |expected|
         | 
| 96 | 
            -
              match do |actual|
         | 
| 97 | 
            -
                actual.any? { |task| task.name == expected }
         | 
| 98 | 
            -
              end
         | 
| 99 | 
            -
            end
         |