Sha256: aa0effda02c1ed4dc8e7346adaaa8dad2bcaa3ccc569014ad860685eadec4a8c

Contents?: true

Size: 838 Bytes

Versions: 4

Compression:

Stored size: 838 Bytes

Contents

require "spec_helper"
require "cascade/error_handler"

describe Cascade::ErrorHandler do
  def described_class
    Cascade::ErrorHandler
  end

  let(:error_store) do
    ->(row, reason) do
      @errors ||= []
      @errors << [row, reason]
    end
  end
  let(:row) { Struct.new(:fields) }

  subject { described_class.new(error_store: error_store) }

  Cascade::ErrorHandler::HANDLING_EXCEPTIONS.each do |exception|
    it "catch #{exception} and send info to error store" do
      subject.with_errors_handling(row) { raise exception }
      assert_includes @errors, [row, exception.to_s]
    end
  end

  describe "DEFAULT_ERROR_STORE" do
    it "create new array and push row with reason" do
      result = Cascade::ErrorHandler::DEFAULT_ERROR_STORE.call(:row, :reason)
      assert_includes result, %i(row reason)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cascade-rb-0.1.4 spec/lib/error_handler_spec.rb
cascade-rb-0.1.2 spec/lib/error_handler_spec.rb
cascade-rb-0.1.1 spec/lib/error_handler_spec.rb
cascade-rb-0.1.0 spec/lib/error_handler_spec.rb