A client for the Pact Broker. Publishes pacts to, and retrieves pacts from, the pact broker.
You will need an instance of a Pact Broker. It's URL will be used below in the configuration for the Consumer and the Provider. eg. http://pact-broker.my.org
# In Gemfile
gem "pact_broker-client"
# In Rakefile
require 'pact_broker/client/tasks'
PactBroker::Client::PublicationTask.new do | task |
require 'my_consumer/version'
task.consumer_version = MyConsumer::VERSION
task.pact_broker_base_url = "http://pact-broker.my.org"
task.pact_broker_basic_auth = { username: 'basic_auth_user', password: 'basic_auth_pass'} #optional
task.write_method = :merge # optional, this will merge the published pact into an existing pact rather than overwriting it if one exists
end
# In CI script
rake pact:publish
# In spec/service_consumers/pact_helper.rb
require 'pact/provider/rspec'
Pact.service_provider "My Provider" do
honours_pact_with "My Consumer" do
pact_uri URI.encode("http://pact-broker.my.org/pact/provider/My Provider/consumer/My Consumer/latest")
end
end