Sha256: 0cfeab9c64cc5357535b5c6671217713cdfdb913bf9fcc588471e59f45b8a224

Contents?: true

Size: 897 Bytes

Versions: 2

Compression:

Stored size: 897 Bytes

Contents

# frozen_string_literal: true

require 'spec_helper'

describe 'importing a csv batch', :clean do
  subject(:importer) { Zizia::Importer.new(parser: parser) }
  let(:parser)       { Zizia::CsvParser.new(file: file) }
  let(:file)         { File.open('spec/fixtures/example.csv') }

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

  it 'creates a record for each CSV line' do
    expect { importer.import }.to change { Work.count }.to 3
  end

  describe 'validation' do
    context 'with invalid CSV' do
      let(:file) { File.open('spec/fixtures/bad_example.csv') }

      it 'outputs invalid file notice to Rails.logger' do
        expect(Rails.logger).to receive(:error).with("[zizia] CSV::MalformedCSVError: Illegal quoting in line 2. (Zizia::CsvFormatValidator)")
        parser.validate
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zizia-3.1.0.alpha.01 spec/integration/import_csv_spec.rb
zizia-3.0.0.alpha.01 spec/integration/import_csv_spec.rb