Sha256: 604ded6c12a798dfe02b50cb37dbe30a2e5ed1970ea368a3918adbb1b8faa0e7

Contents?: true

Size: 1.95 KB

Versions: 60

Compression:

Stored size: 1.95 KB

Contents

require 'spec_helper'
require 'pact_broker/api/decorators/pact_version_decorator'

module PactBroker

  module Api

    module Decorators

      describe PactVersionDecorator do

        let(:json_content) {
          {
            'consumer' => {'name' => 'Consumer'},
            'provider' => {'name' => 'Provider'},
            'interactions' => [],
            'metadata' => {}
          }.to_json
        }

        let(:base_url) { 'http://example.org' }
        let(:created_at) { Time.new(2014, 3, 4) }
        let(:pact) { double('pact',
          json_content: json_content,
          created_at: created_at,
          consumer: consumer,
          provider: provider,
          consumer_version: consumer_version,
          consumer_version_number: '1234',
          name: 'pact_name')}
        let(:consumer) { instance_double(PactBroker::Domain::Pacticipant, name: 'Consumer')}
        let(:provider) { instance_double(PactBroker::Domain::Pacticipant, name: 'Provider')}
        let(:consumer_version) { instance_double(PactBroker::Domain::Version, number: '1234', pacticipant: consumer)}
        let(:decorator_context) { DecoratorContext.new(base_url, '') }

        let(:json) { PactVersionDecorator.new(pact).to_json(user_options: decorator_context) }

        subject { JSON.parse(json, symbolize_names: true) }

        it "includes a link to the pact" do
          expect(subject[:_links][:self][:href]).to eq 'http://example.org/pacts/provider/Provider/consumer/Consumer/version/1234'
        end

        it "includes the consumer version number" do
          expect(subject[:_embedded][:consumerVersion][:number]).to eq "1234"
        end

        it "includes a link to the version" do
          expect(subject[:_embedded][:consumerVersion][:_links][:self][:href]).to eq "http://example.org/pacticipants/Consumer/versions/1234"
        end

        it "includes timestamps" do
          expect(subject[:createdAt]).to_not be_nil
        end

      end
    end
  end
end

Version data entries

60 entries across 60 versions & 1 rubygems

Version Path
pact_broker-2.27.2 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.27.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.26.1 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.26.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.25.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.24.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.23.4 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.23.3 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.23.2 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.23.1 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.23.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.22.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.21.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.20.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.19.2 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.19.1 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.19.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.18.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.17.1 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb
pact_broker-2.17.0 spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb