Sha256: 9334f6ce7210b1c0bfb148a74879ee473f435081c2225e5578b5ba28ce539e82
Contents?: true
Size: 1.77 KB
Versions: 2
Compression:
Stored size: 1.77 KB
Contents
require 'rake/tasklib' require 'pact/provider/pact_spec_runner' =begin To create a rake pact:verify:<something> task Pact::VerificationTask.new(:head) do | pact | pact.uri 'http://master.cd.vpc.realestate.com.au/browse/BIQ-MAS/latestSuccessful/artifact/JOB2/Pacts/mas-contract_transaction_service.json', support_file: './spec/consumers/pact_helper' pact.uri 'http://master.cd.vpc.realestate.com.au/browse/BIQ-IMAGINARY-CONSUMER/latestSuccessful/artifact/JOB2/Pacts/imaginary_consumer-contract_transaction_service.json', support_file: './spec/consumers/pact_helper' end The pact.uri may be a local file system path or a remote URL. The support_file should include code that makes your rack app available for the rack testing framework. Eg. Pact.service_provider "My Provider" do app { TestApp.new } end It should also load all your app's dependencies (eg by calling out to spec_helper) =end module Pact class VerificationTask < ::Rake::TaskLib attr_reader :pact_spec_config def initialize(name) @pact_spec_config = [] yield self namespace :pact do desc "Verify provider against the consumer pacts for #{name}" task "verify:#{name}" do exit_status = Provider::PactSpecRunner.run(pact_spec_config) fail failure_message if exit_status != 0 end def failure_message "\n* * * * * * * * * * * * * * * * * * *\n" + "Provider did not honour pact file.\nSee\n * #{Pact.configuration.log_path}\n * #{Pact.configuration.tmp_dir}\nfor logs and pact files." + "\n* * * * * * * * * * * * * * * * * * *\n\n" end end end def uri(uri, options) @pact_spec_config << {uri: uri, support_file: options[:support_file], consumer: options[:consumer]} end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pact-1.0.1 | lib/pact/verification_task.rb |
pact-1.0.0 | lib/pact/verification_task.rb |