Sha256: 4b17f98738af7c80c39d23a3affeeb612a5226fcd1f1ed44643dd45bd10635d3

Contents?: true

Size: 1.43 KB

Versions: 22

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe Zizia::RecordImporter, :clean do
  subject(:importer) do
    described_class.new
  end

  let(:record) { Zizia::InputRecord.from(metadata: metadata) }
  let(:metadata) do
    {
      'title' => 'A Title',
      'language' => 'English',
      'visibility' => 'open'
    }
  end

  it 'raises an error when no work type exists' do
    expect { importer.import(record: record) }
      .to raise_error 'No curation_concern found for import'
  end

  context 'with a registered work type' do
    load File.expand_path("../../support/shared_contexts/with_work_type.rb", __FILE__)
    include_context 'with a work type'

    it 'creates a work for record' do
      expect { importer.import(record: record) }
        .to change { Work.count }
        .by 1
    end

    context 'when input record errors with LDP errors' do
      let(:ldp_error) { Ldp::PreconditionFailed }

      before { allow(record).to receive(:attributes).and_raise(ldp_error) }
      it 'catches the error' do
        expect { importer.import(record: record) }.not_to raise_error(ldp_error)
      end
    end

    context 'when input record errors unexpectedly' do
      let(:custom_error) { Class.new(RuntimeError) }

      before { allow(record).to receive(:attributes).and_raise(custom_error) }

      it 'reraises error' do
        expect { importer.import(record: record) }.to raise_error(custom_error)
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
zizia-6.0.1 spec/zizia/record_importer_spec.rb
zizia-6.0.0 spec/zizia/record_importer_spec.rb
zizia-5.5.0 spec/zizia/record_importer_spec.rb
zizia-5.4.0 spec/zizia/record_importer_spec.rb
zizia-5.3.0 spec/zizia/record_importer_spec.rb
zizia-5.2.0 spec/zizia/record_importer_spec.rb
zizia-5.1.0 spec/zizia/record_importer_spec.rb
zizia-5.0.1 spec/zizia/record_importer_spec.rb
zizia-5.0.0 spec/zizia/record_importer_spec.rb
zizia-4.6.0.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.5.4.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.5.3.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.5.2.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.5.1.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.4.1.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.4.0.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.3.1.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.2.0.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.1.0.alpha.01 spec/zizia/record_importer_spec.rb
zizia-4.0.4.alpha.01 spec/zizia/record_importer_spec.rb