pact-foundation / pact-mock_service

Provides a mock service for use with Pact

Home Page:https://pact.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Request to '/pact' endpoint without body is failing making python-pact verification unusable

copalco opened this issue · comments

Request:
docker-compose run tests curl -X POST -H "X-Pact-Mock-Service: true" -H "Content-Length: 0" pact/pact

Response of pact-mock-service:
{"message":"Error ocurred in mock service: JSON::ParserError - 765: unexpected token at ''","backtrace":["/usr/local/lib/ruby/2.5.0/json/common.rb:156:in parse'","/usr/local/lib/ruby/2.5.0/json/common.rb:156:in parse'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/mock_service/request_handlers/pact_post.rb:27:in respond'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/mock_service/request_handlers/base_request_handler.rb:17:in call'","/usr/local/bundle/gems/rack-2.0.3/lib/rack/cascade.rb:33:in block in call'","/usr/local/bundle/gems/rack-2.0.3/lib/rack/cascade.rb:24:in each'","/usr/local/bundle/gems/rack-2.0.3/lib/rack/cascade.rb:24:in call'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/consumer/mock_service/cors_origin_header_middleware.rb:11:in call'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/consumer/mock_service/error_handler.rb:13:in call'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/mock_service/app.rb:32:in call'","/usr/local/bundle/gems/pact-mock_service-2.1.0/lib/pact/consumer/mock_service/set_location.rb:14:in call'","/usr/local/bundle/gems/rack-2.0.3/lib/rack/handler/webrick.rb:86:in service'","/usr/local/bundle/gems/webrick-1.3.1/lib/webrick/httpserver.rb:138:in service'","/usr/local/bundle/gems/webrick-1.3.1/lib/webrick/httpserver.rb:94:in run'","/usr/local/bundle/gems/webrick-1.3.1/lib/webrick/server.rb:191:in `block in start_thread'"]}

Please provide a git repository or docker-compose file that demonstrates the issue, as I cannot reproduce it locally. There must be something different about your environment.

$ pact-mock-service version
3.1.0
$ pact-mock-service start --consumer consumer --provider provider --pact-dir . -p 5555
$ curl -X POST -H "X-Pact-Mock-Service: true" -H "Content-Length: 0" http://localhost:5555/pact
{
  "consumer": {
    "name": "consumer"
  },
  "provider": {
    "name": "provider"
  },
  "interactions": [

  ],
  "metadata": {
    "pactSpecification": {
      "version": "2.0.0"
    }
  }
}