Sha256: 0a855111ac137cac0372c43d7ae8aa4e056a57c87e13d1ecd48f030ec432dc63

Contents?: true

Size: 1.44 KB

Versions: 108

Compression:

Stored size: 1.44 KB

Contents

require 'pact_broker/api/resources/matrix'
require 'pact_broker/matrix/service'

module PactBroker
  module Api
    module Resources
      describe Matrix do
        before do
          allow(PactBroker::Matrix::Service).to receive(:validate_selectors).and_return(error_messages)
          allow(PactBroker::Matrix::Service).to receive(:find).and_return([])
          allow(PactBroker::Matrix::ParseQuery).to receive(:call).and_return([selectors, options])
        end

        let(:td) { TestDataBuilder.new }
        let(:path) { "/matrix" }
        let(:json_response_body) { JSON.parse(subject.body, symbolize_names: true) }
        let(:params) { {q: [{pacticipant: 'Foo', version: '1'}, {pacticipant: 'Bar', version: '2'}]} }
        let(:error_messages) { [] }
        let(:selectors) { double('selectors') }
        let(:options) { double('options') }

        subject { get path, params, {'Content-Type' => 'application/hal+json'}; last_response }

        it "validates the selectors" do
          expect(PactBroker::Matrix::Service).to receive(:validate_selectors).with(selectors)
          subject
        end

        context "when a validation error occurs" do
          let(:error_messages) { ['foo'] }
          it "returns a 400 status" do
            expect(subject.status).to eq 400
          end

          it "returns error messages" do
            expect(json_response_body[:errors]).to eq ['foo']
          end
        end
      end
    end
  end
end

Version data entries

108 entries across 108 versions & 1 rubygems

Version Path
pact_broker-2.79.1 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.79.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.78.1 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.78.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.77.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.76.2 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.76.1 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.76.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.75.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.74.1 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.74.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.73.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.72.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.71.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.70.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.69.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.68.1 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.68.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.67.0 spec/lib/pact_broker/api/resources/matrix_spec.rb
pact_broker-2.66.0 spec/lib/pact_broker/api/resources/matrix_spec.rb