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