Sha256: 937a2f5be0ffed4e04dc3762ee34cb3cdcf67d904e8863d51bfe93da950e7585

Contents?: true

Size: 1.74 KB

Versions: 6

Compression:

Stored size: 1.74 KB

Contents

describe Hyrax::UploadsController do
  let(:user) { create(:user) }
  describe "#create" do
    let(:file) { fixture_file_upload('/world.png', 'image/png') }

    context "when signed in" do
      before do
        sign_in user
      end
      it "is successful" do
        post :create, params: { files: [file], format: 'json' }
        expect(response).to be_success
        expect(assigns(:upload)).to be_kind_of Hyrax::UploadedFile
        expect(assigns(:upload)).to be_persisted
        expect(assigns(:upload).user).to eq user
      end
    end

    context "when not signed in" do
      it "is unauthorized" do
        post :create, params: { files: [file], format: 'json' }
        expect(response.status).to eq 401
      end
    end
  end

  describe "#destroy" do
    let(:file) { File.open(fixture_path + '/world.png') }
    let(:uploaded_file) { create(:uploaded_file, file: file, user: user) }

    context "when signed in" do
      before do
        sign_in user
      end
      it "destroys the uploaded file" do
        delete :destroy, params: { id: uploaded_file }
        expect(response.status).to eq 204
        expect(assigns[:upload]).to be_destroyed
        expect(File.exist?(uploaded_file.file.file.file)).to be false
      end

      context "for a file that doesn't belong to me" do
        let(:uploaded_file) { create(:uploaded_file, file: file) }
        it "doesn't destroy" do
          delete :destroy, params: { id: uploaded_file }
          expect(response.status).to eq 401
        end
      end
    end

    context "when not signed in" do
      it "is redirected to sign in" do
        delete :destroy, params: { id: uploaded_file }
        expect(response).to redirect_to main_app.new_user_session_path(locale: 'en')
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hyrax-1.1.1 spec/controllers/hyrax/uploads_controller_spec.rb
hyrax-1.1.0 spec/controllers/hyrax/uploads_controller_spec.rb
hyrax-1.0.5 spec/controllers/hyrax/uploads_controller_spec.rb
hyrax-1.0.4 spec/controllers/hyrax/uploads_controller_spec.rb
hyrax-1.0.3 spec/controllers/hyrax/uploads_controller_spec.rb
hyrax-1.0.2 spec/controllers/hyrax/uploads_controller_spec.rb