Sha256: 7169994d08350ef8f7266f4074e308941cfe4257c95a399e6c18e64c68580115

Contents?: true

Size: 1.11 KB

Versions: 10

Compression:

Stored size: 1.11 KB

Contents

RSpec.describe Fear::Some do
  include Fear::Option::Mixin

  it_behaves_like Fear::RightBiased::Right do
    let(:right) { Some('value') }
  end

  subject(:some) { Some(42) }

  describe '#select' do
    subject { some.select(&predicate) }

    context 'predicate evaluates to true' do
      let(:predicate) { ->(v) { v > 40 } }
      it { is_expected.to eq(some) }
    end

    context 'predicate evaluates to false' do
      let(:predicate) { ->(v) { v < 40 } }
      it { is_expected.to eq(None()) }
    end
  end

  describe '#reject' do
    subject { some.reject(&predicate) }

    context 'predicate evaluates to true' do
      let(:predicate) { ->(v) { v > 40 } }
      it { is_expected.to eq(None()) }
    end

    context 'predicate evaluates to false' do
      let(:predicate) { ->(v) { v < 40 } }
      it { is_expected.to eq(some) }
    end
  end

  describe '#get' do
    subject { some.get }
    it { is_expected.to eq(42) }
  end

  describe '#or_nil' do
    subject { some.or_nil }
    it { is_expected.to eq(42) }
  end

  describe '#empty?' do
    subject { some.empty? }
    it { is_expected.to eq(false) }
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fear-0.10.0 spec/fear/some_spec.rb
fear-0.9.0 spec/fear/some_spec.rb
fear-0.8.0 spec/fear/some_spec.rb
fear-0.7.0 spec/fear/some_spec.rb
fear-0.6.0 spec/fear/some_spec.rb
fear-0.5.0 spec/fear/some_spec.rb
fear-0.4.2 spec/fear/some_spec.rb
fear-0.4.1 spec/fear/some_spec.rb
fear-0.4.0 spec/fear/some_spec.rb
fear-0.3.0 spec/fear/some_spec.rb