Sha256: 9d2ac1bd9052e1810cab0412bf23a02ea5d12321c6f934e980f049e0d64718ed

Contents?: true

Size: 890 Bytes

Versions: 6

Compression:

Stored size: 890 Bytes

Contents

RSpec.describe Dry::Transaction::StepAdapters::Raw, adapter: true do

  subject { described_class.new }

  let(:options) { { step_name: "unit" } }

  describe "#call" do

    context "when the result of the operation is NOT a Dry::Monads::Result" do

      let(:operation) {
        -> (input) { input.upcase }
      }

      it "raises an InvalidResultError" do
        expect {
          subject.(operation, options, "input")
        }.to raise_error(
               Dry::Transaction::InvalidResultError,
               "step +unit+ must return a Result object"
             )
      end
    end

    context "when the result of the operation is a Success value" do

      let(:operation) {
        -> (input) { Success(input.upcase) }
      }

      it "return a Success value" do
        expect(subject.(operation, options, "input")).to eql(Success("INPUT"))
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dry-transaction-0.13.0 spec/unit/step_adapters/raw_spec.rb
dry-transaction-0.12.1 spec/unit/step_adapters/raw_spec.rb
dry-transaction-0.12.0 spec/unit/step_adapters/raw_spec.rb
dry-transaction-0.11.2 spec/unit/step_adapters/raw_spec.rb
dry-transaction-0.11.1 spec/unit/step_adapters/raw_spec.rb
dry-transaction-0.11.0 spec/unit/step_adapters/raw_spec.rb