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.43.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.42.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.41.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.40.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.39.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.38.3 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.38.2 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.38.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.38.0 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.37.1 spec/lib/pact_broker/client/versions/describe_spec.rb
pact_broker-client-1.37.0 spec/lib/pact_broker/client/versions/describe_spec.rb