Sha256: 4ebf91bc16bda1890e3eb72a84ce0a54f34a9871c2ab403236c4f6a6995e0a44

Contents?: true

Size: 1.9 KB

Versions: 8

Compression:

Stored size: 1.9 KB

Contents

require 'spec_helper'

describe CurationConcerns::VectorWorksController, type: :controller do
  let(:user) { FactoryGirl.create(:user) }
  let(:vector_work) { FactoryGirl.create(:vector_work, user: user, title: ['Vector Work Title']) }
  let(:reloaded) { vector_work.reload }

  describe "#show" do
    before do
      sign_in user
    end
    context "when there's a parent raster work" do
      it "is a success" do
        vector = FactoryGirl.create(:vector_work, user: user)
        raster = FactoryGirl.create(:raster_work, user: user)
        raster.ordered_members << vector
        raster.save
        vector.update_index

        get :show, params: { id: vector.id }
        expect(response).to be_success
      end
    end
  end

  describe "#show_presenter" do
    it "is a vector work show presenter" do
      expect(described_class.new.show_presenter.name).to eq("GeoConcerns::VectorWorkShowPresenter")
    end
  end

  describe '#geoblacklight' do
    # Tell RSpec where to find the geoblacklight route.
    routes { GeoConcerns::Engine.routes }
    let(:builder) { double }
    before do
      sign_in user
      allow(GeoConcerns::Discovery::DocumentBuilder).to receive(:new).and_return(builder)
    end

    context 'with a valid geoblacklight document' do
      before do
        allow(builder).to receive(:to_hash).and_return(id: 'test')
      end

      it 'renders the document' do
        get :geoblacklight, params: { id: vector_work.id, format: :json }
        expect(response).to be_success
      end
    end

    context 'with an invalid geoblacklight document' do
      before do
        allow(builder).to receive(:to_hash).and_return(error: 'problem')
      end

      it 'returns an error message with a 404 status' do
        get :geoblacklight, params: { id: vector_work.id, format: :json }
        expect(response.body).to include('problem')
        expect(response.status).to eq(404)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
geo_concerns-0.3.0 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.2.0 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.1.1 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.1.0 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.0.10 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.0.9 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.0.8 spec/controllers/vector_works_controller_spec.rb
geo_concerns-0.0.7 spec/controllers/vector_works_controller_spec.rb