Sha256: f6413684142da834b20e6432b88c8805eefbbc84ee175a22c7f5ef0bc5edd72b

Contents?: true

Size: 1.99 KB

Versions: 32

Compression:

Stored size: 1.99 KB

Contents

require 'rack/pact_broker/request_target'

module Rack
  module PactBroker
    describe RequestTarget do
      let(:rack_env) do
        {
          'CONTENT_TYPE' => content_type,
          'HTTP_ACCEPT' => accept,
          'PATH_INFO' => path
        }
      end
      let(:content_type) { nil }
      let(:accept) { nil }
      let(:path) { '' }

      describe "#request_for_ui?" do
        let(:path) { "/" }

        subject { RequestTarget.request_for_ui?(rack_env) }

        context "when the Accept header includes text/html" do
          let(:accept) { "text/html" }

          it { is_expected.to be true }
        end

        context "when the request is for a web asset with an Accept header of */*" do
          let(:path) { "/blah/foo.woff" }
          let(:accept) { "*/*" }

          it { is_expected.to be true }
        end

        context "when the request is for a content type served by the API (HAL browser request)" do
          let(:accept) { "application/hal+json, application/json, */*; q=0.01" }

          it { is_expected.to be false }
        end

        context "when the request is not for a web asset and the Accept headers is */* (default Accept header from curl request)" do
          let(:accept) { "*/*" }

          it { is_expected.to be false }
        end

        context "when the request is not for a web asset and no Accept header is specified" do
          let(:accept) { nil }

          it { is_expected.to be false }
        end

        context "when the request ends in a web asset extension but has Accept application/hal+json" do
          let(:accept) { "application/hal+json" }
          let(:path) { "/blah/foo.woff" }

          it { is_expected.to be false }
        end

        context "when the request is for a badge resource with a svg content type" do
          let(:accept) { "image/svg+xml;charset=utf-8" }
          let(:path) { "/pacts/provider/foo/consumer/bar/latest/badge" }

          it { is_expected.to be false }
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

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