Sha256: e2e21e71a246eb9029fa0e4cd61e2d9e05a66158caf9bdba328fcfc8e13699f6

Contents?: true

Size: 1.96 KB

Versions: 28

Compression:

Stored size: 1.96 KB

Contents

describe "Get provider pacts for verification" do
  let(:last_response_body) { JSON.parse(subject.body, symbolize_names: true) }
  let(:pacts) { last_response_body[:_embedded][:'pacts'] }
  let(:query) do
    {
      consumer_version_selectors: [ { tag: "prod", latest: "true" }]
    }
  end

  subject { get(path, query) }

  context "when the provider exists" do
    before do
      TestDataBuilder.new
        .create_provider("Provider")
        .create_consumer("Consumer")
        .create_consumer_version("0.0.1")
        .create_pact
        .create_consumer("Consumer 2")
        .create_consumer_version("4.5.6")
        .create_consumer_version_tag("prod")
        .create_pact
    end

    let(:path) { "/pacts/provider/Provider/for-verification" }

    context "when using GET" do
      it "returns a 200 HAL JSON response" do
        expect(subject).to be_a_hal_json_success_response
      end

      it "returns a list of links to the pacts" do
        expect(pacts.size).to eq 1
      end

      context "when the provider does not exist" do
        let(:path) { "/pacts/provider/ProviderThatDoesNotExist/for-verification" }

        it "returns a 404 response" do
          expect(subject).to be_a_404_response
        end
      end
    end

    context "when using POST" do
      let(:request_body) do
        {
          consumerVersionSelectors: [ { tag: "prod", latest: true }]
        }
      end

      let(:request_headers) do
        {
          'CONTENT_TYPE' => 'application/json',
          'HTTP_ACCEPT' => 'application/hal+json'
        }
      end

      subject { post(path, request_body.to_json, request_headers) }

      it "returns a list of links to the pacts" do
        expect(pacts.size).to eq 1
      end

      context "when the provider does not exist" do
        let(:path) { "/pacts/provider/ProviderThatDoesNotExist/for-verification" }

        it "returns a 404 response" do
          expect(subject).to be_a_404_response
        end
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
pact_broker-2.59.2 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.59.1 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.59.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.58.3 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.58.2 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.58.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.57.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.56.1 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.56.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.55.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.54.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.53.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.52.2 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.52.1 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.52.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.51.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.50.1 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.50.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.49.0 spec/features/get_provider_pacts_for_verification_spec.rb
pact_broker-2.48.0 spec/features/get_provider_pacts_for_verification_spec.rb