Still
03/09/2022, 9:09 PMMatt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Still
03/10/2022, 9:52 AMMatt (pactflow.io / pact-js / pact-go)
example/zoo-app
bundle install
rake spec
the pacts are generated:
cat spec/pacts/zoo_app-animal_service.json
{
"consumer": {
"name": "Zoo App"
},
"provider": {
"name": "Animal Service"
},
"interactions": [
{
"description": "a request for an alligator",
"providerState": "there is an alligator named Mary",
"request": {
"method": "get",
"path": "/alligators/Mary",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json;charset=utf-8"
},....
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
➜ animal-service git:(master) ✗ rake pact:verify
SPEC_OPTS='' /Users/matthewfellows/.rvm/rubies/ruby-2.7.3/bin/ruby -S pact verify --pact-helper /Users/matthewfellows/development/public/pact-ruby/example/animal-service/spec/service_consumers/pact_helper.rb
INFO: Reading pact at ../zoo-app/spec/pacts/zoo_app-animal_service.json
WARN: Please note: we are tracking events anonymously to gather important usage statistics like Pact-Ruby version
and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment
variable to 'true'.
Verifying a pact between Zoo App and Animal Service
Given there is an alligator named Mary
a request for an alligator
with GET /alligators/Mary
returns a response which
has status code 200
has a matching body
includes headers
"Content-Type" which equals "application/json;charset=utf-8"
Given there is not an alligator named Mary
a request for an alligator
with GET /alligators/Mary
returns a response which
has status code 404
Given an error occurs retrieving an alligator
a request for an alligator
with GET /alligators/Mary
returns a response which
has status code 500
has a matching body
includes headers
"Content-Type" which equals "application/json;charset=utf-8"
3 interactions, 0 failures
➜ animal-service git:(master) ✗ rm ../zoo-app/spec/pacts/zoo_app-animal_service.json
➜ animal-service git:(master) ✗ rake pact:verify
SPEC_OPTS='' /Users/matthewfellows/.rvm/rubies/ruby-2.7.3/bin/ruby -S pact verify --pact-helper /Users/matthewfellows/development/public/pact-ruby/example/animal-service/spec/service_consumers/pact_helper.rb
Error reading file from ../zoo-app/spec/pacts/zoo_app-animal_service.json
No such file or directory @ rb_sysopen - ../zoo-app/spec/pacts/zoo_app-animal_service.json /Users/matthewfellows/.rvm/gems/ruby-2.7.3/gems/pact-support-1.17.0/lib/pact/consumer_contract/pact_file.rb:53:in `read'
/Users/matthewfellows/.rvm/gems/ruby-2.7.3/gems/pact-support-1.17.0/lib/pact/consumer_contract/pact_file.rb:53:in `get_local'
/Users/matthewfellows/.rvm/gems/ruby-2.7.3/gems/pact-support-1.17.0/lib/pact/consumer_contract/pact_file.rb:43:in `render_pact'
/Users/matthewfellows/.rvm/gems/ruby-2.7.3/gems/pact-support-1.17.0/lib/pact/consumer_contract/pact_file.rb:24:in `read'
/Users/matthewfellows/development/public/pact-ruby/lib/pact/provider/pact_source.rb:17:in `pact_json'
/Users/matthewfellows/development/public/pact-ruby/lib/pact/provider/pact_spec_runner.rb:124:in `collect'
Matt (pactflow.io / pact-js / pact-go)
Slackbot
03/10/2022, 11:50 AMStill
03/10/2022, 2:08 PMStill
03/10/2022, 2:57 PMMatt (pactflow.io / pact-js / pact-go)
bundle exec …
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Still
03/11/2022, 8:21 AM