Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expectation failures should be reported on all pact URLs, not just on the first one #88

Closed
alexeits opened this issue Jun 21, 2018 · 15 comments
Assignees

Comments

@alexeits
Copy link

alexeits commented Jun 21, 2018

Software versions

  • OS: macOS High Sierra 10.13.5

  • Consumer Pact library: Pact Go CLI v1.0.0-beta.1, using CLI tools version 1.44.1

  • Provider Pact library:

    $ pact-mock-service version
    2.8.0
    $ pact-provider-verifier version
    1.14.3
    $ pact-broker version
    1.14.1
    
  • Golang Version: go version go1.10.1 darwin/amd64

  • Golang environment:

    GOARCH="amd64"
    GOBIN=""
    GOCACHE="/Users/alex/Library/Caches/go-build"
    GOEXE=""
    GOHOSTARCH="amd64"
    GOHOSTOS="darwin"
    GOOS="darwin"
    GOPATH="/Users/alex/Documents/source/go"
    GORACE=""
    GOROOT="/usr/local/Cellar/go/1.10.1/libexec"
    GOTMPDIR=""
    GOTOOLDIR="/usr/local/Cellar/go/1.10.1/libexec/pkg/tool/darwin_amd64"
    GCCGO="gccgo"
    CC="clang"
    CXX="clang++"
    CGO_ENABLED="1"
    CGO_CFLAGS="-g -O2"
    CGO_CPPFLAGS=""
    CGO_CXXFLAGS="-g -O2"
    CGO_FFLAGS="-g -O2"
    CGO_LDFLAGS="-g -O2"
    PKG_CONFIG="pkg-config"
    GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/5v/fvbqg92n7wg1vkr3gg4glvyh0000gn/T/go-build696986998=/tmp/go-build -gno-record-gcc-switches -fno-common"
    

Expected behaviour

  1. Call verify provider with more than one pact URL
  2. Expectation failures should be reported on all pacts

Actual behaviour

It the first pact succeeds expectation failures on all subsequent pacts are ignored

Steps to reproduce

res, _ := pact.VerifyProviderRaw(types.VerifyRequesttypes.VerifyRequest{
	ProviderBaseURL: "http://localhost:9001",
	PactURLs: []string{
		filepath.Join(test.GetPactsDir(), "agent-desktop-auth.json"), // succeeding
		filepath.Join(test.GetPactsDir(), "api-auth.json"), // failing
	},
	ProviderStatesSetupURL: "http://localhost:9001/setup-pacts",
})

Relevant log files

Running pacts by hand with pact-provider-verifier shows that the result for the first pact URL go to stdout:

{
  "version": "3.7.1",
  "examples": [
    {
      "id": "/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:1]",
      "description": "has status code 200",
      "full_description": "Verifying a pact between agent-desktop and auth Given michelle.smith exists in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which has status code 200",
      "status": "passed",
      "file_path": "/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb",
      "line_number": 148,
      "run_time": 0.030802,
      "pending_message": null
    },
    // ... cut ...
  ],
  "summary": {
    "duration": 0.038427,
    "example_count": 6,
    "failure_count": 0,
    "pending_count": 0,
    "errors_outside_of_examples_count": 0
  },
  "summary_line": "6 examples, 0 failures"
}

while failures for the second pact URL go to stderr:

{
  "version": "3.7.1",
  "examples": [
    {
      "id": "/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:1]",
      "description": "has status code 200",
      "full_description": "Verifying a pact between api and auth Given michelle.smith exists in example.com org get existing user from API token with POST /api/v1/api_users returns a response which has status code 200",
      "status": "failed",
      "file_path": "/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb",
      "line_number": 148,
      "run_time": 0.008817,
      "pending_message": null,
      "exception": {
        "class": "RSpec::Expectations::ExpectationNotMetError",
        "message": "\nexpected: 200\n     got: 404\n\n(compared using eql?)\n",
        "backtrace": [
          "/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-support-3.7.1/lib/rspec/support.rb:97:in `block in <module:Support>'",
          "/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-support-3.7.1/lib/rspec/support.rb:106:in `call'",
          "/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-support-3.7.1/lib/rspec/support.rb:106:in `notify_failure'",
     // ... cut ....
  ],
  "summary": {
    "duration": 0.017386,
    "example_count": 4,
    "failure_count": 2,
    "pending_count": 0,
    "errors_outside_of_examples_count": 0
  },
  "summary_line": "4 examples, 2 failures"
}

It appears that stderr is ignored by the client.go, only stdout is processed

@alexeits alexeits changed the title Expectation failures should be reported on all pact , not just on the first one Expectation failures should be reported on all pact URLs, not just on the first one Jun 21, 2018
@bethesque
Copy link
Member

I can't tell if this is a problem with the go streams, or the ruby streams. Will investigate when I get a chance.

@bethesque
Copy link
Member

$ bundle exec bin/pact-provider-verifier ./test/me-they.json ./test/me-they.json -a 1.0.100 --provider-base-url http://localhost:4567 > foo
WARN: Skipping set up for provider state 'There is a greeting' for consumer 'me' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'There is a greeting' for consumer 'me' as there is no --provider-states-setup-url specified.

I can't see any difference between the first and second in the ruby verifier - the json output goes to stdout both times, and only the warnings are shown in stderr. Let me know if you find anything different @mefellows

@alexeits
Copy link
Author

alexeits commented Jun 21, 2018

@bethesque you may want to try with --format json.

I can see the first pact output going to stdout, the second to stderr:

$ pact-provider-verifier ./test/api-auth.json ./test/agent-desktop-auth.json -a 1.0.100 --provider-base-url http://localhost:4567 --format json > foo
INFO: Reading pact at ./test/api-auth.json
WARN: Ignoring unsupported matching rules {"min"=>1} for path $['body']['roleIds']
WARN: Skipping set up for provider state 'michelle.smith does not exist in example.com org' for consumer 'api' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'api' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'api' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'api' as there is no --provider-states-setup-url specified.
INFO: Reading pact at ./test/agent-desktop-auth.json
WARN: Ignoring unsupported matching rules {"min"=>1} for path $['body']['roleIds']
WARN: Ignoring unsupported matching rules {"min"=>1} for path $['body']['topicPermissions']
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith exists in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith does not exist in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
WARN: Skipping set up for provider state 'michelle.smith does not exist in example.com org' for consumer 'agent-desktop' as there is no --provider-states-setup-url specified.
{"version":"3.7.1","examples":[{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:1]","description":"has status code 200","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith exists in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which has status code 200","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":148,"run_time":0.006519,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}},{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:3]","description":"has a matching body","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith exists in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which has a matching body","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":167,"run_time":0.002526,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}},{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:2:1]","description":"\"Content-Type\" which equals \"application/json\"","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith exists in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which includes headers \"Content-Type\" which equals \"application/json\"","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":157,"run_time":0.002488,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}},{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:1:1:1:1:2:2]","description":"\"Set-Cookie\" which matches /^auth=[^;]+;.*\\s[Hh]ttp[Oo]nly(?:;|$)/","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith exists in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which includes headers \"Set-Cookie\" which matches /^auth=[^;]+;.*\\s[Hh]ttp[Oo]nly(?:;|$)/","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":157,"run_time":0.002314,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}},{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:2:1:1:1:1]","description":"has status code 401","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith does not exist in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which has status code 401","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":148,"run_time":0.003022,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}},{"id":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb[1:2:1:1:1:3]","description":"has a matching body","full_description":"Verifying a pact between agent-desktop and auth Given michelle.smith does not exist in example.com org create desktop token with POST /api/v3/desktop_tokens returns a response which has a matching body","status":"failed","file_path":"/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb","line_number":167,"run_time":0.0026,"pending_message":null,"exception":{"class":"Errno::ECONNREFUSED","message":"Connection refused - connect(2) for \"localhost\" port 4567","backtrace":["/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `initialize'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in `do_start'","/opt/pact/lib/ruby/lib/ruby/2.2.0/net/http.rb:858:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:71:in `session'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:60:in `response'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-proxy-0.6.4/lib/rack/http_streaming_response.rb:29:in `headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:166:in `rack_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:157:in `build_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:153:in `response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:182:in `need_replace_location?'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:172:in `replace_location_header'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:197:in `setup_response_headers'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:209:in `proxy'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/roundtrip.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-reverse-proxy-0.12.0/lib/rack_reverse_proxy/middleware.rb:25:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/mock_session.rb:29:in `request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:251:in `process_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:129:in `custom_request'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rack-test-0.8.3/lib/rack/test.rb:66:in `post'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/test_methods.rb:23:in `replay_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:86:in `block (3 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:201:in `run_once'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/rspec.rb:83:in `block (2 levels) in describe_interaction'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:447:in `instance_exec'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:350:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:509:in `block in run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:508:in `run_owned_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:595:in `block in run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `reverse_each'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:594:in `run_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:464:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:494:in `run_before_example'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:253:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:604:in `run_around_example_hooks_for'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb:466:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:457:in `with_around_example_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb:251:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:628:in `block in run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:624:in `run_examples'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:590:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `block in run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb:591:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `map'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1926:in `with_suite_hooks'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:113:in `block in run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb:79:in `report'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:112:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:87:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:21:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-1.26.0/lib/pact/cli/run_pact_verification.rb:14:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:109:in `verify_pact'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:29:in `block in call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `collect'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:28:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/app.rb:22:in `call'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/verify.rb:27:in `verify'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'","/opt/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'","/opt/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.14.3/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'","/opt/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'"]}}],"summary":{"duration":0.021405,"example_count":6,"failure_count":6,"pending_count":0,"errors_outside_of_examples_count":0},"summary_line":"6 examples, 6 failures"}

@bethesque
Copy link
Member

Hm. This has turned out to be trickier than I expected. I've recreated it, I've just got to work out the best way to fix it.

@bethesque
Copy link
Member

Ok, I've fixed this, but I'm not entirely sure I've solved it the best way. The way the pacts are being passed into the verifier one at a time, so we get a separate JSON document for each pact. This means that the stdout cannot be JSON parsed directly, but needs to be split at the joins }{ and then parsed.

If I pass all the pacts in together, then there will just be one overall JSON results document. That would seem to be a better solution.

However, there is an outstanding request to send the results for each pact to a separate file, so for that, I'd need to pass the pacts in separately (as they currently are), and give each a unique file path to write the JSON results to.

I'm in a dilemma! Perhaps I'll need to add an option to allow either verifying them separately, or as a group.

@alexeits
Copy link
Author

alexeits commented Jul 10, 2018

@bethesque I think this approach (JSONS) is quite acceptable. I would only recommend using a new line in between JSON objects to turn it into JSONL. It is much easier to parse by using line-reading streams, which are available in pretty much every language.

Of course, in either case the client, e.g. pact-go would need to change to split the JSON objects first.

@bethesque
Copy link
Member

Hm. That could work. I'd need to make a modification somewhere to add the new line in, but that shouldn't be too hard.

@mefellows
Copy link
Member

Thanks @bethesque , I can take a look at fixing this in Pact Go tomorrow.

Just to re-cap, you've fixed the verifier so that all results come back in JSON without the line separator. Should I wait for the JSONL implementation before updating?

bethesque added a commit to pact-foundation/pact-provider-verifier that referenced this issue Jul 12, 2018
@bethesque
Copy link
Member

Done. Each JSON document is now separated by a new line as per jsonl.

Please use 1.52.0 of the standalone.

@mefellows
Copy link
Member

mefellows commented Jul 12, 2018 via email

@alexeits
Copy link
Author

@bethesque, @mefellows thanks a lot for the quick turnaround. The responsiveness of your team is amazing.

@mefellows
Copy link
Member

No worries @alexeits - we ❤️ it!

@mefellows
Copy link
Member

Latest release is out @alexeits - tag is v1.0.0-beta.1 or you can pin to the current git sha.

Let us know how you go!

@alexeits
Copy link
Author

I got results for both pacts after the upgrade. It works! Thank you very much!

@mefellows
Copy link
Member

mefellows commented Jul 13, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants