Sha256: 0c7d852a083e54adaa1695a3ebb2df77ee3770fa6c07a06664627af0e9c1c4e7

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 KB

Contents

require "pact_broker/ui/app"

describe "UI index" do

  let(:app) { PactBroker::UI::App.new }
  let(:td) { TestDataBuilder.new }
  let(:params) { {} }

  before do
    td.create_pact_with_hierarchy("Foo", "1", "Bar")
      .create_consumer_version_tag("prod")
      .create_consumer_version("2")
      .create_pact
    get "/"
  end

  let(:rack_env) { {} }

  subject { get("/", params, rack_env) }

  describe "GET" do
    it "returns a success response" do
      expect(subject.status).to eq 200
    end

    it "returns a table of pacts" do
      expect(subject.body.scan("<tr").to_a.size).to eq 2
    end

    context "with an array of tags" do
      let(:params) { { tags: ["prod"] } }

      it "returns a table of pacts with the specfied tags" do
        expect(subject.body.scan("<tr").to_a.size).to eq 3
      end
    end

    context "with the base_url not set" do
      it "returns relative links" do
        expect(subject.body).to include "href='/stylesheets"
      end
    end

    context "with the base_url set" do
      let(:rack_env) { { "pactbroker.base_url" => "http://example.org/pact-broker"} }

      it "returns absolute links" do
        expect(subject.body).to include "href='http://example.org/pact-broker/stylesheets"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pact_broker-2.83.0 spec/integration/ui/index_spec.rb
pact_broker-2.82.0 spec/integration/ui/index_spec.rb
pact_broker-2.81.0 spec/integration/ui/index_spec.rb
pact_broker-2.80.0 spec/integration/ui/index_spec.rb