Sha256: 41748a4fe18193e23e295bef58aea29dbe97fc1937f71c7d6f0729fce15863bb

Contents?: true

Size: 1.99 KB

Versions: 12

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

12 entries across 12 versions & 1 rubygems

Version Path
pact_broker-2.89.1 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.89.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.88.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.87.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.86.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.85.1 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.85.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.84.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.83.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.82.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.81.0 spec/lib/rack/pact_broker/request_target_spec.rb
pact_broker-2.80.0 spec/lib/rack/pact_broker/request_target_spec.rb