Sha256: 1ba621c67dda25e60a41eace99b2209e7b850c5def100c146a06a9cb498d9856

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

RSpec.describe Dry::Transaction::StepAdapters::Check, :adapter do

  subject { described_class.new }

  let(:operation) {
    -> (input) { input == "right" }
  }

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

  describe "#call" do

    it "returns the result of the operation as output" do
      expect(subject.(operation, options, ["right"])).to eql(Success("right"))
    end

    context "when check fails" do
      it "return a Failure" do
        expect(subject.(operation, options, ["wrong"])).to eql(Failure("wrong"))
      end
    end

    context "when operation return right monad" do
      let(:operation) {
        -> (input) { Success(true) }
      }

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

    context "when operation return failure monad" do
      let(:operation) {
        -> (input) { Failure(true) }
      }

      it "return a Failure" do
        expect(subject.(operation, options, ["input"])).to eql(Failure("input"))
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-transaction-0.13.0 spec/unit/step_adapters/check_spec.rb
dry-transaction-0.12.1 spec/unit/step_adapters/check_spec.rb
dry-transaction-0.12.0 spec/unit/step_adapters/check_spec.rb