Sha256: 8d28c70759df4399e098b0bac8123480d00e7165d3d1ac45cc90f69cdd957369

Contents?: true

Size: 1.55 KB

Versions: 10

Compression:

Stored size: 1.55 KB

Contents

describe "Publishing a pact" do

  let(:pact_content) { load_fixture('a_consumer-a_provider.json') }
  let(:path) { "/pacts/provider/A%20Provider/consumer/A%20Consumer/version/1.2.3" }
  let(:response_body_json) { JSON.parse(subject.body) }

  subject { put path, pact_content, {'CONTENT_TYPE' => 'application/json' }; last_response  }

  context "when a pact for this consumer version does not exist" do
    it "returns a 201 Created" do
      expect(subject.status).to be 201
    end

    it "returns a json body" do
      expect(subject.headers['Content-Type']).to eq "application/json;charset=utf-8"
    end

    it "returns the pact in the body" do
      expect(response_body_json).to include JSON.parse(pact_content)
    end
  end

  context "when a pact for this consumer version does exist" do

    before do
      ProviderStateBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3", "A Provider"
    end

    it "returns a 200 Success" do
      expect(subject.status).to be 200
    end

    it "returns an application/json Content-Type" do
      expect(subject.headers['Content-Type']).to eq "application/json;charset=utf-8"
    end

    it "returns the pact in the response body" do
      expect(response_body_json).to include JSON.parse(pact_content)
    end
  end

  context "when the pacticipant names in the path do not match those in the pact" do
    let(:path) { "/pacts/provider/Another%20Provider/consumer/A%20Consumer/version/1.2.3" }

    it "returns a json error response" do
      expect(subject).to be_a_json_error_response "does not match"
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pact_broker-1.15.0 spec/features/publish_pact_spec.rb
pact_broker-1.14.0 spec/features/publish_pact_spec.rb
pact_broker-1.13.0 spec/features/publish_pact_spec.rb
pact_broker-1.12.0 spec/features/publish_pact_spec.rb
pact_broker-1.11.2 spec/features/publish_pact_spec.rb
pact_broker-1.11.1 spec/features/publish_pact_spec.rb
pact_broker-1.11.0 spec/features/publish_pact_spec.rb
pact_broker-1.10.0 spec/features/publish_pact_spec.rb
pact_broker-1.9.3 spec/features/publish_pact_spec.rb
pact_broker-1.9.2 spec/features/publish_pact_spec.rb