Sha256: 844d0b2e65569ad8ce0617f030ee03cc0f69b2e514232b8dd9d86c934feb3ad7

Contents?: true

Size: 1.85 KB

Versions: 51

Compression:

Stored size: 1.85 KB

Contents

require 'pact_broker/client/versions/describe'

module PactBroker
  module Client
    class Versions
      describe Describe do
        describe ".call" do
          let(:versions_client) do
            instance_double('PactBroker::Client::Versions', latest: version_hash)
          end

          let(:pact_broker_base_url) { 'http://broker' }
          let(:pact_broker_client_options) { {} }
          let(:pact_broker_client) { instance_double('PactBroker::Client::PactBrokerClient')}
          let(:version_hash) do
            {
              foo: 'bar'
            }
          end

          let(:params) do
            {
              pacticipant: 'foo',
              latest: true,
              tag: 'bar'
            }
          end

          let(:options) do
            {
              output: 'someformat'
            }
          end

          before do
            allow(PactBroker::Client::PactBrokerClient).to receive(:new).and_return(pact_broker_client)
            allow(pact_broker_client).to receive_message_chain(:pacticipants, :versions).and_return(versions_client)
            allow(Formatter).to receive(:call).and_return('formatted_output')
          end

          subject { Describe.call(params, options, pact_broker_base_url, pact_broker_client_options) }

          it "invokes the versions client" do
            expect(versions_client).to receive(:latest).with(params)
            subject
          end

          it "formats the output" do
            expect(Formatter).to receive(:call).with(version_hash, 'someformat')
            subject
          end

          it "returns a successful result" do
            expect(subject.success).to be true
          end

          it "returns a result with the formatted output as the message" do
            expect(subject.message).to eq 'formatted_output'
          end
        end
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
pact_broker-client-1.75.3 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.75.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.75.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.74.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.73.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.72.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.71.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.70.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.69.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.68.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.67.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.66.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.66.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.65.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.64.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.63.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.62.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.62.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.61.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.61.0 spec/lib/pact_broker/client/versions/describe_spec.rb