Sha256: 0f497d01f07ef00824352a1f9e77104406471d801fd14ca4a04e9f10b7dbdf31

Contents?: true

Size: 774 Bytes

Versions: 4

Compression:

Stored size: 774 Bytes

Contents

# frozen_string_literal: true

RSpec.describe Fear::Try do
  describe "pattern matching" do
    subject do
      case value
      in Fear::Success[Integer => int]
        "success of #{int}"
      in Fear::Failure[RuntimeError]
        "runtime error"
      else
        "something else"
      end
    end

    context "when value is success of integer" do
      let(:value) { Fear.try { 42 } }

      it { is_expected.to eq("success of 42") }
    end

    context "when value is failure runtime error" do
      let(:value) { Fear.try { raise } }

      it { is_expected.to eq("runtime error") }
    end

    context "when value is something else" do
      let(:value) { Fear.try { raise StandardError } }

      it { is_expected.to eq("something else") }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fear-3.0.0 spec/fear/try_pattern_matching_spec.rb
fear-2.0.1 spec/fear/try_pattern_matching_spec.rb
fear-2.0.0 spec/fear/try_pattern_matching_spec.rb
fear-1.2.0 spec/fear/try_pattern_matching_spec.rb