Sha256: 92c4eafc8ccee4dddd78b8dbbc592dadd040b23663c26697f2dc83ad67550d92

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'spec_helper'
require 'pact/consumer_contract/request_decorator'
require 'pact/consumer/request'

module Pact
  describe RequestDecorator do

    let(:path) { "/zebras/1" }
    let(:request_params) do
      {
        method: :get,
        path: path
      }
    end

    let(:request) { Pact::Request::Expected.from_hash(request_params) }

    subject { RequestDecorator.new(request) }

    describe "#to_json" do

      let(:parsed_json) { JSON.parse subject.to_json, symbolize_names: true }

      context "path" do

        context "with a String path" do
          it "renders the path" do
            expect(parsed_json[:path]).to eq path
          end
        end

        context "with a Pact::Term path", pending: "Pact::Terms for paths are not implemented yet"  do
          let(:path) { Pact::Term.new(generate: "/zebras/1", matcher: %r{/zebras/\d})  }

          it "reifies the path for compatibility with pact-specification 1.0.0" do
            expect(parsed_json[:path]).to eq path
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pact-mock_service-0.2.2 spec/lib/pact/consumer_contract/request_decorator_path_spec.rb
pact-mock_service-0.2.1 spec/lib/pact/consumer_contract/request_decorator_path_spec.rb