Sha256: 085d33fbd26c13760136b5b99dac490aa04a69fda8877bd83efb6d9e06bce3a8

Contents?: true

Size: 1.87 KB

Versions: 1

Compression:

Stored size: 1.87 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, 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, 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, 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

1 entries across 1 versions & 1 rubygems

Version Path
geo_concerns-0.0.6 spec/controllers/vector_works_controller_spec.rb